科学上网最新AnyTLS协议快速上手

简介

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

AnyTLS

https://github.com/anytls/anytls-go

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

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

支持AnyTLS协议的代理工具

sing-box

https://github.com/SagerNet/sing-box

包含 anytls 协议的服务器和客户端

mihomo

https://github.com/MetaCubeX/mihomo

包含 anytls 协议的服务器和客户端

Shadowrocket

https://apps.apple.com/app/shadowrocket/id932747118

Shadowrocket 2.2.65+ 实现了 anytls 协议的客户端

NekoBox For Android

https://github.com/MatsuriDayo/NekoBoxForAndroid/releases

NekoBox For Android 1.3.8+ 实现了 anytls 协议的客户端

搭建方式

通过anytls-go

服务端

1
./anytls-server -l 0.0.0.0:8443 -p 密码

后台运行

1
nohup ./anytls-server -l 0.0.0.0:8443 -p 密码 > /dev/null 2>&1 &

结束进程

1
pkill -f anytls-server

客户端

1
./anytls-client -l 127.0.0.1:1080 -s 服务器ip:端口 -p 密码

通过mihomo

生成自签证书

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

配置文件

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

启动指令

1
./mihomo -d ./

#后台运行

1
nohup ./mihomo -d ./ > /dev/null 2>&1 &

#结束进程

1
pkill -f mihomo