TrustTunnel可以将任意网络流量(TCP/UDP/ICMP)通过加密的HTTP/2或HTTP/3连接进行隧道传输。该协议的设计目标如下:
隐蔽性:流量显示为标准的HTTPS,难以与常规网页浏览区分开来。
高性能:在单个传输会话上高效复用多个连接。
可靠性:内置会话恢复和健康检查机制。
灵活性:同时支持 HTTP/2(基于TLS)和HTTP/3(基于QUIC)传输协议。
TrustTunnel还有iOS/Android的GUI客户端,Windows和Linux目前只有CLI客户端,但是这个CLI也支持TUN模式。我部署试了一下,目前感觉分流不太行,要是官方能支持GeoIP之类的数据库就好了,现在只能用IPCIDR= =
开始部署前你需要先准备一个域名,做好解析记录,例如:giatunnel.example.com。一台Debian x64服务器(VPS)。
Debian服务器端安装:
cd /opt wget https://github.com/TrustTunnel/TrustTunnel/releases/download/v0.9.115/trusttunnel-v0.9.115-linux-x86_64.tar.gz tar -xzvf trusttunnel-v0.9.115-linux-x86_64.tar.gz mv trusttunnel-v0.9.115-linux-x86_64 trusttunnel cd trusttunnel/
直接运行这个二进制文件开始配置向导,这个向导会协助你配置服务端的内容:
./setup_wizard
1.服务端监听的地址和端口,默认:0.0.0.0:443,但是考虑到443端口可能会被Web Server等软件占用,本文配置为:0.0.0.0:8443。
2.设置用户账号和密码,这里的账号和密码用于客户端连接。TrustTunnel是支持多用户的,这可能为后续的机场服务铺路= =
3.创建一个规则配置文件(rules.toml)如果你是一个人使用,那么服务器端不需要配置这个,一路回车下一步即可。
4.创建一个核心配置文件(vpn.toml)所有与VPN相关的配置都在这个配置文件内。一路回车下一步即可!
5.协助你配置域名证书,可使用Let’s Encrypt自动申请证书,支持HTTP-01/DNS-01模式。如果服务器80端口被Web Server等软件占用,可以选择DNS-01模式。
如果选择DNS-01模式,则需要在DNS解析提供商处添加相应解析记录:
配置完成后,复制一份systemd服务配置文件:
cp trusttunnel.service.template /etc/systemd/system/trusttunnel.service
启动TrustTunnel服务并设置开机自启:
systemctl enable --now trusttunnel
检查运行状态,确保正常运行:
systemctl status --now trusttunnel
[可选]导出客户端配置文件,方便客户端配置,例如本文之前配置的用户账号是imlala,服务器IP是89.64.19.37,端口为8443,那么执行如下命令:
./trusttunnel_endpoint vpn.toml hosts.toml -c imlala -a 89.64.19.37:8443
会输出类似如下内容,这些是配置客户端连接需要的,可以复制保存下来:
# Endpoint host name, used for TLS session establishment hostname = "giatunnel.exampel.com" # Endpoint addresses. addresses = ["89.64.19.37:8443"] # Whether IPv6 traffic can be routed through the endpoint has_ipv6 = true # Username for authorization username = "imlala" # Password for authorization password = "yourvpnpassword" # Skip the endpoint certificate verification? # That is, any certificate is accepted with this one set to true. skip_verification = false upstream_protocol = "http2" upstream_fallback_protocol = "" anti_dpi = false
服务器端的配置就全部完成了,接下来配置客户端。这里我以Linux的CLI客户端为例。
下载客户端压缩包解压进入到目录:
cd /home/imlala/桌面 wget https://github.com/TrustTunnel/TrustTunnelClient/releases/download/v0.99.93/trusttunnel_client-v0.99.93-linux-x86_64.tar.gz tar -xzvf trusttunnel_client-v0.99.93-linux-x86_64.tar.gz cd trusttunnel_client-v0.99.93-linux-x86_64
执行配置向导,协助你配置客户端:
./setup_wizard
1.配置VPN的运行模式,目前支持general和selective模式。general是指加入排除列表的都走直连,其他走代理。而selective是加入排除列表的走代理,其他走直连。本文使用的是general模式。
2.配置连接到VPN服务器的IP地址/端口/账号密码,对于本文而言端口号是8443。
3.配置证书,直接回车下一步。但是请不要启用跳过证书验证,这可能会导致安全问题,如果你是自签证书的话就无所谓了。
4.配置服务端的域名,本文示例:giatunnel.example.com
5.配置客户端监听类型,支持Socks5和TUN,本文使用的是TUN。
接下来使用文本编辑器打开向导生成的客户端配置文件:
nano trusttunnel_client.toml
配置一个DNS服务器:
dns_upstreams = ["tls://1.1.1.1"]
[可选]配置分流,下载中国的IP列表,然后新建一个Python脚本,内容如下:
with open("chnroute.txt", "r") as f:
ips = [f'"{line.strip()}"' for line in f if line.strip()]
with open("config.toml", "w") as f:
f.write("exclusions = [\n ")
f.write(",\n ".join(ips))
f.write("\n]")
print("处理完成,结果已保存至 config.toml")
运行脚本,把IP转换成TrustTunnel需要的格式:
python3 ipcidr.py
把转换好的内容全选复制粘贴到trusttunnel_client.toml:
exclusions = [ "1.0.1.0/24", "1.0.2.0/23", "1.0.8.0/21", "1.0.32.0/19", "1.1.0.0/24", "1.1.2.0/23", "1.1.4.0/22", "1.1.8.0/24", "1.1.9.0/24", "1.1.10.0/23", "1.1.12.0/22", "1.1.16.0/20", "1.1.32.0/19", "1.2.0.0/23", "1.2.2.0/24", ... ]
下载中国域名列表,然后新建一个Python脚本,内容如下:
import json
def extract_domain_suffixes(input_file, output_file):
try:
# 1. 读取并解析 JSON 文件
with open(input_file, 'r', encoding='utf-8') as f:
data = json.load(f)
all_suffixes = []
# 2. 遍历 rules 提取所有的 domain_suffix
rules = data.get("rules", [])
for rule in rules:
if "domain_suffix" in rule:
all_suffixes.extend(rule["domain_suffix"])
if not all_suffixes:
print("未找到任何 domain_suffix 数据。")
return
# 3. 格式化处理
formatted_list = []
total_count = len(all_suffixes)
for i, item in enumerate(all_suffixes):
# 在最前面添加两个空格
line = f' "{item}"'
# 如果不是最后一项,则在末尾加逗号
if i < total_count - 1:
line += ","
formatted_list.append(line)
# 4. 写入新文件
with open(output_file, 'w', encoding='utf-8') as f_out:
f_out.write("\n".join(formatted_list))
print(f"提取成功!结果已保存至: {output_file}")
print(f"共提取了 {total_count} 条记录,已添加缩进。")
except FileNotFoundError:
print(f"错误:找不到文件 '{input_file}'。")
except json.JSONDecodeError:
print("错误:JSON 格式损坏。")
except Exception as e:
print(f"发生未知错误: {e}")
# 执行函数
extract_domain_suffixes('config.json', 'output.txt')
运行脚本,把域名转换成TrustTunnel需要的格式:
python3 cndomain.py
把转换好的内容全选复制粘贴到trusttunnel_client.toml:
exclusions = [ ... "zzzla.com", "zzzlsh.com", "zzznkq.com", "zzzppp.com", "zzzqqp.com", "zzzsxx.com", "zzzxwh.net", "zzzyb.com", "zzzymjg.com", "zzzyy.com", "zzzyyy.com", "zzzzaaaa.com", "zzzzzz.me" ]
启动TrustTunnel客户端:
sudo ./trusttunnel_client -c trusttunnel_client.toml
使用TUN模式请使用sudo提升权限,以允许TrustTunnel创建TUN0虚拟网卡及配置路由表。
简单说一下使用体验(分流效果)。。如果客户端使用:
upstream_protocol = "http2"
访问国外的站点很快,但是国内站点比mihomo/sing-box慢多了,分流是生效了的,不知道是不是DNS的问题。。如果客户端使用:
upstream_protocol = "http3"
则访问国外也慢的一匹,应该是奠信限制udp导致的= =,另外请不要把油管4k/8k视频当作测速工具,即便要测也请关闭浏览器的quic(血泪史):
chrome://flags/#enable-quic
荒岛



















