【代理新姿勢】科學上網最新 AnyTLS 協定快速上手,收集了兩年的各代理協定反饋分享,reality 依舊穩如老狗!

AnyTLS 是一個旨在緩解嵌套 TLS 握手指紋 (TLS in TLS) 特徵的全新代理協定,支援靈活的分包與填充策略及連接復用。本文包含 AnyTLS 原理、主流客戶端支援、anytls-go / mihomo 兩種搭建方式以及作者收集了兩年的各代理協定防封經驗反饋。

作者:不良林 | 發布時間:2025 年 05 月 17 日 | 來源不良林博客


🎥 視頻教程与相关推荐


AnyTLS 協議簡介

anytls 是一个试图缓解嵌套 TLS 握手指纹 (TLS in TLS) 问题的代理协议。anytls-go 是该协议的参考实现。

  • 灵活的分包和填充策略
  • 连接复用,降低代理延迟
  • 简洁的配置

支持 AnyTLS 协议的代理工具

1. sing-box

2. mihomo (Clash Meta)

3. Shadowrocket (小火箭)

4. NekoBox For Android


搭建方式

方式一:通过 anytls-go 官方程序搭建

服务端配置

1
2
3
4
5
6
7
./anytls-server -l 0.0.0.0:8443 -p 你的密码

# 后台运行
nohup ./anytls-server -l 0.0.0.0:8443 -p 你的密码 > /dev/null 2>&1 &

# 结束进程
pkill -f anytls-server

客户端配置

1
./anytls-client -l 127.0.0.1:1080 -s 服务器ip:8443 -p 你的密码

方式二:通过 mihomo (Clash Meta) 搭建

1. 生成自签证书

1
openssl req -x509 -newkey ec:<(openssl ecparam -name prime256v1) -keyout "./server.key" -out "./server.crt" -days 36500 -nodes -subj "/CN=bing.com"

2. 生成配置文件 (config.yaml)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
cat > config.yaml << 'EOF'
listeners:
- name: anytls-in-1
type: anytls
port: 8443
listen: 0.0.0.0
users:
username1: 密码1
username2: 密码2
certificate: ./server.crt
private-key: ./server.key
padding-scheme: |
stop=8
0=30-30
1=100-400
2=400-500,c,500-1000,c,500-1000,c,500-1000,c,500-1000
3=9-9,500-1000
4=500-1000
5=500-1000
6=500-1000
7=500-1000
EOF

3. 启动指令

1
2
3
4
5
6
7
./mihomo -d ./

# 后台运行
nohup ./mihomo -d ./ > /dev/null 2>&1 &

# 结束进程
pkill -f mihomo

视频文稿与两年代理防封心得总结

对稳定要求比较高的用户建议自己搭建。根据我多年被墙经验,以及这两年收到的反馈,总结如下:

  1. SS 节点(Shadowsocks)
    在使用同款 VPS 的情况下,搭建使用 SS 节点,第二天大概率会被封 IP。反馈 IP 被封的用户无一例外都是搭建并使用了 SS 节点。
  2. VMess + WS 节点
    第二天大概率被封端口(但不会直接封 IP),换个端口能继续使用,但第二天又会被封端口。因此现在不推荐使用 VMess + WS。
  3. VLESS + Vision 节点
    部分用户反馈节点用不了(端口未被封),经排查是因为教程中用到的证书域名 nip.io 被防火墙阻断导致,和协议本身无关,更换域名即可。
  4. VLESS + Vision + Reality 节点
    这两年一例被封的反馈都没有,真的一例都没有!极少数白名单地区用户改成大厂域名后也能正常使用。目前 REALITY 依然是稳如老狗
  5. AnyTLS 原理
    针对 TLS in TLS 特征,Vision 流控是通过固定随机数据填充;而 AnyTLS 则可以通过参数灵活指定要填充的数据包数量及填充长度范围,支持更加灵活个性化的设定,以此增加防火墙识别的难度。