直接答案
AnyTLS 是一种较新的代理协议,它把代理流量放在标准 TLS 连接中传输,并通过可配置的数据填充和连接复用,尝试减少“TLS 里再套 TLS”带来的可识别特征。它的定位和 Trojan、VLESS 相近,都是“看起来像 HTTPS”的协议,但出现时间晚、客户端支持仍在普及中,使用前要先确认客户端版本。
为什么还需要一个新协议
要理解 AnyTLS,先要了解一个问题:当你通过代理访问 HTTPS 网站时,你的浏览器和网站之间有一层 TLS 加密,这层加密的数据又被放进代理协议自己的 TLS 连接里传输,形成“TLS 套 TLS”。
外层 TLS 能把内容加密,却藏不住一些统计规律,比如握手阶段数据包的大小和时序。这些规律有可能被用来区分“普通 HTTPS 访问”和“通过代理的 HTTPS 访问”。前面几代协议也在应对这个问题,例如 VLESS 的 Vision 流控;AnyTLS 则选择了另一种思路。
AnyTLS 原理:填充与复用
AnyTLS 的主要设计可以概括为两点:
- 填充方案(padding scheme):在传输初期按一定规则对数据包进行填充或拆分,让包长分布不再直接反映内层 TLS 握手的特征。填充规则可以由服务端下发和调整。
- 会话复用:多个代理请求复用同一条 TLS 连接,减少频繁新建连接带来的握手特征,也降低一部分握手开销。
认证方面,AnyTLS 使用密码,和 Trojan 类似;传输安全依赖外层的标准 TLS,因此服务端需要配置证书。
需要强调的是,这些设计的效果会随识别技术和网络环境变化,AnyTLS 安全吗、能用多久,都没有可以承诺的答案,只能说它在设计上针对了已知的问题。
AnyTLS 和其他协议的区别
| 对比项 | AnyTLS | VLESS(配合 Vision / Reality) | Trojan | Shadowsocks |
|---|---|---|---|---|
| 外观 | 标准 TLS | TLS 或借用第三方站点握手 | 标准 HTTPS | 无明显特征的随机流 |
| 认证 | 密码 | UUID | 密码 | 预共享密钥 |
| 应对 TLS 嵌套特征 | 填充 + 复用 | Vision 流控 | 无专门设计 | 不适用 |
| 需要证书 | 需要 | TLS 需要,Reality 不需要 | 需要 | 不需要 |
| 客户端支持 | 部分新内核 | 较广 | 广 | 最广 |
AnyTLS 和 Trojan 区别主要在于对流量特征的处理:Trojan 只是把数据放进 TLS,AnyTLS 在此基础上增加了填充和复用。AnyTLS 和 SS 区别则更大,后者根本不使用 TLS。
AnyTLS 支持哪些客户端
按各项目在 2025 至 2026 年间的更新说明,mihomo(Clash Meta)内核和 sing-box 的较新版本已加入 AnyTLS 支持,基于这两个内核的图形客户端(如 Clash Verge Rev、各类 sing-box 前端)在更新到对应版本后即可使用。iOS 上的部分客户端也陆续跟进,具体以当前版本的更新说明为准。
早期的原版 Clash 内核、较旧的 Xray 或 V2Ray 客户端一般不支持 AnyTLS。部分机场资料显示已开始提供 AnyTLS 节点,通常会与其他协议节点并存。
AnyTLS 节点导入不了怎么办
- 检查客户端版本:这是最常见的原因,把客户端和内核更新到最新的稳定版本。
- 确认内核类型:图形界面相同的客户端可能带不同内核,确认使用的是支持 AnyTLS 的内核。
- 重新更新订阅:升级后手动更新一次订阅,看 AnyTLS 节点是否出现在列表中。
- 对比其他协议节点:如果同地区的其他协议节点正常,而 AnyTLS 节点无法连接,把现象反馈给服务商,可能是服务端配置问题。
注意事项
- AnyTLS 性能方面,填充会带来少量额外流量开销,是否在意取决于你的套餐流量。
- 新协议的实现仍在迭代,参数和默认行为可能随版本变化,不要随意手动修改节点参数。
- 协议只影响传输方式,线路质量、落地 IP 才决定速度和可访问的服务。
- 本文仅作协议原理科普,请遵守所在地的法律法规。