跳转到内容
Guides 3 分钟阅读 1140 次浏览

Telegram 的 MTProto Proxy

全面了解 Telegram 的 MTProto 代理:本指南涵盖简易部署、实际使用,以及 GProxy 如何保障您的连接安全。

Telegram 的 MTProto Proxy

Telegram 的 MTProto Proxy 是一个运行在服务器端的应用程序,用于为 Telegram 消息服务提供安全且经过混淆的访问,主要用于绕过互联网审查,并通过中间服务器转发流量来提升隐私性。

什么是 MTProto Proxy?

MTProto Proxy 是专为 Telegram 消息协议(MTProto)定制的一类代理服务器。与普通的 SOCKS5 或 HTTP 代理不同,MTProto Proxy 直接实现 MTProto 协议,因此能与 Telegram 客户端无缝集成。它的主要作用是混淆 Telegram 流量,使其在深度包检测(DPI)系统看来与普通 HTTPS 流量难以区分。在 Telegram 被屏蔽或受限的环境中,这一能力至关重要。

主要特点:
* 协议专用: 直接处理 Telegram 的 MTProto 协议。
* 混淆: 加密并伪装 Telegram 流量以规避审查。
* 服务器端: 需要部署在独立服务器(VPS)上。
* 客户端集成: Telegram 客户端原生支持 MTProto 代理。

部署前提条件

搭建 MTProto Proxy 需要一台虚拟专用服务器(VPS)和基本的 Linux 管理知识。

  • 服务器: 具备 root 权限的 VPS。
    • 操作系统: 常用且支持良好的是 Debian 或 Ubuntu Linux 发行版,CentOS 同样可行。
    • 资源: 基础代理对 CPU 和内存要求极低。512MB 内存和 1 vCPU 通常足以支撑数百名并发用户。
  • 网络: 一个用于接收入站连接的开放端口(出于混淆考虑常用默认的 443 或 80,但任意端口均可配置)。
  • 权限: 服务器上的 root 或 sudo 权限。
  • 工具: 基本的 Linux 命令行工具(例如 sshcurlaptyumsystemctlufwiptables)。

搭建 MTProto Proxy 服务器

部署 MTProto Proxy 常用两种方法:使用官方 Telegram 代理程序,或使用 Docker 容器。

方法一:官方 Telegram 代理(推荐)

该方法需要编译并运行官方的 Telegram 代理服务器程序。

1. 更新系统并安装依赖
sudo apt update && sudo apt upgrade -y
sudo apt install -y git build-essential libssl-dev zlib1g-dev

CentOS/RHEL:

sudo yum update -y
sudo yum install -y git make gcc openssl-devel zlib-devel
2. 克隆并编译代理
git clone https://github.com/TelegramMessenger/MTProxy.git
cd MTProxy
make && cd objs/bin
3. 生成 secret

客户端认证和流量混淆都需要一个 secret。

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

该命令会生成一个 32 位十六进制字符串,即您的 SECRET
例如:a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6

4. 运行代理(初次测试)
./mtproxy -p <PORT> -H <HOST_IP> -S <SECRET> --aes-pwd <PATH_TO_PROXY_SECRET_FILE> -M <WORKER_THREADS>
  • <PORT>:客户端连接的端口(例如 443)。
  • <HOST_IP>:服务器的公网 IP 地址。
  • <SECRET>:先前生成的 32 位十六进制 secret。
  • <PATH_TO_PROXY_SECRET_FILE>:通常为 /etc/mtproxy/proxy-secret(请用 64 字节随机 secret 创建该文件,供内部通信使用)。
  • <WORKER_THREADS>:工作线程数(例如 1)。

例如:

mkdir -p /etc/mtproxy
head -c 64 /dev/urandom > /etc/mtproxy/proxy-secret
./mtproxy -p 443 -H 0.0.0.0 -S a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 --aes-pwd /etc/mtproxy/proxy-secret -M 1

0.0.0.0 表示绑定到所有可用网络接口。

5. 配置为 systemd 服务

为了持续运行,请创建一个 systemd 服务单元。

创建 /etc/systemd/system/mtproxy.service

[Unit]
Description=MTProto Proxy for Telegram
After=network.target

[Service]
Type=simple
ExecStart=/root/MTProxy/objs/bin/mtproxy -p 443 -H 0.0.0.0 -S a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 --aes-pwd /etc/mtproxy/proxy-secret -M 1
WorkingDirectory=/root/MTProxy/objs/bin
User=root
Restart=on-failure

[Install]
WantedBy=multi-user.target

请把 ExecStart 中的参数替换为您自己的端口、secret 和文件路径。如果 MTProxy 克隆到了其他目录,请相应调整 WorkingDirectory

重新加载 systemd,启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable mtproxy
sudo systemctl start mtproxy
sudo systemctl status mtproxy
6. 防火墙配置

在服务器防火墙上开放所选端口(例如 443)。

UFW(Ubuntu/Debian):

sudo ufw allow 443/tcp
sudo ufw enable # if not already enabled

IPTables(CentOS/RHEL,或未使用 UFW 时):

sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo service iptables save # or use firewalld

Firewalld(CentOS/RHEL 7+):

sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload

方法二:Docker(备选)

使用 Docker 可以简化部署和依赖管理。

1. 安装 Docker

请按照您所用操作系统的官方 Docker 安装指南操作。

2. 生成 secret
head -c 16 /dev/urandom | xxd -ps

这就是您的 SECRET

3. 用 Docker 运行代理
docker run -d --name mtproxy-server -p 443:443 --restart=always \
    telegrammessenger/proxy:latest \
    -S a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 \
    --aes-pwd /etc/mtproxy/proxy-secret -M 1
  • -d:以后台(detached)模式运行。
  • --name mtproxy-server:为容器指定名称。
  • -p 443:443:将主机 443 端口映射到容器 443 端口。
  • --restart=always:确保容器随 Docker 守护进程一起重启。
  • telegrammessenger/proxy:latest:官方 Docker 镜像。
  • -S <SECRET>:您生成的 secret。
  • --aes-pwd /etc/mtproxy/proxy-secret:占位参数,Docker 镜像会在内部生成该值。
  • -M 1:工作线程数。

请确保主机防火墙(UFW/Firewalld/IPTables)放行 443 端口的流量,内部网络由 Docker 处理。

获取 tag(可选)

tag 是一个可选参数,代理运营者可以借此把一个赞助频道关联到自己的代理。当用户通过带 tag 的代理连接时,赞助频道会显示在其聊天列表顶部。

获取 tag 的方法:
1. 在 Telegram 中给 @MTProxybot 发消息。
2. 向机器人发送 /newproxy
3. 提供您代理的公网 IP 地址和端口。
4. 机器人会返回一个 tag 值。

把 tag 加入 systemd 服务的 ExecStart 命令或 Docker 命令中:

# Systemd(添加 --tag <YOUR_TAG>)
ExecStart=/root/MTProxy/objs/bin/mtproxy -p 443 -H 0.0.0.0 -S a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 --aes-pwd /etc/mtproxy/proxy-secret -M 1 --tag <YOUR_TAG>

# Docker(添加 -T <YOUR_TAG>)
docker run -d --name mtproxy-server -p 443:443 --restart=always \
    telegrammessenger/proxy:latest \
    -S a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 -M 1 -T <YOUR_TAG>

添加 tag 后请重启 MTProto Proxy 服务或容器。

连接到 MTProto Proxy

代理服务器运行后,用户可以通过直达链接或手动配置进行连接。

代理链接格式

分享代理最方便的方式是使用 tg:// 链接:
tg://proxy?server=<SERVER_IP>&port=<PORT>&secret=<SECRET>

示例:tg://proxy?server=192.0.2.1&port=443&secret=a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6

在已安装 Telegram 的设备上点击该链接,系统会提示用户添加此代理。

在 Telegram 应用中手动配置
  1. 打开 Telegram 设置。
  2. 进入"数据和存储"(部分客户端为"隐私和安全")。
  3. 选择"代理设置"。
  4. 开启"使用代理"或"SOCKS5/MTProto 代理"。
  5. 选择"MTProto 代理"。
  6. 在"服务器"字段填写服务器的公网 IP 地址。
  7. 在"端口"字段填写配置好的端口(例如 443)。
  8. 在"Secret"字段填写 SECRET
  9. 保存设置。

随后 Telegram 客户端会尝试通过配置好的 MTProto Proxy 连接。

安全注意事项

  • 保持系统更新: 定期更新服务器操作系统和已安装的软件包,以修补漏洞。
  • 强 secret: 使用强度高、随机生成的 secret,避免可预测的模式。
  • 防火墙: 用防火墙限制对代理端口的访问,只放行必要的入站连接。
  • 监控日志: 定期检查代理日志(systemd 使用 journalctl -u mtproxy.service),留意异常活动或错误。
  • 最小权限: 官方代理为图简便常以 root 运行,但如条件允许,可考虑用权限更低的用户运行,代价是文件权限配置会更复杂。

常见问题排查

  • 连接失败:
    • 防火墙: 确认服务器防火墙已开放代理端口。
    • 信息有误: 仔细核对在 Telegram 客户端中填写的服务器 IP、端口和 secret。
    • 代理未运行: 检查代理服务状态(sudo systemctl status mtproxydocker ps)。
    • 网络问题: 确认服务器可以正常连接互联网。
  • 速度慢:
    • 服务器资源: 监控 VPS 的 CPU、内存和网络占用,资源耗尽时应升级配置。
    • 网络延迟: 客户端与代理服务器之间的高延迟会影响速度。
    • 带宽: 确保 VPS 的带宽足以支撑当前用户量。
  • 代理无法启动:
    • 日志: 查看 systemd 日志(journalctl -u mtproxy.service)或 Docker 日志(docker logs mtproxy-server)中的错误信息。
    • 依赖: 确认所有必需的编译依赖都已安装。
    • 端口冲突: 确认所选代理端口没有被其他服务占用。

对比:MTProto Proxy 与 SOCKS5/HTTP 代理

特性 MTProto Proxy SOCKS5/HTTP 代理
协议 Telegram 原生的 MTProto 协议 通用的 SOCKS5 或 HTTP/HTTPS 协议
混淆 内置,专为绕过 DPI 设计 极少或没有;流量特征通常可被识别
抗审查 对 Telegram 封锁非常有效 效果较弱;可能被协议分析拦截
安全性 流量加密,专用于 Telegram 配合 TLS(HTTPS)时加密,否则为明文
配置 需要专门的 "Secret";Telegram 应用原生支持 服务器、端口、(可选)用户名/密码;通用代理设置
使用场景 主要用于受限地区访问 Telegram 通用互联网流量、各类应用
性能 针对 Telegram 流量优化 通用型;性能取决于具体实现
已更新: 03.03.2026
返回分类

试用我们的代理

遍布 100+ 国家的 20,000+ 代理

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.