机场知识 知识解读
AnyTLS 是什么?缓解 TLS in TLS 特征的新协议解读
AnyTLS 是较新的 TLS 类代理协议,通过填充策略与连接复用缓解 TLS in TLS 流量特征。本文解释其原理、与 Trojan 和 VLESS Vision 的区别、客户端支持与使用建议。
- 作者
- 网络研究组
- 首次发布
- 最后更新
- 内容类型
- 知识解读
- 资料核对
- 阅读时间
- 约 3 分钟
信息可能随服务调整而变化,请以最新官方信息为准。
直接答案
AnyTLS 是一种较新的基于 TLS 的代理协议,设计目标是缓解「TLS in TLS」特征:通过 TLS 代理访问 HTTPS 网站时,内层握手的数据包长度与时序可能被识别。AnyTLS 用可配置的填充策略打乱数据包长度分布,并在一条 TLS 连接上复用多个会话,减少握手次数。它目前主要在 Mihomo、sing-box 等内核中可用,生态仍在发展。
- 定义 AnyTLS
- 一种开源的 TLS 类代理协议。客户端与服务器建立 TLS 连接后,在其上复用多个代理会话,并按服务端下发的填充方案调整数据包长度,以降低代理流量中嵌套 TLS 握手所呈现的可识别特征。
Key Takeaways · 要点速览
- AnyTLS 属于 TCP + TLS 类协议,外观与普通 TLS 连接相似。
- 核心改进是填充策略和连接复用,用来缓解 TLS in TLS 特征。
- 它不是更快的协议,主要价值在于连接特征层面的改进。
- 客户端支持以 Mihomo 和 sing-box 内核为主,其他客户端以最新版本说明为准。
AnyTLS 的直接解释
AnyTLS 解决的不是「加密」问题,而是「看起来像什么」的问题。Trojan、VLESS + TLS 这类协议已经让代理流量拥有标准 TLS 外观,但当用户通过它们访问 HTTPS 网站时,外层 TLS 里还包着一次内层 TLS 握手。内层握手的数据包大小和往返节奏有一定规律,即使看不到内容,也可能从流量形态上推断出「这是 TLS 里套着 TLS」,这就是常说的 TLS in TLS 特征。
AnyTLS 的做法是在外层 TLS 之上加入两项机制:按策略填充数据包、在一条连接上复用多个代理会话。前者打乱数据包长度分布,后者减少新连接和握手的次数,从而降低这类特征的可识别性。
TLS in TLS 是怎么产生的
- 客户端与代理服务器建立外层 TLS 连接。
- 你在浏览器里打开一个 HTTPS 网站,浏览器与目标网站进行内层 TLS 握手。
- 内层握手的 ClientHello、ServerHello、证书等消息被封装在外层 TLS 中传输。
- 这些消息的长度和交互次数比较固定,在外层表现为一组特征明显的数据包序列。
普通 HTTPS 网站访问只有一层握手,代理访问则在建立连接初期出现「握手中的握手」,这就是差异所在。
AnyTLS 的主要机制
| 机制 | 作用 |
|---|---|
| TLS 外层 | 连接外观与普通 TLS 一致,内容加密 |
| 填充策略 | 按服务端配置的方案对前若干个数据包进行填充或拆分,改变长度分布 |
| 会话复用 | 在一条 TLS 连接上承载多个代理请求,减少新建连接与外层握手 |
| 空闲连接管理 | 客户端维护可复用的连接池,按设置回收空闲连接 |
说明填充策略的具体参数由服务端决定并可调整,普通用户导入订阅即可,不需要手动修改。
与其他 TLS 类协议的对比
| 对比项 | Trojan | VLESS + Vision | AnyTLS |
|---|---|---|---|
| 传输层 | TCP + TLS | TCP + TLS 或 Reality | TCP + TLS |
| 是否处理 TLS in TLS | 否 | 是,通过流控 | 是,通过填充与复用 |
| 连接复用 | 协议本身不提供 | 依配置而定 | 内置 |
| 生态 | 最成熟 | 成熟,Xray 生态为主 | 较新,Mihomo、sing-box 为主 |
| 客户端覆盖 | 最广 | 广 | 有限,正在扩展 |
Hysteria2 走的是另一条路线(QUIC/UDP),不在同一个对比维度上,可参考 Hysteria2 是什么。完整对比见 代理协议对比。
客户端支持情况
| 客户端 | AnyTLS 支持 |
|---|---|
| Clash Verge Rev | 支持(依赖 Mihomo 内核) |
| Mihomo | 支持 |
| sing-box | 支持 |
| v2rayN | 取决于所选内核,以最新版本说明为准 |
| Shadowrocket | 以最新版本说明为准 |
| Stash | 以最新版本说明为准 |
| Surge | 以官方说明为准 |
重要新协议的客户端支持变化较快,较旧的内核版本可能无法识别 AnyTLS 节点。使用前请把客户端和内核更新到最新版本,并以各客户端官方说明为准。内核相关知识可参考 Mihomo 内核入门 与 sing-box 使用入门。
优点与局限
优点
- 在 TCP + TLS 的成熟基础上改进流量特征,不依赖 UDP。
- 连接复用减少频繁握手,对短连接较多的网页浏览场景有帮助。
- 配置对用户透明,导入订阅即可使用。
局限
- 协议较新,经过的时间检验和大规模使用相对有限。
- 客户端与服务端实现较少,部分平台暂不可用。
- 连接复用意味着多个请求共享一条连接,该连接中断时会同时影响其上的会话。
- 它改善的是流量特征,不能替代优质线路,也不决定 AI 服务或流媒体的可用性。
使用建议
- 如果你的客户端支持且机场提供 AnyTLS 节点,可以与 Trojan、VLESS 节点并行测试,按实际稳定性选择。
- 导入后出现大量连接失败,先检查客户端版本,再检查系统时间是否准确;TLS 相关报错可参考 TLS 握手失败怎么办。
- 不必为了用新协议更换整个客户端,成熟协议在大多数网络下依然够用。
结论
AnyTLS 是 TLS 类协议的一次增量改进,重点处理 TLS in TLS 特征,并通过连接复用降低握手开销。它不是速度的保证,也不是必须升级的选项;对于已使用 Mihomo 或 sing-box 内核的用户,它是一个值得纳入对比的新选择。
常见问题
AnyTLS 比 Trojan 快吗?
不一定。AnyTLS 的改进集中在流量特征层面,速度主要仍取决于线路、服务器和网络环境。连接复用可以减少新建连接时的握手开销,但不会突破线路本身的带宽上限。
AnyTLS 和 VLESS Vision 有什么区别?
两者都针对 TLS in TLS 特征,但思路不同:VLESS Vision 通过流控处理内层 TLS 流量,AnyTLS 通过填充策略和会话复用改变数据包分布。两者属于不同生态,客户端支持也不同。
哪些客户端可以使用 AnyTLS?
目前主要是基于 Mihomo 内核的客户端(如 Clash Verge Rev)和 sing-box。v2rayN 取决于所选内核,Shadowrocket、Stash、Surge 等请以各自最新版本说明为准。
订阅里有 AnyTLS 节点但客户端无法导入怎么办?
通常是客户端或内核版本过旧,不认识该协议类型。先更新客户端;如果仍不支持,可使用订阅中的 Trojan、VLESS 等其他节点。