MTProto代理搭建教程

安装依赖:

Deb系:

1
apt install git curl build-essential libssl-dev zlib1g-dev

RPM系:

1
yum install openssl-devel zlib-devel && yum groupinstall "Development Tools"

对源码进行构建:

克隆仓库:

1
git clone https://github.com/TelegramMessenger/MTProxy

进入目录:

1
cd MTProxy

开始构建:

1
make clean && make

进入构建输出文件目录:

1
cd objs/bin

此目录下的mtproto-proxy为后续运行的主程序

运行:

获取配置文件:

1
curl -s https://core.telegram.org/getProxySecret -o proxy-secret && curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf

生成密钥:

1
openssl rand -hex 16

临时运行:

1
./mtproto-proxy -u nobody -p 随便一个不常用的内网端口 -H 外部访问端口 -S 生成的密钥 --aes-pwd proxy-secret proxy-multi.conf -M 5

配置 TLS:

  • 此时你根据上述临时运行的是不带有TLS功能的

修改启动命令:

1
./mtproto-proxy -u nobody -p 随便一个不常用的内网端口 -H 外部访问端口 -S 生成的密钥 --aes-pwd proxy-secret proxy-multi.conf -M 5 -D "伪装域名"

以上为支持TLS功能的临时启动命令

连接使用的Secret修改为如下字符串

1
ee + secret + domain的十六进制

注意:这个Secret只是客户端这样填写,服务端还是保持临时运行时设置的Secret

伪装的站点最好支持TLS1.3

进程守护:

新建/etc/systemd/system/mtproto.service文件,写入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=MTProxy
After=network.target

[Service]
Type=simple
WorkingDirectory=所在路径
ExecStart=/所在路径/支持TLS功能的临时启动命令去掉./
Restart=on-failure

[Install]
WantedBy=multi-user.target

运行进程守护并添加开机自启:

1
systemctl daemon-reload && systemctl enable mtproto.service && systemctl restart mtproto.service

查看运行状态:

1
systemctl status mtproto.service

重新启动服务:

1
systemctl restart mtproto.service

其它问题:

Telegram官方的MTProto程序似乎有些问题,在主程序运行时的PID > 65535时可能会出现问题,如果运行出现报错可以重启一下试试

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2023-2026 Xiaolan

请我喝杯咖啡吧~