一个试图缓解 嵌套的TLS握手指纹(TLS in TLS) 问题的代理协议。anytls-go 是该协议的参考实现。
- 灵活的分包和填充策略
- 连接复用,降低代理延迟
- 简洁的配置
📌 项目定位:本项目是 AnyTLS 协议的参考实现,核心目标是演示协议细节、交互流程与边界场景,而非提供功能完备的生产级客户端。日常使用推荐 第三方兼容软件。
⚠️ 示例服务器和客户端默认采用不安全的配置,该配置假设您不会遭遇 TLS 中间人攻击;否则,您的通信内容可能会被中间人截获。
./anytls-server -l 0.0.0.0:8443 -p 密码
0.0.0.0:8443 为服务器监听的地址和端口。
./anytls-client -l 127.0.0.1:1080 -s 服务器ip:端口 -p 密码
127.0.0.1:1080 为本机 Socks5 代理监听地址,理论上支持 TCP 和 UDP(通过 udp over tcp 传输)。
v0.0.12 版本起,示例客户端可直接使用 URI 格式:
./anytls-client -l 127.0.0.1:1080 -s "anytls://password@host:port"
https://github.com/SagerNet/sing-box
它包含了 anytls 协议的服务器和客户端。
https://github.com/MetaCubeX/mihomo
它包含了 anytls 协议的服务器和客户端。
Shadowrocket 2.2.65+ 实现了 anytls 协议的客户端。
Stash Loon 等客户端已跟进适配。
这些客户端的具体实现细节与协议规范的契合度由各自维护团队负责,其细节处理路径与边界场景应对可能因版本而异,本项目未作验证。