原文地址:传送门
安装依赖开发包openssl和zlib
在CentOS
/ RHEL上
:
yum install openssl-devel zlib-devel
yum groupinstall "Development Tools"
在Debian
/ Ubuntu上
:
apt install git curl build-essential libssl-dev zlib1g-dev
克隆MTProxy的源码
源码网站:https://github.com/TelegramMessenger/MTProxy
进入/tmp目录
cd /tmp
git clone https://github.com/TelegramMessenger/MTProxy
cd MTProxy
编译安装,安装的位置在objs/bin/mtproto-proxy
make && cd objs/bin
运行程序
获取一个秘密,用于连接到电报服务器
curl -s https://core.telegram.org/getProxySecret -o proxy-secret
获取当前的telegram的配置
curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf
创建并转移目录
mkdir -p /usr/local/MTProxy
mv ./* /usr/local/MTProxy/
生成一个密钥供其他用户连接到您的代理使用
head -c 16 /dev/urandom | xxd -ps
运行mtproto-proxy服务器
输入启动命令,如果你的服务器有内网IP,如谷歌云、微软云、阿里云的需要设置NAT
,那么启动命令请用第二条启动命令:
没有内网IP的启动命令
< secret >
这里替换为之前生成的密钥,注意<>
这个括号是不要的
./mtproto-proxy -u nobody -p 8888 -H 443 -S < secret > --aes-pwd proxy-secret proxy-multi.conf -M 1
有内网IP的启动命令
< secret >
这里替换为之前生成的密钥,<内网IP>:<公网IP>
替换为你服务器的内网IP和公网IP,注意<>这个括号是不要的
./mtproto-proxy -u nobody -p 8888 -H 443 -S < secret > --aes-pwd proxy-secret proxy-multi.conf -M 1 --nat-info <内网IP>:<公网IP>
这里的443为端口号,自定义你的端口号即可。
< secret >这里替换为第三步生成的密钥
可以写到启动脚本里面
[Unit]
Description=telegram proxy
Documentation=https://github.com/TelegramMessenger/MTProxy
After=network-online.target
[Service]
Type=forking
WorkingDirectory=/usr/local/MTProxy
ExecStart=/usr/local/MTProxy/mtproto-proxy -u nobody -p 8888 -H 12001 -S 3dc46415b6b4fbb16fcbe56bfc5147a7 --aes-pwd proxy-secret proxy-multi.conf -M 1 --nat-info 10.170.0.XX:XX.220.XX.244
Restart=on-failure
[Install]
WantedBy=multi-user.target
生成telegram的代理快速连接
方法一(手动模式)
tg://proxy?server=SERVER_NAME&port=PORT&secret=SECRET
方法二(telegram机器人自动生成)
1.在telegram中搜索@MTProxybot,找到MTproxy Admin Bot添加
2.发送 /newproxy
3.根据提示发送代理服务器地址及端口号: 149.28.159.223:8719
4.再根据提示发送此前生成的密钥:3dc46415b6b4fbb16fcbe56bfc5147a7
5.注册完成.
服务器重启后如何重新启动代理服务
进入代理服务器启动目录
cd /usr/local/MTProxy
**输入启动命令,如果你的服务器有内网IP,如谷歌云、微软云、阿里云的需要设置NAT,那么启动命令请用第二条启动命令:
没有内网IP的启动命令< secret >
这里替换为之前生成的密钥,注意<>这个括号是不要的**
./mtproto-proxy -u nobody -p 8888 -H 443 -S < secret > --aes-pwd proxy-secret proxy-multi.conf -M 1
有内网IP的启动命令< secret >
这里替换为之前生成的密钥,<内网IP>:<公网IP>
替换为你服务器的内网IP和公网IP,注意<>这个括号是不要的
./mtproto-proxy -u nobody -p 8888 -H 443 -S < secret > --aes-pwd proxy-secret proxy-multi.conf -M 1 --nat-info <内网IP>:<公网IP>
出现问题及解决方案
有的服务器在编译时会出现编译出错的情况
cd MTProxy
vi Makefile
把里面的-std=gnu11
删除,即可正常编译
谷歌云、微软云、阿里云会出现启动后,识别为内网IP的解决方案
在原启动命令后面加入–nat-info <内网IP>:<公网IP>
即可,注意<内网IP>:<公网IP>
这里的<>括号是不要的
./mtproto-proxy -u nobody -p 8888 -H 443 -S < secret > --aes-pwd proxy-secret proxy-multi.conf -M 1 --nat-info <内网IP>:<公网IP>
有的主机在申请密钥的时候 输入到head -c 16 /dev/urandom | xxd -ps
这个串命令时,无法显示密钥出现下图的情况,这是因为缺少一个依赖
加入这条依赖即可解决这个问题
yum install vim-common