部署供Telegram使用的MTProxy服务

更新后的telegram在iOS上使用系统代理无效,可以选择使用telegram内置的socks5和mtproxy来进行代理。socks5代理搞得我一头雾水,到最后也没找到iOS上我vpn程序的本地端口在哪。只能使用mtproxy。
好在mtproxy服务器的配置也很简单。
以我的服务器为例,操作系统是centos6。

安装依赖

1
2
3
yum update
yum install openssl-devel zlib-devel git wget vim
yum groupinstall "Development Tools"

安装C++11

1
2
3
4
cd /etc/yum.repos.d
wget http://linuxsoft.cern.ch/cern/scl/slc6-scl.repo
yum -y --nogpgcheck install devtoolset-3-gcc devtoolset-3-gcc-c++
scl enable devtoolset-3 bash

编译源代码

1
2
3
git clone https://github.com/TelegramMessenger/MTProxy
cd MTProxy
make

运行

1
2
3
4
5
6
cd objs/bin
# 获取 AES 密钥用于连接 Telegram 服务器
curl -s https://core.telegram.org/getProxySecret -o proxy-secret
# 获取 Telegram 服务器列表及配置,建议定时更新
curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf
head -c 16 /dev/urandom | xxd -ps

添加用户:

1
2
adduser mtproxy
passwd mtproxy

记住到这一步生成的密钥。

1
2
chmod +x mtproto-proxy
./mtproto-proxy -u mtproxy -p 8888 -H 445 -S <secret> --aes-pwd proxy-secret proxy-multi.conf -M 0 &

更改防火墙设置,允许对应的 TCP 端口通过:
sudo iptables -A INPUT -p tcp --dport 445 -j ACCEPT

添加开机启动

cd /home/MTProxy/objs/bin && ./mtproto-proxy -u mtproxy -p 8888 -H 445 -S <secret> --aes-pwd proxy-secret proxy-multi.conf -M 0 &

停止MTProxy

pkill -u mtproxy

参考来源: