前言
Telegram是一款类似于QQ和微信的即时通讯软件,中文名叫电报。Telegram最大的特点,也是主打的招牌就是加密与安全:除了服务器本身加密外,还可以额外用户对用户加密,还支持设置阅后即焚,保证通信隐私安全。目前最新版本的客户端支持发送所有类型的文件和进行语音通话。
不过正是由于Telegram的加密特性,导致不少地区都对Telegram进行封杀,必须使用特殊手段才能使用Telegram,基于此类问题,电报官方开发了一款专门用于Telegram的代理工具——MTProxy。
MTProxy特别适合主要通过手机使用Telegram的用户,电脑一般一直开启科学上网工具,但手机不同,所以使用MTProxy可以让手机更方便地使用Telegram。
手动安装
准备
在安装之前,需要确认你的服务器上拥有一些基本工具:openssl
、zlib
、gcc
等。
Build
- 拉取源码
1
| git clone https://github.com/TelegramMessenger/MTProxy
|
- 编译,生成的二进制文件是objs/bin/mtproto-proxy
1 2
| cd MTProxy make && cd objs/bin
|
Config
- 连接Telegram服务器,并获取配置文件
1 2
| curl -s https://core.telegram.org/getProxySecret -o proxy-secret curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf
|
- 生成密钥,一定要记得记录下来
1
| head -c 16 /dev/urandom | xxd -ps
|
- 创建systemd服务文件,并且填充内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| nano /etc/systemd/system/MTProxy.service
[Unit] Description=MTProxy After=network.target
[Service] Type=simple WorkingDirectory=/opt/MTProxy ExecStart=/opt/MTProxy/mtproto-proxy -u $username -p $localport -H $connectport -S $secret --aes-pwd proxy-secret proxy-multi.conf -M $num Restart=on-failure
[Install] WantedBy=multi-user.target
|
变量名 | 含义 | 备注 |
---|
username | 用户名 | |
localport | 统计端口 | wget localhost:8888/stats |
connectport | 连接端口 | |
secret | 密钥 | |
num | 进程数目 | 默认为1即可 |
Run
- 重新加载进程守护(daemons)
1 2 3 4 5 6 7
| systemctl daemon-reload
systemctl start MTProxy.service systemctl stop MTProxy.service systemctl restart MTProxy.service systemctl status MTProxy.service systemctl enable MTProxy.service
|
- 获取链接:
tg://proxy?server=SERVER_IP/SERVER_DOMAIN&port=PORT&secret=SECRET
,将其发送至任一tg聊天窗口,点击添加链接即可
MTProxy Admin Bot
MTProxy Admin Bot是Telegram官方帮助使用代理的工具,搜索添加后,通过/newproxy
命令生成代理链接:
脚本安装+TLS伪装
上面的安装过程略显繁琐,容易出错,而且更重要的问题是这样安装的代理使用的流量特征十分明显,特别容易被GFW识别,导致服务器端口甚至IP被封,最好使用其他方法进行伪装,所以可以使用一键安装脚本,例如MTProxy TLS或者mtproxy,安装过程与上面类似,使用方法在Github主页中有描述:
1 2 3 4
| bash mtproxy.sh start bash mtproxy.sh debug bash mtproxy.sh stop bash mtproxy.sh restart
|
Q&A
- 脚本安装之后无法启动
可以使用bash mtproxy.sh debug
命令查看问题,一般问题都是类似这样:
这是因为脚本下载的mtproto-proxy版本太老了,可以看到是用gcc-8编译的去年的老版本,可能和你的电脑不匹配,我的解决方案是:
①. 下载原版:git clone https://github.com/TelegramMessenger/MTProxy
②. 使用服务器上的gcc进行编译,将编译产生的mtproto-proxy二进制文件复制到一键管理脚本所在目录下,再次启动
③. 有可能出现无法运行的情况,可以将原版代码中common/pid.c中的这一行注释掉,重新编译,重复上面的步骤:
1
| assert (!(p & 0xffff0000));
|
参考资料
- MTProxy
- MTProxy TLS 绿色版一键安装脚本
- mtproxy
- MTProxy+FakeTLS|Telegram稳定代理配置教程
- Systemd 入门教程:命令篇