很多人发现用了SS或者SSR后Telegram还是连接超时,打不开。自己搭建socks5代理也是各种碰壁,本文介绍下如何搭建Telegram专属代理:MTProxy(也叫MTProto),不需要SS或者SSR,也可以直连Telegram,彻底解决Telegram无法连接的问题。
文章目录
什么是MTProxy
Telegram MTProxy是Telegram官方出的一个轻量级的代理工具(也叫MTProto),可以直接配置在Telegram客户端中,不需要开启其他代理就可以直连Telegram。官方地址:Telegram MTProxy。
MTProxy非常方便,搭建起来也容易,之后就不需要每次都开代理了,还省下不少电,毕竟小火箭是真的耗电。
MTProxy搭建教程
必须要一台国外的服务器(可以直连Telegram的),如果有就跳过,没有就去买一台,推荐搬瓦工,便宜适合新手:搬瓦工购买与优惠码使用。
之后就是SSH到服务器上,参考:Windows/Mac/Linux如何SSH远程连接/登陆搬瓦工。
1.编译MTProxy
首先安装依赖:
在Debian/Ubuntu系统上:
apt install git curl build-essential libssl-dev zlib1g-dev
在CentOS/RHEL系统上:
yum install openssl-devel zlib-devel
yum groupinstall "Development Tools"
之后下载源码库:
git clone https://github.com/TelegramMessenger/MTProxy
cd MTProxy
最后直接直接make安装,并进入到bin文件夹:
make && cd objs/bin
如果安装失败,需要重新make,则先执行 make clean
。
2.运行MTProxy
下载位于Telegram服务器的secret(就是下载文件)
curl -s https://core.telegram.org/getProxySecret -o proxy-secret
下载telegram配置文件(还是下载文件)
curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf
生成一个32位16进制secret用于客服端连接服务器(运行完这个会在界面输出一个密码)
head -c 16 /dev/urandom | xxd -ps
运行mtproto-proxy
./mtproto-proxy -u nobody -p 8888 -H 1024 -S de731d1e955150d03ae40579efdfb3a3 --aes-pwd proxy-secret proxy-multi.conf -M 0
关于几个参数说明以下
nobody
为用户名,mtproto-proxy
调用setuid()
以放弃权限。(不需要改)8888
为本地端口,用于获取统计数据。1024
为代理服务器端口,客户端使用此端口与代理服务器连接。de731d1e955150d03ae40579efdfb3a3
为此前生成的密钥,同样用于客户端。也可同时指定多个密钥:-S <secret1> -S <secret2>
。proxy-secret
为此前获取的用于连接 Telegram 服务器的 AES 密钥。(不需要改)proxy-multi.conf
为此前获取的 Telegram 服务器列表及配置。(不需要改)-M
参数指定除主线程之外的工作线程数目,此处指定为0
,仅用主线程。
MTProxy代理注册及分享
你可以直接用你的配置添加代理配置,具体位置:Setting > Data Storage > Use Proxy > + Add Proxy > MTProto,输入你的server ip,端口和secret就行。
或者直接通过Telegram机器人注册与管理,步骤如下:
- 添加官方机器人 @MTProxybot
- 发送
/newproxy
- 根据提示发送代理服务器地址及端口号: 102.11.23.21:1024
- 再根据提示发送此前生成的密钥: de731d1e955150d03ae40579efdfb3a3
- 注册完成
FAQ
使用阿里云服务器或者AWS服务器搭建Telegram MTProxy时,发现这个MTProxy绑定的是内网IP,解决方案也很简单,使用NAT模式就行,指定内网IP和外网IP:
./mtproto-proxy -u nobody -p 8888 -H 443 -S <secret> --nat-info <intranet ip>:<public ip> --aes-pwd proxy-secret proxy-multi.conf -M 0
现在加上白名单,MTProxy 还可以用
有没有发现最近MTProxy设置好用几分钟就连接不上端口了?换个端口又几分钟之后连接不上有没有什么解决办法啊?
MTProxy 好像被经准识别了。用 SS 代理上 TG 吧
root@iZj6cbt4z16my4bnhfoh70Z:/opt/MTProxy/objs/bin# ./mtproto-proxy -u nobody -p 8888 -H 443 -S 6f690fb4fac91e0110b4c4fd77e8b9d6 --aes-pwd proxy-secret proxy-multi.conf -M 1 --nat-info 47.91.227.42:172.31.123.76
[5346][2019-03-01 11:19:28.600220 local] Invoking engine mtproxy-0.01 compiled at Mar 1 2019 10:24:02 by gcc 5.4.0 20160609 64-bit after commit 2c942119c4ee340c80922ba11d14fb3b10d5e654
[5346][2019-03-01 11:19:28.600337 local] config_filename = 'proxy-multi.conf'
[5346][2019-03-01 11:19:28.600597 local] creating 1 workers
[5346][2019-03-01 11:19:28.601519 local] Started as [172.31.123.76:8888:5346:1551410368]
[5346][2019-03-01 11:19:28.601731 local] configuration file proxy-multi.conf re-read successfully (809 bytes parsed), new configuration active
[5346][2019-03-01 11:19:28.602086 local] main loop
[5347][2019-03-01 11:19:28.603237 local] Started as [172.31.123.76:8888:5347:1551410368]
[5347][2019-03-01 11:19:28.603429 local] configuration file proxy-multi.conf re-read successfully (809 bytes parsed), new configuration active
[5347][2019-03-01 11:19:28.603665 local] main loop
请问阿里云这是什么情况,NAT配置不上?