AnyTLS .wiki

客户端集成

在主流代理客户端中接入 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: true
  • sni: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