Ulzix购买的Alpine系统探针机vps部署tg的MTProto

Ulzix购买的Alpine系统探针机vps部署tg的MTProto

这套教程我分为了**通用环境配置,以及 IPv4 / IPv6 专属启动方案,你可以完美适配你手头的两台机器。[ulzix官网]https://idc.ulzix.com/home.htm


适用环境: LXC / NAT 容器、Alpine Linux 系统、内存 ≤ 128MB、无 Docker 权限。

核心方案: 采用纯静态编译的 Go 版本 mtg(内存占用极小),配合纯手工后台挂载。


🛠️ 第一阶段:基础环境铺垫(两台机器通用)

由于 Alpine 极致精简,默认连 bash 和一些常用的网络库都没有,我们需要先打好地基。

1. 安装系统依赖

通过 SSH 或网页 VNC 登录服务器,以 root 身份执行以下命令:

Bash

1
2
3
# 更新源并安装 bash、curl 以及至关重要的运行库兼容层
apk update
apk add bash curl wget libc6-compat

2. 下载并初始化项目文件

我们借用开源脚本来下载核心程序,但只用它下载,不指望它自动运行。

Bash

1
2
3
4
5
6
7
8
# 创建并进入专属工作目录
mkdir -p /home/mtproxy && cd /home/mtproxy

# 下载一键脚本
curl -fsSL -o mtproxy.sh https://github.com/ellermister/mtproxy/raw/master/mtproxy.sh

# 运行脚本
bash mtproxy.sh

⚠️ 脚本交互时的关键操作:

  1. 选择版本: 必须输入 2 选择 mtg (Golang 版本)!(只有 Go 版本能在 128M 内存下活下来)。
  2. 其他设置: 代理端口、域名等随便填(建议用8443,以及cloudflare.com, 8888的那个内部端口可以直接回车),TAG 留空回车。
  3. 忽略报错: 脚本跑到最后一定会弹出一大串红色的 [ERROR] Update system time failed... 报错。这是正常的,不用理会,程序本体 ./bin/mtg 已经下载成功了!

🚀 第二阶段:专属环境启动篇(根据 VPS 类型二选一)

接下来是最核心的步骤。请确保你在 /home/mtproxy 目录下执行。

首先,执行以下两条命令,清理残留并生成全新的专属密钥:

Bash

1
2
3
4
5
6
cd /home/mtproxy
killall mtg # 杀掉可能卡死的旧进程

# 生成带有 TLS 伪装的专属密钥 (ee开头)
REAL_SECRET=$(./bin/mtg generate-secret tls -c cloudflare.com)
echo -e "\n你的专属密钥是: $REAL_SECRET\n"

(⚠️ 务必把屏幕上打印出来的 ee 开头的那串字符复制保存好!)

接下来,根据你的 VPS 是 IPv6 还是 IPv4,选择对应的启动命令:

方案 A:针对【纯 IPv6】的 VPS

IPv6 环境没有 IPv4 出口,必须强制绑定 [::] 并告知程序你的公网 IPv6。

1. 获取你的公网 IPv6 地址:

Bash

1
curl -s -6 ip.sb

(假设获取到的是 2a01:4f9:4b:f33b::d)

2. 执行最终启动命令(请替换其中的 IP):

Bash

1
nohup ./bin/mtg run --prefer-ip=ipv6 -6 "[你的公网IPv6地址]:8443" -b "[::]:8443" $REAL_SECRET > mtg.log 2>&1 &

方案 B:针对【纯 IPv4】的 VPS

IPv4 环境相对标准,但由于是 NAT 机器,我们同样需要把公网 IP 告诉它,避免它内网迷路。

1. 获取你的公网 IPv4 地址:

Bash

1
curl -s -4 ip.sb

(假设获取到的是 198.51.100.23)

2. 执行最终启动命令(请替换其中的 IP):

Bash

1
nohup ./bin/mtg run -4 "你的公网IPv4地址:8443" -b "0.0.0.0:8443" $REAL_SECRET > mtg.log 2>&1 &

🔍 验证是否启动成功(必做)

启动命令发出去后,执行以下命令查看进程:

Bash

1
2
sleep 2
ps -ef | grep mtg | grep -v grep

只要输出里有一行长长的 ./bin/mtg run ... 进程信息,就说明节点已经平稳运行!

然后再运行

1
cat mtg.log

就会打印出tg link,里面映射的端口改成公网映射转发的端口,理由见第三阶段


🔗 第三阶段:客户端连接与映射配置

程序在服务器内固定监听的是 8443 端口。因为你是 NAT 服务器,无法直接访问 8443,必须经过面板映射。

1. 配置面板端口转发:

登录你的服务器服务商控制面板,找到 端口转发 / 端口映射 功能:

  • 内网端口: 填入 8443
  • 公网端口: 添加规则,获取系统分配给你的外网端口(假设为 20000)。

2. Telegram 客户端填空题:更推荐直接用cat mtg.log打印出tg link,然后直接改个端口,复制到tg里面打开link就可以了

打开 Telegram -> 设置 -> 数据和存储 -> 代理 -> 添加 MTProto 代理:

  • 服务器 (Server): 填入你的公网 IP(机器 A 填 IPv6,机器 B 填 IPv4)。
  • 端口 (Port): 填入面板分配的公网端口(例如 20000)。
  • 密钥 (Secret): 填入第二阶段生成的 ee 开头的长字符串。

连接,起飞!✈️


💡 附录:日常维护小贴士

  • 如果服务器重启了怎么办?

    因为我们没有写复杂的开机自启脚本,如果服务器重启,你只需要连上 SSH,执行以下两句恢复:

    (注意:密钥必须是你之前在 Telegram 里填的那个,如果忘了就按第二阶段重新生成一次)

    Bash

    1
    2
    3
    cd /home/mtproxy
    nohup ./bin/mtg run -4 "公网IP:8443" -b "0.0.0.0:8443" [你的ee密钥] > mtg.log 2>&1 &
    # (IPv6 机器记得换成对应的启动命令)
  • 如果感觉代理变卡了?

    可以直接执行 killall mtg 杀掉进程,然后按上面的命令重新启动一次,释放内存。


    自动化长命令

1
apk update && apk add bash curl wget libc6-compat -q && mkdir -p /home/mtproxy && cd /home/mtproxy && curl -fsSL -o mtproxy.sh https://github.com/ellermister/mtproxy/raw/master/mtproxy.sh && chmod +x mtproxy.sh && killall mtg 2>/dev/null || true && printf '2\n8443\ncloudflare.com\n' | bash mtproxy.sh 2>/dev/null || true && killall mtg 2>/dev/null || true && REAL_SECRET=$(./bin/mtg generate-secret tls -c cloudflare.com) && PUBLIC_IP=$(curl -s -4 ip.sb) && { nohup ./bin/mtg run -4 "$PUBLIC_IP:8443" -b "0.0.0.0:8443" $REAL_SECRET > /home/mtproxy/mtg.log 2>&1 & } && sleep 2 && echo "====================================" && echo "  部署成功!" && echo "  服务器: $PUBLIC_IP" && echo "  端口: 8443" && echo "  密钥: $REAL_SECRET" && echo "  TG Link: $(cat /home/mtproxy/mtg.log | grep -oE 'tg://[^ ]+' | head -1)" && echo "====================================" && echo "--- mtg.log 日志内容 ---" && cat /home/mtproxy/mtg.log

🛠️ 部署开机自启脚本

请先准备好你笔记里提到的两样东西:

  1. 你的公网 IPv4 地址
  2. 你的 ee 开头的长密钥 ($REAL_SECRET)

把你准备好的 IP 和密钥,替换到下面这段代码对应的位置,然后一次性复制粘贴回车

1
2
3
4
5
6
cat << 'EOF' > /etc/local.d/mtproxy.start
#!/bin/sh
cd /home/mtproxy
# 使用你笔记中的终极启动命令,请确保替换了下面的 IP 和 密钥
nohup ./bin/mtg run -4 "你的公网IPv4地址:8443" -b "0.0.0.0:8443" 你的ee开头密钥 > mtg.log 2>&1 &
EOF

写完之后,刷新一下系统服务:

1
2
3
4
5
# 赋予执行权限
chmod +x /etc/local.d/mtproxy.start

# 重启 local 服务拉起进程
rc-service local restart

Ulzix购买的Alpine系统探针机vps部署tg的MTProto
https://blog.zinho.top/2026/05/15/Ulizix购买的Alpine系统探针机vps部署tg的MTProto/
作者
Zinho
发布于
2026年5月15日
许可协议