Telegram MTP

Deploying Telegram Mtp Server

下载代码

切换至一个合适的、易记的目录位置 cd /opt

本文内容基于Debian Linux 系统,其他Linux发行版请根据实际情况调整命令。

# 下载源代码
git clone https://github.com/Tychristine/mtprotoproxy.git
# 切换到项目主目录
cd mtprotoproxy

安装必要的软件包

# 安装python3和pip
apt update
apt install -y python3 python3-pip openssl

注:openssl生成密钥时会用到

配置准备

选择TLS域名(重要)

选择的目标完整需要满足以下条件

  • TLSv1.3 和 X25519MLKEM768加密和身份验证(非常重要)

浏览器按下F12,打开浏览器开发者工具,选项卡调整为Prolicy and Security(隐私和安全),然后访问你的目标域名查看概览中的TLS版本和加密套件.

生成密钥(前半部分)

# 生成 32位16进制(HEX) 的字符串作为密钥
openssl rand -hex 16

生成密钥(后半部分)

# 引号内填入你选择的目标
echo -n "目标域名" | xxd -p

填写配置

编辑文件 config.py

# 监听端口号
PORT = 9090
# 引号内填如32位密钥
USERS = {
    "tg":  "",
}
# 引号内填入目标域名
TLS_DOMAIN = ""

运行与注册服务单元

运行命令语法: python3 <主程序路径> <配置文件路径>

编辑服务单元

编辑文件mtp.service

注意编辑第6行ExecStart启动命令与你的实际路径相符.

[Unit]
    Description=Async MTProto proxy for Telegram
    After=network-online.target
    Wants=network-online.target
[Service]
    ExecStart=python3 /opt/mtprotoproxy/mtprotoproxy.py /opt/mtprotoproxy/config.py
    AmbientCapabilities=CAP_NET_BIND_SERVICE
    LimitNOFILE=infinity
    User=root
    Group=root
    Restart=on-failure
[Install]
    WantedBy=multi-user.target

运行与管理

# 注册服务单元
cp mtp.service /etc/systemd/system/mtp.service
# 重载系统服务
systemctl daemon-reload
# 启动服务
systemctl start mtp
# 设置开机自启
systemctl enable mtp
# 查看服务状态
systemctl status mtp
# 出现Active: active (running)则成功运行

客户端配置

Server 主机地址,尽量使用IP

Port 端口号

Secret 完整密钥

MTP密钥组成结构: ee+{32位16进制字符串}+{目标域名的16进制表示}

按照此教程顺序则为:

ee+密钥前半+密钥后半

TG客户端链接

tg://proxy?server={Server}&port={Port}&secret={Sercret}

Licensed under CC BY-NC-SA 4.0
Chrsitine's blog ❤️
Built with Hugo
Theme Stack designed by Jimmy