AnyTLS 协议

AnyTLS 协议

个试图缓解 嵌套的TLS握手指纹(TLS in TLS) 问题的代理协议,anytls-go 是该协议的参考实现,灵活的分包和填充策略,连接复用,降低代理延迟,简洁的配置

 次点击
8 分钟阅读

什么是 AnyTLS?

AnyTLS 是一种专为提升代理连接隐蔽性与性能而设计的 “Any in TLS” 代理协议。它的目标是在 TLS 加密之上,实现任意协议的承载,同时绕过防火墙的深度包检测(DPI),有效规避 TLS-in-TLS 指纹识别

  • 缓解 TLS 指纹:通过灵活的 分包 + 填充策略,AnyTLS 能随机化数据流形态,打散固定特征,从而避免被 DPI 特征识别

  • 性能优势:支持 连接复用,减少 TLS 握手延迟,但每个连接只传输一个流,不会出现头部阻塞(HEAD-of-LINE blocking)

  • 设计简洁:布局清晰,易于部署,针对侧信道攻击防护周全

技术和实现支持

1. Padding 填充策略

  • AnyTLS 允许用户自定义分包、随机填充长度、填充包数量等策略,例如填充前 8 个包并指定各自长度区间,从而制造随机流量模式

2. 支持连接复用

  • 实现了长连接复用机制,有效降低 handshake 的频繁开销。它不是 multiplex 多流,而是单流复用,确保表现稳定

3. 客户端/服务器支持工具

工具

支持情况

anytls-go

官方参考实现

sing-box

1.12+ 支持,包含 inbound/outbound 配置选项

mihomo

支持 anytls-in 并自定义 padding scheme

Shadowrocket (iOS)

从 v2.2.65+ 开始原生支持

NekoBox (Android)

从 v1.3.8+ 开始支持

Xray/V2ray

目前还不支持,但有望通过 Pull Request 加入

Shadowrocket-小火箭 订阅

© 本文著作权归作者所有,未经许可不得转载使用。