基于 Debian 发行版搭建 MTProto 代理

 Technique  comment

MTProto 是 Telegram 推出的专用代理协议,数据流自带强加密,具有一定的抗干扰特性。

简介

协议数据包构造如图

更加详细的协议说明详见其官网说明

部署

处理依赖

此程序需要的依赖有两个 opensslzlib

# apt install git curl build-essential libssl-dev zlib1g-dev
# yum install openssl-devel zlib-devel
# yum groupinstall "Development Tools"

克隆代码

前往代码文件夹

# cd /usr/local/src/

克隆仓库代码

# git clone https://github.com/TelegramMessenger/MTProxy && cd MTProxy

编译

# make && cd objs/bin

编译完成后将二进制文件移动至统一管理目录

# mkdir /opt/MTProxy/
# mv mtproto-proxy /opt/MTProxy/

使用

切换至工作目录

# cd /opt/MTProxy/

密码文件

从 Telegram 服务器获得密码文件

# curl -s https://core.telegram.org/getProxySecret -o proxy-secret

配置文件

获得当前 Telegram 配置文件

# curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf

小贴士:此文件偶尔会更新,因此建议每日尝试更新一次,可使用定时任务等进行实现。

用户密码

创建用户使用的密钥

# head -c 16 /dev/urandom | xxd -ps

小贴士:此命令的输出字符串请记录,后续操作会使用到,本文以 77373323443727804b52859956e2c3e0 为例。

创建守护单元

写入单元 /etc/systemd/system/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 77373323443727804b52859956e2c3e0 --aes-pwd proxy-secret proxy-multi.conf -M 1
Restart=on-failure

[Install]
WantedBy=multi-user.target

单元内参数说明

参数 数值 说明
-H 443 服务监听端口
-S N/A 用户密码
-M 1 工作进程数(越大可接纳用户数越多)

写入单元后需要重载系统守护进程

# systemctl daemon-reload

使用方法

命令 功能
systemctl start MTProxy 启动服务
systemctl restart MTProxy 重启服务
systemctl status MTProxy 查看服务状态
systemctl enable MTProxy 启用服务自启动

在客户端中输入服务地址、端口、用户密码即可开始使用。

附录

参考链接

回复