返回更新列表
新发布Sep 1, 2026

TrustTunnel v1.1.0

开源VPN协议,通过HTTPS隧道传输TCP、UDP和ICMP流量,绕过DPI和限速。支持分流隧道、SOCKS5代理、自定义DNS和跨平台客户端。

分享

TrustTunnel

客户端 · App Store · Play Store


目录


简介

TrustTunnel 是一个现代化的开源 VPN 协议,最初由 AdGuard VPN 开发,现在可供任何人使用和审计。

它提供快速、安全、可靠的 VPN 连接,没有常见的权衡。 在设计上,TrustTunnel 流量与常规 HTTPS 流量无法区分, 从而可以绕过限速和深度包检测,同时保持强大的隐私保护。

TrustTunnel 项目包括 VPN 端点(本仓库)、 客户端库和 CLI, 以及 GUI 应用程序

服务端特性

  • VPN 协议:该库实现了兼容 HTTP/1.1、HTTP/2 和 QUIC 的 VPN 协议。 通过模仿常规网络流量,使得检测和阻断变得不可能。

  • 灵活的流量隧道:TrustTunnel 可以隧道传输客户端与服务器之间的 TCP、UDP 和 ICMP 流量。

  • 平台兼容性:服务端兼容 Linux 和 macOS。 客户端可用于 Android、Apple、Windows 和 Linux。


客户端特性

  • 流量隧道:该库能够将客户端与端点之间的 TCP、UDP 和 ICMP 流量进行隧道传输。

  • 跨平台支持:支持 Linux、macOS 和 Windows 平台, 在不同操作系统上提供一致的体验。

  • 系统级隧道和 SOCKS5 代理:可设置成系统级隧道(使用虚拟网络接口), 也可作为 SOCKS5 代理使用。

  • 分流隧道:该库支持分流隧道,允许用户将特定域名或主机的连接排除在 VPN 端点路由之外, 或者相反,仅将特定域名或主机的连接通过端点路由(基于排除列表)。

  • 自定义 DNS 上游:用户可以指定自定义 DNS 上游, 用于通过 VPN 端点路由的 DNS 查询。


快速开始

端点设置

安装端点

可以使用以下命令运行安装脚本:

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

安装脚本将从最新的 GitHub 发布版本下载适合系统架构的预构建包,并解压到 /opt/trusttunnel。可以通过在上述命令末尾指定 -o DIR 标志来覆盖输出目录。

如果要安装特定版本(而不是最新版),请使用 -V <version>

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

[!NOTE] 预构建包适用于 linux-x86_64linux-aarch64macos-universal(Intel 和 Apple Silicon)架构。

更新端点

安装脚本始终安装最新可用版本。 因此,要更新您的安装,请再次运行安装命令:

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

这将重新运行安装程序,并替换安装目录中的二进制文件(默认为 /opt/trusttunnel, 或您通过 -o DIR 指定的目录)。

[!NOTE] 更新前请记得停止端点:

sudo systemctl stop trusttunnel

更新后重新启动端点:

sudo systemctl start trusttunnel

端点配置向导

请参考 CONFIGURATION.md 获取更详细的端点配置文档。

安装目录包含 setup_wizard 二进制文件,可帮助生成端点运行所需的配置文件:

cd /opt/trusttunnel/
./setup_wizard -h

设置向导支持交互模式,您可以运行它,它会询问端点配置所需的数据。

cd /opt/trusttunnel/
sudo ./setup_wizard

[!NOTE] 需要 sudo 来正确管理 TLS 证书。

向导将询问以下字段,其中一些字段有可以安全使用的默认值:

  • 监听地址 - 指定端点监听的地址。对于原生部署(所有接口上的 HTTPS),使用 0.0.0.0:443。 如果使用 Docker 端口映射 443:8443,则设置为 0.0.0.0:8443

  • 凭据文件路径 - 存储用户授权凭据的路径。

  • 用户名 - 用户用于授权的用户名。

  • 密码 - 用户的密码。

  • 添加更多用户? - 选择 yes 以添加更多用户,或选择 no 继续配置过程。

  • 规则文件路径 - 存储过滤规则的路径。

  • 连接过滤规则 - 您可以添加规则,让端点根据以下条件允许或拒绝用户的连接:

    • 客户端 IP 地址
    • TLS 随机前缀
    • TLS 随机掩码

    n 允许所有连接。

  • 存储库设置的文件的路径 - 存储主端点配置文件的路径。

  • 证书选择 - 选择如何获取 TLS 证书:

    • 颁发 Let's Encrypt 证书(需要公共域名)- 设置向导内置 ACME 支持,可以自动从 Let's Encrypt 获取免费的公共信任证书。您需要:
      • 一个指向您服务器 IP 地址的注册域名
      • 可从互联网访问的 80 端口(用于 HTTP-01 挑战),或
      • 能够添加 DNS TXT 记录(用于 DNS-01 挑战)
    • 生成自签名证书 - 适用于测试或仅使用 CLI 客户端的情况。注意:Flutter 客户端尚不支持自签名证书。
    • 提供现有证书的路径 - 使用您从其他 CA 或工具(如 certbot)获取的自己的证书文件。
  • 存储 TLS 主机设置的文件的路径 - 存储 TLS 主机设置文件的路径。

至此,所有必需的配置文件都已创建并保存到磁盘。

Let's Encrypt 证书生命周期

设置向导可以在初始设置时获取 Let's Encrypt 证书,但您负责确保其长期有效(续期和服务重新加载/重启)。

如果您使用 Certbot 管理证书并自动续期,请遵循 CERT_RENEWAL.md 中的指南。

运行端点

安装的包中包含 systemd 服务模板,名为 trusttunnel.service.template

此模板可用于将端点设置为 systemd 服务:

[!NOTE] 模板文件假定 TrustTunnel 端点二进制文件及其所有配置文件位于 /opt/trusttunnel 中,并使用默认文件名。如果您使用了不同的路径,请修改模板。

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

导出客户端配置

端点二进制文件可以生成两种格式的客户端配置:

深度链接格式(默认)

生成紧凑的 tt://? URI,适用于二维码和移动应用:

# <client_name> - 将包含在配置中的客户端的名称
# <address> - `ip`、`ip:port`、`domain` 或 `domain:port`,客户端将使用它连接
#           如果只指定 `ip` 或 `domain`,则使用 `listen_address` 字段中的端口
cd /opt/trusttunnel/
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address>

# 或显式指定格式:
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address> --format deeplink

这将输出一个 tt://? 深度链接 URI,可以:

您还可以提供其他选项:

  • --name <display_name>:在客户端应用中为服务器设置自定义显示名称。
  • --dns-upstream <dns_upstream>:为客户端指定 DNS 上游。可以是 IP 地址 或安全 DNS URI(例如 tls://1.1.1.1https://dns.google/dns-query)。 此标志可以多次使用以提供 DNS 上游列表。

带有自定义名称和 DNS 上游的示例:

./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address> \
    --name "我的安全 VPN" \
    --dns-upstream 1.1.1.1 --dns-upstream tls://8.8.8.8

当使用 --generate-client-random-prefix 时,端点还会将所生成值的允许规则附加到 vpn.toml 引用的 rules.toml 文件中。

注意:如果您的证书由受信任的 CA 签发(例如 Let's Encrypt),则会自动从深度链接中省略以保持紧凑。自签名证书会自动包含。

TOML 格式(用于 CLI 客户端)

生成传统的 TOML 配置文件:

cd /opt/trusttunnel/
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <public_ip> --format toml

这将输出一个适用于 CLI 客户端的 TOML 配置文件。

两种格式都包含连接端点所需的所有信息。有关设置说明,请参阅 TrustTunnel Flutter 客户端文档

恭喜!您已完成端点设置!

客户端设置

有多种客户端可用于连接端点 — 完整列表请参见客户端部分。以下说明涵盖官方 CLI 客户端 的设置。

安装客户端

Linux / macOS

可用的安装脚本:

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

安装脚本将从最新的 GitHub 发布版本下载适合系统架构的预构建包,并解压到 /opt/trusttunnel_client。可以通过在上述命令末尾指定 -o DIR 标志来覆盖输出目录。

[!NOTE] 安装脚本支持 Linux 的 x86_64、aarch64、armv7、mips 和 mipsel 架构, 以及 macOS 的 arm64 和 x86_64。

Windows

TrustTunnel 客户端发布页面 下载最新的发布归档。

将归档解压到您选择的目录,例如 C:\TrustTunnel\

路由器设置

对于路由器部署,请参考特定路由器的客户端安装指南。

更新客户端

Linux / macOS

安装脚本始终安装最新可用版本。 因此,要更新您的安装,请再次运行安装命令:

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

这将重新运行安装程序,并替换安装目录中的二进制文件(默认为 /opt/trusttunnel_client,或您通过 -o DIR 指定的目录)。

[!NOTE] 更新前请记得停止客户端(例如,通过停止正在运行的进程)。

Windows

发布页面 下载最新版本,并替换安装目录中的文件。

客户端配置向导

安装目录包含 setup_wizard 二进制文件,可帮助生成客户端运行所需的配置文件。

Linux / macOS
cd /opt/trusttunnel_client/
./setup_wizard -h

要配置客户端使用端点生成的配置,请运行以下命令:

./setup_wizard --mode non-interactive \
     --endpoint_config <endpoint_config> \
     --settings trusttunnel_client.toml
Windows
setup_wizard.exe --mode non-interactive ^
    --endpoint_config <endpoint_config> ^
    --settings trusttunnel_client.toml

在两种情况下,<endpoint_config> 都是端点生成的配置文件的路径。

trusttunnel_client.toml 将包含客户端所需的所有配置。

[!TIP] 生成的配置包含连接端点的基本设置。 要使用高级功能,请直接编辑 trusttunnel_client.toml。您可以配置:

  • VPN 模式:路由所有流量(general)或仅特定目的地(selective
  • 安全开关:VPN 断开时阻止流量
  • DNS 上游:自定义 DNS 解析器(支持 DoH、DoT、DoQ)
  • 排除项:要绕过或通过 VPN 路由的域名/IP
  • 监听器类型:TUN 设备或 SOCKS5 代理

有关所有可用选项,请参阅 TrustTunnel CLI 客户端 README

[!NOTE] 编辑配置后,请重新启动客户端以使更改生效。

运行客户端

Linux / macOS
cd /opt/trusttunnel_client/
sudo ./trusttunnel_client -c trusttunnel_client.toml

需要 sudo 来设置路由和 tun 接口。

Windows

管理员身份打开终端并运行:

trusttunnel_client.exe -c trusttunnel_client.toml

需要管理员权限来设置路由和 TUN 接口。

客户端

官方

CLI

TrustTunnel 客户端 — Linux、macOS、Windows

GUI

TrustTunnel Flutter 客户端 — iOS、Android(macOS、Windows — 即将推出)。 可在 App Store* 和 Play Store 获取。

[!NOTE] * 在某些国家/地区,iOS 应用在 App Store 中不可用。您可能需要使用其他国家/地区的 Apple ID 才能下载。了解如何更改 App Store 国家/地区

社区

[!NOTE] 社区客户端由社区独立开发和维护。 TrustTunnel 团队不提供官方支持。

GUI

Trusty - 使用 Flutter 构建的跨平台 GUI 客户端(Windows 稳定版,macOS alpha 版)。功能包括实时日志、一键 SSH 服务器部署以及分流域名组的自动发现。

TrustTunnel-GUI-Client — Windows GUI 客户端,实现为 TrustTunnel 客户端 的 Python 封装。

Surge — (商业)macOS 和 iOS 网络工具箱,支持实验性 TrustTunnel。

FireTunnel - 使用 QT 编写的跨平台客户端,基于修改后的 TrustTunnel Client

另请参阅

路线图

虽然我们的 VPN 目前支持 TCP/UDP/ICMP 流量的隧道传输,但我们计划增加对客户端之间点对点通信的支持。

请关注未来版本中的这一功能。

许可协议

本项目采用 Apache 2.0 许可。详情请参见 LICENSE

分类