MTProxy 简介
MTProxy 是专为 Telegram 打造的代理工具,也只能代理 Telegram 。
比较轻量,无需每次启动 Telegram 都需要先启动代理软件,非常方便,占用较少的资源。
官方传送门:MTProxy
MTProxy 安装
安装依赖项
需要安装一些编译的必要工具,以及openssl
和zlib
的开发包。
Debian/Ubuntu:
1
apt install git curl build-essential libssl-dev zlib1g-dev
CentOS/RHEL:
1
2yum install openssl-devel zlib-devel
yum groupinstall "Development Tools"Git获取MTProxy源代码:
1
2git clone https://github.com/TelegramMessenger/MTProxy
cd MTProxy编译
上面步骤完成,开始编译,运行
make
, 编译完成的二进制文件会保存在objs/bin/mtproto-proxy
1
2
3make && cd objs/bin
# 'cd objs/bin' 只是在编译完成后进入该目录要是编译失败了,执行
make clean
清理,再重试吧!
运行
获取用于连接到 Telegram 服务器的密钥
1
curl -s https://core.telegram.org/getProxySecret -o proxy-secret
获取 Telegram 配置文件,(配置有时候会变,官方建议每天更新)
1
curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf
生成一个32位16进制 secret 秘钥,用于客户端连接到你的代理
1
head -c 16 /dev/urandom | xxd -ps
运行
mtproto-proxy
:1
2
3./mtproto-proxy -u nobody -p 8888 -H 443 -S 秘钥 --aes-pwd proxy-secret proxy-multi.conf -M 1
# 记得把 '秘钥' 替换成第三步生成的秘钥参数说明:
8888
: 本地监听端口,如无特殊需求保持默认即可443
: 代理端口,啥2333
、6666
,随意!秘钥
: 步骤三中生成的32位秘钥,你也可以设置多个秘钥:-S 秘钥1 -S 秘钥2
1
: 是工作的进程数.如果你有一个配置很好的服务器,你可以增加工作进程数。
生成指定格式的链接,便于 Telegram 使用:
tg://proxy?server=SERVER_NAME&port=PORT&secret=SECRET
(或者让官方机器人帮你生成)。在 Telegram 通过 @MTProxybot 注册你的代理。请认准官方认证标志
配置 Systemd
创建
systemd
系统服务文件,便于以后的管理和运行MTProxy
1
vi /etc/systemd/system/MTProxy.service
编辑并写入以下代码
1
2
3
4
5
6
7
8
9
10
11
12[Unit]
Description=MTProxy
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/MTProxy
ExecStart=/root/MTProxy/objs/bin/mtproto-proxy -u nobody -p 8888 -H 443 -S 密匙 --aes-pwd /root/MTProxy/objs/bin/proxy-secret /root/MTProxy/objs/bin/proxy-multi.conf -M 1
Restart=on-failure
[Install]
WantedBy=multi-user.target注意:
- 替换自己的秘钥
- 确保WorkingDirectory以及ExecStart内正确写明mtproto-proxy可执行文件的绝对路径。以及指定proxy-secret、proxy-multi.conf的路径也是绝对路径。
重新加载守护进程,让新的服务文件生效
1
systemctl daemon-reload
测试 MTProxy 服务进程
1
2
3
4systemctl restart MTProxy.service
# 查看运行状态
systemctl status MTProxy.service查看运行状态时,如果
Active: active (running)
就说明运行正常把 MTProxy 设为开机启动
1
systemctl enable MTProxy.service
停止MTProxy的运行
1
systemctl stop MTProxy.service