CentOS7 安装部署MTProxy
MTProxy是Telegram(以下简称TG)官方开源的一个TG代理工具,用户可以用来自建代理方便自己使用TG,C语言写一个很轻便的代理软件。废话不多说,贴出github地址
安装
github页面已经有详细的安装教程,这里简单说一下。
CentOS/RHEL:
1 | yum install openssl-devel zlib-devel |
1 | git clone https://github.com/TelegramMessenger/MTProxy |
编译完会在 objs/bid*
目录生成可执行文件mtproto-proxy
把这个可执行文件转移到你喜欢的目录
1 | mv mtproto-proxy /usr/bin |
获取secret,用于连接TG服务器的
1 | curl -s https://core.telegram.org/getProxySecret -o proxy-secret |
获取proxy-multi.conf
,TG官方的host,里面存放的是TG官方服务器的地址和端口,你需要代理访问的地址都在这里面,官方建议经常更新一下这个文件
1 | curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf |
生成一个密钥,这个密钥是要给客户端用的
1 | head -c 16 /dev/urandom | xxd -ps |
以上命令会生成一个32位的字符串,copy下来,后面要用到。
完成之后,
/usr/bin
文件夹下面会有三个文件mtproto-proxy
,proxy-multi.conf
和proxy-secret
。配置文件获取完毕
创建一个system service可以很方便的管理你的mtproxy的启动、重启和查看状态等。
1 | vi /etc/systemd/system/MTProxy.service |
编辑MTProxy.service
1 | [Unit] |
其中
secret
是在第3步里面生成的客户端密钥,替换为你自己生成的字符串。8888
是内部查看服务状态的端口8080
是客户端连接用的端口,这里你可以自定义为你想开放的接口
千万别忘记还有防火墙要设置
1 | firewall-cmd --zone=public --add-port=8080/tcp --permanent |
保存MTProxy.service
之后重载一下systemctl,并启动该服务
1 | systemctl daemon-reload |
不出意外的话你会在控制台输出看到最后两行大概是长这样的
1 | config_filename = 'proxy-multi.conf' |
说明服务器已经正常跑起来了。你的MTProxy已经可以使用了。
阿里云
的部分用户这里可能有一个注意事项,阿里云有的机器MTProxy获取不到外网IP的,绑定的是内部局域网IP,这样会导致即使你的服务没有任何问题的跑起来了,但是填到客户端里面客户端无法连接上代理。如何检测你的机器是不是能获取到外网地址,ifconfig
一下,能看到你服务器的外网ip就可以,看不到的话就说明获取不到外网地址。如果看不到你的外网地址的话,在第四步的MTProxy.service
文件里面使用--nat-info
指定一下你的内网地址和外网地址。
1 | WorkingDirectory=/usr/bin |
代理注册
如果你想分享你的代理给亲朋友好友使用的话,你可以到TG里面注册你的代理,TG会生成分享连接