MTProxy + FakeTLS 防止 Telegram 代理被墙 | 格塔里

格塔里

一个不负责任的教程博客

0%

MTProxy + FakeTLS 防止 Telegram 代理被墙

安装 MTProxy:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 编译程序
git clone https://github.com/TelegramMessenger/MTProxy
cd MTProxy
make && cd objs/bin
mv mtproto-proxy /usr/bin
# 获取 Telegram 通信密钥
mkdir /telegram
curl -s https://core.telegram.org/getProxySecret -o /telegram/proxy-secret
# 获取代理配置
curl -s https://core.telegram.org/getProxyConfig -o /telegram/proxy-multi.conf
# 获取 NAT 信息
IP="$(curl -s -4 ip.sb)"
INTERNAL_IP="$(ip -4 route get 8.8.8.8 | grep '^8\.8\.8\.8\s' | grep -Po 'src\s+\d+\.\d+\.\d+\.\d+' | awk '{print $2}')"

原始客户端链接信息:

1
2
3
server: example.com
port=10274
secret=0f2dd42150745a7326e728390cbb1d8b

FakeTLS:

1
sni domain: baidu.com

Python3 计算新的 secret:

1
2
>>> print ("ee"+"0f2dd42150745a7326e728390cbb1d8b"+"baidu.com".encode().hex())
ee0f2dd42150745a7326e728390cbb1d8b62616964752e636f6d

代理启动额外参数传入:

1
--D baidu.com

启动代理

1
2
3
4
# 启动代理 -S 通信密钥 -P 赞助商信息
mtproto-proxy -p 2398 -H 10274 -M 2 -C 60000 --aes-pwd /telegram/proxy-secret \
-u nobody /telegram/proxy-multi.conf --allow-skip-dh --nat-info "$INTERNAL_IP:$IP" \
-S 0f2dd42150745a7326e728390cbb1d8b -P e5812aabed004a000cdccb30e96db089 -D baidu.com

新的客户端链接信息:

1
2
3
server: example.com
port=10274
secret=ee0f2dd42150745a7326e728390cbb1d8b62616964752e636f6d