Skip to content

Telegram 专用代理 MTProxy 搭建

Posted on:2018年6月24日 at 08:00

这几天功夫网使劲折腾,搞得 Telegram 都差点上不去,虽然自己一直 24 小时挂着梯子,但有的人只需要用 Telegram,便想起来 Tg 内置的 MTProxy 代理,但是 GitHub 项目下的安装教程有些麻烦还不完整。便把自己的安装过程记录下来。

一键脚本

感觉这些步骤太麻烦了,就学了一点 shell 根据别人的脚本尝试性写了一个一键脚本出来,肯定有很多不足之处,再说吧。下面放出来,肯定是能用的。

wget --no-check-certificate -O mtproxy.sh https://raw.githubusercontent.com/MoonBegonia/shell/master/MTproxy/mtproxy.sh
chmod +x mtproxy.sh
./mtproxy.sh

使用教程

编译

安装开发工具包以及编译所需要的opensslzlib依赖包。

apt install git curl build-essential libssl-dev zlib1g-dev
yum install openssl-devel zlib-devel
yum groupinstall "Development Tools"

克隆项目源代码并进入项目目录

git clone https://github.com/TelegramMessenger/MTProxy
cd MTProxy

构建时只需运行 make 命令,二进制文件将位于objs/bin/mtproto-proxy中:

make && cd objs/bin

如果编译失败,则应在再次编译之前运行make clean命令。

运行

获取一个密钥,用于连接到 Tg 服务器

curl -s https://core.telegram.org/getProxySecret -o proxy-secret

获取当前的 Tg 配置。它偶尔会改变,Tg(官方鼓励明天更新一次)

curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf

生成一个密钥供用户连接到您的代理使用

head -c 16 /dev/urandom | xxd -ps

注:妥善保管这个密匙,请勿轻易告诉他人或公开。

运行mtproto-proxy

./mtproto-proxy -u nobody -p 8888 -H 443 -S 密钥 --aes-pwd proxy-secret proxy-multi.conf -M 1

注:

运行成功后按Ctrl+C退出运行,接下来创建一个系统服务方便以后管理

创建系统服务

新建系统服务文件

nano /etc/systemd/system/MTProxy.service

编辑此文件,写入

[Unit]
Description=MTProxy
After=network.target

[Service]
Type=simple
WorkingDirectory=/root/MTProxy
ExecStart=/root/MTProxy/objs/bin/mtproto-proxy -u nobody -p 8888 -H 2333 -S <密钥> --aes-pwd /root/MTProxy/objs/bin/proxy-secret /root/MTProxy/objs/bin/proxy-multi.conf -M 1
Restart=on-failure

[Install]
WantedBy=multi-user.target

重加载使服务生效,每次修改服务文件后都应重复此操作

systemctl daemon-reload

重启服务

systemctl restart MTProxy.service

查看状态,Activeactive(running)则表示运行正常

systemctl status MTProxy.service

客户端设置

随机填充

由于某些 ISP 通过数据包大小检测 MTProxy,因此如果启用此模式,则会向数据包随机填充。 仅对启用它的客户端使用!!! 启用方式:在客户端代理的密钥最前面加上 dd 即可(xxxxxx => ddxxxxxx)

手动设置

不同的客户端有不同的位置这里就简单的说一下

找到设置中的代理/proxy 选项 》 添加代理/Add proxy 》 MTPROTO proxy 》 server 填写服务器地址,密钥就是前面步骤中获得的密钥。

服务器注册及分享

注册服务器时生成的两个链接可以直接用来添加代理,第一个为公网链接,第二个为 app 内链接。

链接

GitHub 项目地址

更新日志 2018-06-28:升级一键一键脚本为二合一

2018-06-27:添加一键脚本

2018-08-19:添加随机填充