ByteNoteByteNote
TrustTunnel:AdGuard VPN 开源的 HTTPS 混淆 VPN 协议

字节笔记本

2026年6月20日

TrustTunnel:AdGuard VPN 开源的 HTTPS 混淆 VPN 协议

API中转
¥120

TrustTunnel 是 AdGuard VPN 原来使用的 VPN 协议,最近正式开源。它的特点是 traffic 看起来和普通 HTTPS 几乎无法区分,既能绕过深度包检测和限速,又保持了较强的隐私保护。项目包含服务端、客户端库、CLI 和 GUI 应用,服务端用 Rust 写成,目前已经有 3.3k stars。

项目简介

TrustTunnel 是一个现代开源 VPN 协议, originally developed by AdGuard VPN。它的设计目标是在不牺牲速度和稳定性的前提下,让 VPN 流量看起来就像普通 HTTPS 流量,从而绕过基于 DPI 的识别和封锁。

项目包含三个主要部分:

  • TrustTunnel Endpoint:服务端(本仓库)
  • TrustTunnel Client:CLI 客户端和客户端库
  • TrustTunnel Flutter Client:官方 GUI 应用

核心特性

服务端

  • 协议兼容 HTTP/1.1、HTTP/2 和 QUIC:模拟常规 HTTPS 流量,难以被检测和封锁
  • 多种流量隧道:支持 TCP、UDP、ICMP 流量转发
  • 跨平台:服务端支持 Linux 和 macOS
  • 灵活部署:原生、Docker、systemd 都支持
  • 自动 TLS 证书:内置 Let's Encrypt ACME 支持
  • 连接过滤规则:可按客户端 IP、TLS random prefix、TLS random with mask 过滤连接

客户端

  • 系统级 VPN 或 SOCKS5 代理:可任选一种模式
  • Split Tunneling:支持按域名或 IP 排除/仅代理特定流量
  • 自定义 DNS Upstream:支持普通 DNS、DoH、DoT、DoQ
  • Kill Switch:断线时阻断流量
  • 多平台:Linux、macOS、Windows、Android、iOS

技术栈

  • 服务端语言:Rust(占比 91.2%)
  • 客户端:Rust 核心 + Flutter GUI
  • 协议:基于 HTTP/HTTPS/QUIC 的自定义 VPN 协议
  • 证书:Let's Encrypt ACME 或自签名证书
  • 部署方式:systemd、Docker、Docker Compose

安装指南

安装服务端

bash
curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s -

默认安装到 /opt/trusttunnel,支持 linux-x86_64linux-aarch64macos-universal。安装指定版本:

bash
curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s - -V <version>

更新服务端

bash
sudo systemctl stop trusttunnel
curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s -
sudo systemctl start trusttunnel

安装 CLI 客户端

bash
curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnelClient/refs/heads/master/scripts/install.sh | sh -s -

默认安装到 /opt/trusttunnel_client

快速开始

1. 配置服务端

进入安装目录并运行配置向导:

bash
cd /opt/trusttunnel/
sudo ./setup_wizard

向导会询问:

  • 监听地址(原生部署用 0.0.0.0:443
  • 用户名/密码
  • 连接过滤规则
  • 证书来源(Let's Encrypt / 自签名 / 现有证书)

2. 启动服务端

bash
cd /opt/trusttunnel/
cp trusttunnel.service.template /etc/systemd/system/trusttunnel.service
sudo systemctl daemon-reload
sudo systemctl enable --now trusttunnel

3. 导出客户端配置

生成 deep-link(适合移动端和 QR 码):

bash
cd /opt/trusttunnel/
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address>

生成 TOML(适合 CLI 客户端):

bash
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <public_ip> --format toml

4. 启动客户端

bash
cd /opt/trusttunnel_client/
sudo ./trusttunnel_client -c trusttunnel_client.toml

Windows 需要以管理员身份运行。

使用示例

自定义服务器显示名和 DNS

bash
./trusttunnel_endpoint vpn.toml hosts.toml -c phone -a vpn.example.com \
    --name "Home VPN" \
    --dns-upstream 1.1.1.1 \
    --dns-upstream tls://8.8.8.8

自动续期 Let's Encrypt 证书

如果用 Certbot 管理证书,参考仓库里的 CERT_RENEWAL.md 配置自动续期和重载服务。

Docker 部署

仓库提供 Dockerfile 和 docker-compose.yml:

bash
docker compose up -d

客户端选择

类型项目平台
官方 CLITrustTunnel ClientLinux、macOS、Windows
官方 GUITrustTunnel Flutter ClientiOS、Android
社区 GUITrustyWindows 稳定,macOS alpha
社区 GUITrustTunnel-GUI-ClientWindows
网络工具SurgemacOS、iOS(商业,实验性支持)
社区 GUIFireTunnel跨平台 QT

注意事项

  • 目前 Flutter GUI 客户端还不支持自签名证书,测试时建议用 Let's Encrypt 或 CLI 客户端。
  • 服务端需要 root/sudo 权限来管理 TLS 证书和 TUN 接口。
  • 如果 Let’s Encrypt 申请失败,检查 80 端口是否对外开放,或者 DNS TXT 记录是否正确配置。
  • 社区客户端非官方维护,功能和安全性需自行评估。
  • 项目还在活跃开发中,路线图包括客户端之间的 peer-to-peer 通信。

项目链接

分享: