跳到正文
备课日 10 月 12 日34 家机场7 家固定位,其余每月重排开讲说明全部讲次

协议课

AnyTLS 协议是做什么的

更新于 读完约 7 分钟

划重点

AnyTLS 是 2025 年出现的一种代理协议。它和 Trojan 一样把连接藏在 TLS 里,不同在于专门处理「TLS 套 TLS」:用可调整的分包和填充,把内层握手那几个数据包的长度规律打散,同时复用已经建好的连接,减少每次新建连接的等待。sing-box 从 1.12 版起、mihomo 从 2025 年的版本起支持它,旧内核读不出这类节点。

这一讲认识协议家族里的新成员,回答 AnyTLS 是什么:一种 2025 年才出现的代理协议,外面是一层普通的 TLS,里面专门对付一个老问题。你经由 TLS 类的代理去打开 HTTPS 网站时,代理的加密通道里还套着浏览器和网站之间的那次 TLS 握手,那几个数据包的大小和先后有规律,可能被拿来识别代理。AnyTLS 用可以调整的分包和填充把这种规律打散,另外让多个请求共用已经建好的连接,少等几趟握手。

搜 anytls 的人,多半是在订阅里第一次见到这个节点类型,或者客户端提示读不出它。下面先讲它要解决的问题,再拿它和 Trojan、VLESS 放在一起看,然后讲哪些内核版本起支持、订阅里怎么认,最后说要不要为它换订阅。

先弄清它要对付的问题:TLS 套 TLS

Trojan、VLESS 配 TLS 这类协议,你和节点之间是一条 TLS 连接。而你在浏览器里打开的网站,绝大多数本身也是 HTTPS。于是通道里套着通道:外层是你和节点的 TLS,内层是浏览器和目标网站的 TLS。

内层握手开头那几步格式相当固定。浏览器先发一段问候,长度大致落在某个范围;网站回一组证书和参数,长度也有常见的区间;然后双方各发几个短包确认。这些包被外层加了密,内容谁也看不到,但每个包多长、隔多久发一个,路上照样数得出来。连着几个包的长度刚好拼出「一次 TLS 握手」的样子,统计上就成了线索。

好比信封里装着另一封信:外面拆不开,看不到信上写了什么,却能隔着信封捏出里面那封有几页、每页多厚。只要里面那封总是同样的几页、同样的厚薄,捏的人就知道它是什么。

划重点:内层握手的内容看不到,包长和节奏却数得出来;AnyTLS 要打散的,正是这份规律。

这件事在社区里讨论了好几年,各家的应对路线不一样:

  • Xray 的 Vision 流控:在握手阶段给这几个包补齐长度、打乱节奏,握手结束后直接放行内层的加密数据。
  • Reality:主攻握手阶段的证书和域名,让外层看起来像在访问真实的大网站,和 Vision 搭配使用。
  • AnyTLS:从协议本身入手,把分包和填充做成一套可以调整的方案,同时内置连接复用。

anytls协议怎么工作:和 Trojan、VLESS 并排比

比较的地方 Trojan VLESS 配 Vision AnyTLS
外层 标准 TLS TLS 或 Reality 标准 TLS
身份验证 密码 UUID 密码
内层握手的包长规律 原样保留 握手阶段补齐长度 按填充方案打散开头的若干个包
连接复用 默认一个请求一条连接 默认一个请求一条连接 内置,多个请求共用已建好的连接
起源 2019 年的独立项目 Xray 项目 2025 年的独立项目

表里有三处值得展开。

身份验证。 和 Trojan 一样,AnyTLS 用密码认人:外层 TLS 握手完成后,客户端先递上由密码算出的校验值,服务端核对通过,才开始替你转发。订阅里每个节点的密码一般就是你账号的凭据,订阅外泄等于密码外泄。

填充方案。 AnyTLS 的每条连接开头,会按一份方案把数据切成若干段,每段多长、要补多少无意义的字节,都写在方案里。方案可以改,改了以后各段的长度跟着变,这样就没有一个固定的长度组合可以被记住。识别的一方要对付的不是一个特征,而是一个会变的范围。

连接复用。 新建一条 TLS 连接要来回好几趟,晚高峰线路拥挤时,这几趟就是你点开网页后那一下停顿。AnyTLS 把用完的连接先留着,下一个请求直接拿来用,省掉重新握手。客户端这边能设空闲连接保留多久、至少留几条,一般保持默认即可。

哪些客户端、内核版本起支持

AnyTLS 能不能用,取决于客户端里装的内核,不取决于客户端的名字:

  • sing-box:从 1.12 版起把 AnyTLS 列为正式支持的协议。以 sing-box 为内核的客户端,内核更新到这一版以后就能读。
  • mihomo:在 2025 年的版本里加入了 AnyTLS。如今多数 Clash 系客户端装的就是这个内核,版本跟上了,就认得这类节点。
  • Xray:它在同一问题上走的是 Vision 和 Reality 的路线。以 Xray 为默认内核的客户端能不能读 AnyTLS,要看具体版本的说明,有的需要切换到别的内核。

手机上同理:安卓上以 mihomo 或 sing-box 为内核的客户端,内核更新后一样能读;iPhone 上的客户端各有各的跟进节奏,看各自的更新说明。

客户端界面的版本号和内核的版本号是两回事。界面更新了,捆在里面的内核不一定跟着更新;判断支不支持,看「关于」页或设置里写的内核版本更准。

三个内核分别是谁做的、为什么协议支持会跟着内核走,mihomo 是什么那一讲有完整的梳理。名词表里也有 sing-box 和 Clash 系客户端 的简短说明。

订阅里的 AnyTLS 节点长什么样

通用格式的订阅里,AnyTLS 节点通常以 anytls:// 开头,下面是示意,值全是占位:

anytls://你的密码@sg01.example.com:443?sni=sg01.example.com#新加坡01

Clash 格式的订阅里,它是一小段 YAML,类型那一行写 type: anytls,下面跟着密码、sni,还可能有几项空闲连接的参数。客户端节点列表里,节点名旁边一般标着 AnyTLS。

旧内核遇到它,有两种表现。通用订阅一行一个节点,读不懂的那行会被跳过,你只会发现节点数比机场写的少。Clash 格式的订阅是一整份配置,里面有一个节点类型不认识,整份配置都可能载入失败,其他协议的节点也跟着消失,这种情况格外让人摸不着头脑。导入后节点莫名少了、或者订阅更新报错,先查内核版本,再找机场。

用 AnyTLS 节点时,连接复用有两面

连接复用省掉了握手,也带来两处变化,知道了就不会当成故障:

  • 一断断一串。 多个请求挤在同一条连接上,这条连接一旦中断,上面跑着的请求会一起失败,网页上表现为几张图同时加载不出来,刷新一下就好。
  • 切换节点后,旧连接不会立刻消失。 已经建好的连接要等用完或空闲超时才释放,切换后的一小会儿里,连接记录中还能看到它们挂在原节点上,新发起的请求走的已经是新节点。

分流规则不受影响。客户端先按规则决定每个请求交给哪个节点,复用只发生在同一个节点内部,国内网站照样直连。

要不要为 AnyTLS 换订阅

机场这边,AnyTLS 出现才一年多,各家跟进的快慢不一。34 家里有哪几家在官网写明了 AnyTLS,可以到按协议分组的各家目录里查,那里按协议归组,没写协议的单列一组。

你这边,不必为了它换机场。理由有三个:

  1. 它处理的问题,VLESS 配 Vision 和 Reality 也在处理,不是只有它能解决。
  2. 新协议从出现到成熟需要时间,服务端和客户端的实现都可能还在调整参数。
  3. 影响晚上快不快的大头仍是线路。走 IEPL 专线的节点,跨境那一段不和公网挤同一个出口,协议特征在这一段的分量本来就轻一些。

划重点:订阅里已经给了 AnyTLS 节点,就把内核更新到能读的版本,多一种协议多一条退路;没给,也不缺什么。

同一路线上更早的两种协议,可以对照 Trojan 是什么和 VLESS 是什么。

一翻云官网标的协议是 VLESS,线路一项写 IEPL 专线;只卖年付的年付小包 ¥98/年、每月 60GB,用量忽多忽少的还可以买不限时包,250GB 一次付 ¥200,用完为止。跨界云同样是 VLESS,订阅在面板里给,格式是标准的;流量大的看凌云 Soar,¥90/月给 830GB,码 kuajie 打 8 折。

文中提到的机场

1

一翻云示范课

IEPL 专线,月付 ¥20 给 150GB,网站测过速度

月付起
¥20/月每月 150GB
年付平摊到月
¥8.2年付小包

码 1FLYYUN · 9 折最大档 1.2TB课上测得微信可付

7

跨界云

Vless 标准订阅,轻云 Lite 年付合每月 ¥16

月付起
¥20/月每月 120GB
年付平摊到月
¥8跨界年付版

码 kuajie · 8 折最大档 1800GB官方讲的

课后自查

示范课一翻云的订阅里,会出现 AnyTLS 节点吗?

按官网,一翻云写明的协议只有 VLESS,没写 AnyTLS。要读它的节点,客户端用新一点的内核就行:Clash 选 Meta(mihomo)版,sing-box、v2rayN、Shadowrocket 也都认。

订阅里明明有 AnyTLS 节点,客户端里却一个都看不到,为什么?

多半是客户端里的内核版本太旧,不认识这种节点类型。通用格式的订阅会把它悄悄跳过;Clash 格式的订阅则可能整份载入失败,连别的节点也一起消失。到客户端的「关于」或设置页看内核版本,更新到支持 AnyTLS 的版本再刷新订阅。

AnyTLS 节点是不是比 VLESS Reality 更难被识别?

没有公认的结论。两者盯着的是同一类问题的不同侧面:Reality 主要解决握手阶段的证书和域名,Vision 和 AnyTLS 处理的是数据包长度的规律。哪种更耐用,要看后续识别手段怎么变,也要看机场怎么配置,不能只凭协议名下判断。