MTProxy是Telegram(以下简称TG)官方开源的一个TG代理工具,用户可以用来自建代理方便自己使用TG,C语言写一个很轻便的代理软件。废话不多说,贴出github地址
安装
github页面已经有详细的安装教程,这里简单说一下。
-
安装依赖
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 && cd objs/bin
编译完会在 objs/bid*目录生成可执行文件mtproto-proxy
把这个可执行文件转移到你喜欢的目录
mv mtproto-proxy /opt/MTProxy
cd /opt/MTProxy
-
生成配置文件
获取secret,用于连接TG服务器的
curl -s https://core.telegram.org/getProxySecret -o proxy-secret
获取proxy-multi.conf,TG官方的host,里面存放的是TG官方服务器的地址和端口,你需要代理访问的地址都在这里面,官方建议经常更新一下这个文件
curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf
生成一个密钥,这个密钥是要给客户端用的
head -c 16 /dev/urandom | xxd -ps
以上命令会生成一个32位的字符串,copy下来,后面要用到。
完成之后,
/opt/MTProxy文件夹下面会有三个文件mtproto-proxy,proxy-multi.conf和proxy-secret。配置文件获取完毕
-
创建Systemd service
创建一个system service可以很方便的管理你的mtproxy的启动、重启和查看状态等。
vi /etc/systemd/system/MTProxy.service
编辑MTProxy.service
[Unit]
Description=MTProxy
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/MTProxy
ExecStart=/opt/MTProxy/mtproto-proxy -u nobody -p 8888 -H 443 -S <secret> --aes-pwd proxy-secret proxy-multi.conf -M 1
Restart=on-failure
[Install]
WantedBy=multi-user.target
其中
secret是在第3步里面生成的客户端密钥,替换为你自己生成的字符串。
8888是内部查看服务状态的端口
443是客户端连接用的端口,这里你可以自定义为你想开放的接口
保存MTProxy.service之后重载一下systemctl,并启动该服务
systemctl daemon-reload
systemctl restart MTProxy.service
//查看一下服务状态
systemctl status MTProxy.service
不出意外的话你会在控制台输出看到最后两行大概是长这样的
config_filename = 'proxy-multi.conf'
creating 1 workers
Started as [*.*.*.*:*:*:*]//这里是ip:端口:端口
configuration file proxy-multi.conf re-read successfully (797 bytes parsed), new configuration a main loop
Started as [*.*.*.*:*:*:*]//这里是ip:端口:端口
configuration file proxy-multi.conf re-read successfully (797 bytes parsed), new configuration a main loop
说明服务器已经正常跑起来了。你的MTProxy已经可以使用了。
阿里云的部分用户这里可能有一个注意事项,阿里云有的机器MTProxy获取不到外网IP的,绑定的是内部局域网IP,这样会导致即使你的服务没有任何问题的跑起来了,但是填到客户端里面客户端无法连接上代理。如何检测你的机器是不是能获取到外网地址,ifconfig一下,能看到你服务器的外网ip就可以,看不到的话就说明获取不到外网地址。如果看不到你的外网地址的话,在第四步的MTProxy.service文件里面使用--nat-info指定一下你的内网地址和外网地址。
WorkingDirectory=/opt/MTProxy
ExecStart=/opt/MTProxy/mtproto-proxy -u nobody -p 8888 -H 443 -S <secret> --nat-info <内网地址>:<外网地址> --aes-pwd proxy-secret proxy-multi.conf -M 1
代理注册
如果你想分享你的代理给亲朋友好友使用的话,你可以到TG里面注册你的代理,TG会生成分享连接
-
注册分享
- 关注 @MTProxybot 官方机器人
- 发送
/newproxy指令 - 根据提示,再发送你的代理地址和端口
<ip>:<port> - 再根据提示,发送前面生成的32位客户端密钥
******************************** - 注册完毕,你会得到以下内容
Success!
Your proxy has been successfully registered. You can now pass this proxy tag to the software you are using: ********************************.//这是注册之后生成的代理tag
Here is a link to your proxy server: https://t.me/proxy?server=ip&port=端口&secret=********************************
上面的https://t.me/proxy?server=ip&port=端口&secret=********************************就是分享链接,你把这个分享给你的亲朋好友,他们就可以用上你自建的代理啦~
-
设置赞助频道
设置赞助频道之后,使用你的代理的客户端会在聊天主界面置顶显示你设置的频道,是不是有种很diao的感觉呢?
- 给@MTProxybot 发送指令
myproxies - 点击它返回的你的代理的tag
- 点击菜单
Set promotion - 回复你的频道的id或者链接,例如
https://t.me/qingniantuzhai或者@qingniantuzhai,这里必须是频道(channel),不能是群组(group) - 设置完毕
订阅 小球球的窝
获取最新的帖子直接发送到您的收件箱