AnyTLS 协议是什么?订阅里的节点该用什么客户端
一句话回答:AnyTLS 协议是什么:它是一种试图缓解嵌套 TLS 握手指纹(TLS in TLS)问题的代理协议,anytls-go 只是演示协议的参考实现而非日常客户端;订阅里的 AnyTLS 节点可用 sing-box、mihomo 或 Shadowrocket 等第三方客户端导入。
AnyTLS 协议是什么
AnyTLS 是一种代理协议。官方 README 第一句话给出了它的定位:一个试图缓解嵌套的 TLS 握手指纹(TLS in TLS)问题的代理协议。
要理解这句话,先解释一下「TLS in TLS」。当你通过一个基于 TLS 的代理访问一个 https 网站时,实际发生的是两层 TLS:外层是你和代理服务器之间的 TLS,内层是你和目标网站之间的 TLS。内层握手的数据包虽然被外层加密了,但它们的长度、数量和时间间隔仍然会透露出「这里面正在进行一次 TLS 握手」的规律。研究者和审查方都可以利用这种规律来识别代理流量。
AnyTLS 想做的事,就是打乱这种规律。README 列出的特点有三条:灵活的分包和填充策略、连接复用以降低代理延迟、简洁的配置。其中最核心的是分包和填充,官方称之为 PaddingScheme,也就是按照一套可调整的规则,把数据包切分并填充成不同的长度。
关于名字,官方常见问题文档有一段解释:这个协议主要负责连接复用和控制数据包长度模式,而加密这类工作目前依靠 TLS 完成,因此取名 AnyTLS。文档还提到,理论上可以把它放在其他传输层上,但这样可能失去 TLS 提供的安全保护,作者并不建议。
官方来源核对结果
以下信息于 2026 年 10 月 21 日在官方仓库与 GitHub 接口上直接看到,没有看到的字段写「未能核实」。
| 字段 | 核对结果 | 来源 |
|---|---|---|
| 官方仓库 | anytls/anytls-go(协议参考实现) | https://github.com/anytls/anytls-go |
| 是否归档 | 否(archived 为 false) | https://api.github.com/repos/anytls/anytls-go |
| 最新版本 | v0.0.13 | https://github.com/anytls/anytls-go/releases/tag/v0.0.13 |
| 发布日期 | 2026-06-27(UTC) | 同上 |
| 上一个版本 | v0.0.12,2026-01-12 | https://github.com/anytls/anytls-go/releases |
| 许可证 | 未能核实(仓库根目录未见许可证文件,GitHub 接口未返回许可证) | 仓库文件列表与接口 |
| 发布页平台 | Windows(amd64、arm64)、macOS(amd64、arm64)、Linux(amd64、arm64) | v0.0.13 发布页附件列表 |
| 官方图形客户端 | 无,README 推荐使用第三方兼容软件 | 官方 README |
| 协议与 URI 文档 | 仓库 docs 目录中的协议文档、URI 格式与常见问题 | https://github.com/anytls/anytls-go |
版本号仍处于 0.0.x,说明作者没有把这份实现当作稳定的成品对外发布,这与 README 里「参考实现」的定位是一致的。
现状:仓库在维护,但定位是参考实现
仓库没有归档,2026 年内先后发布了 v0.0.12 和 v0.0.13,最近一次推送在 2026 年 8 月初,维护状态正常。
但普通用户需要分清「协议在维护」和「这个程序适合你用」是两件事。README 里有一段醒目的说明:本项目是 AnyTLS 协议的参考实现,核心目标是演示协议细节、交互流程与边界场景,而非提供功能完备的生产级客户端,日常使用推荐第三方兼容软件。紧接着还有一条提醒:示例服务器和客户端默认采用不安全的配置,该配置假设你不会遭遇 TLS 中间人攻击。
所以,本页不建议普通用户下载 anytls-go 发布页里的程序作为日常客户端。它没有图形界面、没有分流规则,也不负责订阅管理,这些恰恰是机场用户最需要的功能。
AnyTLS 协议和机场订阅是什么关系
在机场订阅里,AnyTLS 是一种节点类型。官方文档定义了它的 URI 格式,节点链接以 anytls:// 开头。不过和其他协议一样,机场通常提供的是一整份订阅,你只需要把订阅链接导入客户端,客户端会自动识别其中的 AnyTLS 节点。订阅链接的基础概念见 订阅链接是什么。
AnyTLS 节点能否出现在你的客户端里,取决于两个条件:
内核版本够不够新。 sing-box 官方文档在 AnyTLS 出站的页面上标注了「自 sing-box 1.12.0 起」。如果你使用的客户端内置的 sing-box 版本低于这个版本,就无法识别 AnyTLS 节点,表现为导入后节点消失或报错。mihomo 系客户端同样需要内核版本支持,旧版本可能不认识这个类型。
订阅格式是否匹配。 机场如果同时提供 Clash 格式和 sing-box 格式的订阅,请选择与你的客户端匹配的那一种。订阅转换工具不认识 AnyTLS 时,也会把这类节点过滤掉。
另外,官方常见问题文档提到,默认的 PaddingScheme 只是一个示例,协议设计了更新参数、改变流量特征的机制。这些参数由服务端决定,普通用户无需也不应该自己修改。
AnyTLS 协议应该搭配什么客户端
官方 README 的「第三方兼容软件」一节列出了以下几类,本页按平台对应到站内已有的介绍页:
sing-box 系
README 写明 sing-box 包含 AnyTLS 协议的服务器和客户端。sing-box 官方客户端有安卓上的 SFA、iPhone 上的 SFI、Mac 上的 SFM,内核介绍见 sing-box。使用时注意内核版本需要在 1.12.0 及以上。
mihomo 系
README 写明 mihomo 同样包含 AnyTLS 的服务器和客户端,mihomo 官方文档的代理类型中也有 AnyTLS。电脑上可以用 Clash Verge Rev,安卓上可以用 Clash Meta for Android,内核介绍见 mihomo。
iOS 独立客户端
README 提到 Shadowrocket 2.2.65 及以上版本实现了 AnyTLS 客户端,Stash、Loon 等也已跟进适配。README 同时说明,这些客户端的实现细节由各自团队负责,本项目未作验证。iPhone 用户的选择思路可以参考 iPhone 客户端选择。
其他
安卓客户端 Exclave 的 README 协议列表中也列出了 AnyTLS。
官方承认的已知弱点
AnyTLS 的常见问题文档有一个少见的做法:主动列出协议的已知弱点。普通用户不需要读懂每一条技术细节,但了解它们有助于建立合理预期。概括起来包括:
- TLS over TLS 本身需要比普通网页请求更多的握手往返,这一点除非破坏端到端加密,否则很难消除。
- 协议没有处理下行流量的特征。
- 现有填充规则的表达能力有限,对单个包长度只有固定长度和范围随机两种模式。
- 握手后的短时间内几乎同时发出多个数据包,仍可能被统计分析利用。
- 由于它不是真正的 HTTP 服务器,理论上仍存在被主动探测的可能。
文档的态度是:这些弱点目前未必容易被大规模利用,而修复它们可能破坏兼容性,所以第一版协议没有处理。这种坦率是值得肯定的,它也提醒我们,不存在「绝对不会被识别」的协议。
AnyTLS 节点导入后的常见情况
AnyTLS 是一个较新的协议,客户端之间的支持程度并不统一,遇到问题时可以先从以下几个方向判断:
- 节点没有出现在列表里。 这几乎总是版本问题。检查客户端内置的 sing-box 是否达到 1.12.0,或 mihomo 系客户端是否为较新版本,更新后重新导入订阅。
- iPhone 上导入失败。 先确认 Shadowrocket 的版本是否达到 README 所说的 2.2.65 及以上,Stash、Loon 也请先升级到最新版本。
- 连接后速度不理想。 官方常见问题文档提醒,不要拿它和 Hysteria 这类基于 UDP 或 QUIC 的协议直接比较,因为两者的拥塞控制和运营商侧的处理方式不同,没有可比性。速度主要取决于线路质量,这是机场层面的问题。
- 连接被直接关闭且没有日志。 常见问题文档把密码错误列为最常见的原因。订阅过期或重置后,旧节点里的密码会失效,请在机场后台重新获取订阅。
无论哪种情况,都不建议自己去修改节点里的填充方案等高级参数,这些设置应由服务端统一下发。
下载与安全提醒
普通用户需要下载的是客户端,而不是 anytls-go 的参考程序。客户端请从它们各自的官方仓库或官方商店获取。如果出于学习目的查看 anytls-go,只认 anytls/anytls-go 这个地址;搜索结果里出现的 Rust 重写版、Docker 镜像等,都是第三方项目,不在本页核对范围内。通用核对方法见 下载安全指南。
小结
AnyTLS 是一种通过分包、填充和连接复用来缓解 TLS in TLS 特征的代理协议,anytls-go 是它的参考实现。官方仓库没有归档,最新版本 v0.0.13 发布于 2026 年 6 月 27 日,提供 Windows、macOS、Linux 的命令行程序,许可证未能核实。官方明确不把 anytls-go 定位为日常客户端,普通用户应使用 sing-box 1.12.0 及以上、mihomo 系客户端,或 Shadowrocket、Stash、Loon 等已适配的应用。更多协议对比见 代理协议科普,全部客户端见 客户端列表。
常见问题
anytls-go 是给普通用户用的客户端吗?
不是。官方 README 明确说明,anytls-go 是 AnyTLS 协议的参考实现,目标是演示协议细节和交互流程,而不是提供功能完备的生产级客户端,日常使用推荐第三方兼容软件。README 还提醒,示例服务器和客户端默认采用不安全的配置。
哪些客户端支持 AnyTLS 节点?
官方 README 列出 sing-box 和 mihomo 都包含 AnyTLS 的客户端与服务端,iOS 上 Shadowrocket 2.2.65 及以上版本实现了客户端,Stash、Loon 等也已跟进。sing-box 官方文档注明 AnyTLS 出站从 1.12.0 版本开始提供,旧版本内核无法识别。
AnyTLS 的许可证是什么?
本页核对时,anytls/anytls-go 仓库根目录没有看到许可证文件,GitHub 接口也没有返回许可证信息,因此许可证一项记为未能核实。这不影响普通用户通过第三方客户端使用 AnyTLS 节点。
AnyTLS 节点比其他节点更安全吗?
不能这样简单比较。官方常见问题文档专门列出了一串已知弱点,并说明默认的填充方案只是示例,无法保证不被识别。节点好不好用,更多取决于机场的线路和运维,而不是协议名称。
还没选好机场?本站推荐的 3 家
从 机场推荐榜 推荐位取前 3 家,本站主推的合作品牌排在前面(已标注合作);价格以官网为准。