客户端集成
在主流代理客户端中接入 AnyTLS:相比示例 anytls-client,它们提供规则分流、UI 管理与更精细的 TLS 控制。
支持情况
AnyTLS 已被多个主流项目内置支持,既可作为出站(客户端),部分也可作为入站(服务端):
- sing-box:支持 AnyTLS 入站与出站。
- mihomo(Clash.Meta):支持 AnyTLS 出站(proxy)。
- Shadowrocket:iOS 上支持导入
anytls://节点。
用成熟客户端做服务端的好处
如果对 TLS 指纹有更高要求,推荐用 sing-box / mihomo 作为服务端,配合真实证书与域名,能更精细地控制 TLS 参数,而不局限于示例服务端的自签证书。sing-box
在 sing-box 配置的 outbounds 中添加一个 anytls 类型的出站:
sing-box · outbound
{
"type": "anytls",
"tag": "anytls-out",
"server": "服务器IP",
"server_port": 8443,
"password": "你的密码",
"tls": {
"enabled": true,
"server_name": "example.com",
"insecure": true
}
}server/server_port:服务端地址与端口。password:与服务端一致的密码。tls.server_name:TLS 握手使用的 SNI。tls.insecure:使用自签证书时设为true;使用真实证书时应设为false。
mihomo / Clash.Meta
在 mihomo 的 proxies 列表中加入一个 anytls 节点:
mihomo · config.yaml
proxies:
- name: "anytls-节点"
type: anytls
server: 服务器IP
port: 8443
password: "你的密码"
sni: example.com
skip-cert-verify: true
udp: truesni:TLS 握手使用的服务器名称。skip-cert-verify:使用自签证书时设为true。udp:开启后支持 UDP 转发。
Shadowrocket
Shadowrocket 支持直接导入 anytls:// 分享链接。最简单的做法:把链接复制到剪贴板,打开 App 后会提示添加节点; 或在添加服务器界面选择 AnyTLS 类型,手动填写地址、端口、密码与 SNI。
anytls:// 分享链接
anytls://你的密码@服务器IP:8443?sni=example.com&insecure=1#我的节点分享链接的字段含义详见 URI 格式。
通用建议
- 所有客户端中的密码、SNI、是否校验证书都必须与服务端配置相匹配,否则会连接失败。
- 使用真实域名 + 有效证书时,请关闭 insecure / skip-cert-verify,以获得真正的证书校验。
- 遇到连不上,先排查密码与端口放行,再看客户端日志。常见问题见 FAQ。