搭建 Telegram 专用代理服务器 MTProxy

MTProxy 是 Telegram 官方开源的一款代理工具,其直接内置于 Telegram 客户端当中,通过它我们可以很方便地连接 Telegram 而无需其它代理工具。

GitHub:GitHub - TelegramMessenger/MTProxy

本文中所使用的系统为 CentOS 7 X86_64

接下来就是具体的安装教程。


首先,安装依赖

yum install openssl-devel zlib-devel
yum groupinstall "Development Tools"

拉取源代码

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

编译

make && cd objs/bin

如果编译出错,需要在再次编译之前执行 make clean

获取用于连接 Telegram 服务器的密钥

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

获取配置文件(建议每天更新)

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

生成用于连接代理服务器的密钥(请妥善保存)

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

接下来就可以尝试运行了

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

有以下几点需要注意:

  1. -p 8888 为 MTProxy 本地运行的端口,可自行修改
  2. -H 443 为远程连接的端口,可自行修改
  3. -S <secret> 为连接密钥,将 <secret> 修改为刚才生成的密钥

如果运行没有问题,那就 Ctrl + c 终止运行,接下来创建 Systemd service 以更好地管理 MTProxy

创建 Systemd service 文件

vi /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 443 -S <secret> ---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

注意修改 WorkingDirectoryExecStart 中的路径

保存后重载 daemons

systemctl daemon-reload

之后就可以运行了

systemctl restart MTProxy.service

查看服务状态

systemctl status MTProxy.service

停止服务

systemctl stop MTProxy.service

最后在 Telegram 上来注册一下我们的代理服务器

打开 Telegram 添加此机器人 @MTProxybot

发送 /newproxy

根据提示分别发送 代理地址:端口密钥

完成后我们可以获取到 https://tg:// 两个链接,通过链接就可以快速地为 Telegram 客户端添加代理。

我们还可以为自己的代理设置推广频道,之后你设置的推广频道将展示在所有使用此代理用户的对话列表中。


另外说一下搭建过程中遇到的小坑

第一次装完之后运行一切正常但就是无法连接,最后在这里找到原因Proxy running but clients can't connect
服务器时间没有校准,与本地相差超过3分钟就会无法连接。重新设置时间之后问题解决。

Last modification:July 17th, 2020 at 03:04 pm
If you think my article is useful to you, please feel free to appreciate