搭建 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
有以下几点需要注意:
- -p 8888 为 MTProxy 本地运行的端口,可自行修改
- -H 443 为远程连接的端口,可自行修改
- -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
注意修改 WorkingDirectory
及 ExecStart
中的路径
保存后重载 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分钟就会无法连接。重新设置时间之后问题解决。
2 comments
Online Viagra Store [url=http://kamagpills.com][/url] Levitra 8 Compresse
服务启动失败
[root@instance-1 bin]# systemctl status MTProxy.service
● MTProxy.service - MTProxy
Loaded: loaded (/etc/systemd/system/MTProxy.service; disabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Sun 2018-12-09 10:36:56 UTC; 1s ago
Process: 1452 ExecStart=/root/MTProxy/objs/bin/mtproto-proxy -u nobody -p 8888 -H 8357 -S 9b4155ef5d0a9c44b2206b1
8e34dce13 ---aes-pwd /root/MTProxy/objs/bin/proxy-secret /root/MTProxy/objs/bin/proxy-multi.conf -M 1 (code=exited,
status=2)
Main PID: 1452 (code=exited, status=2)
Dec 09 10:36:56 instance-1 systemd[1]: MTProxy.service: main process exited, code=exited, status=2/INVALIDARGUMENT
Dec 09 10:36:56 instance-1 systemd[1]: Unit MTProxy.service entered failed state.
Dec 09 10:36:56 instance-1 systemd[1]: MTProxy.service failed.
Dec 09 10:36:56 instance-1 systemd[1]: MTProxy.service holdoff time over, scheduling restart.
Dec 09 10:36:56 instance-1 systemd[1]: start request repeated too quickly for MTProxy.service
Dec 09 10:36:56 instance-1 systemd[1]: Failed to start MTProxy.
Dec 09 10:36:56 instance-1 systemd[1]: Unit MTProxy.service entered failed state.
Dec 09 10:36:56 instance-1 systemd[1]: MTProxy.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
“./mtproto-proxy ***”可以执行成功,命令加上绝对路径就失败,如下
[root@instance-1 bin]# ./root/MTProxy/objs/bin/mtproto-proxy
-bash: ./root/MTProxy/objs/bin/mtproto-proxy: No such file or directory
[root@instance-1 bin]# pwd
/root/MTProxy/objs/bin
[root@instance-1 bin]# ls
mtproto-proxy proxy-multi.conf proxy-secret