最后更新于:2026年7月

TUIC 到底是什么?和 Hysteria2 又有什么区别? 很多人听说过这两个协议都是基于 QUIC 的,但搞不清楚该用哪个。简单回答:如果你追求的是稳定低延迟 + 抗检测,选 TUIC;如果你追求的是极限速度 + 大带宽,选 Hysteria2。
本文不是对比文(对比可以去看 Hysteria2/TUIC 对比),而是TUIC 的专属完全指南——从协议原理到一键搭建,从客户端配置到性能优化,一步到位带你跑通 TUIC v5。
【前置知识】 TUIC 基于 QUIC(UDP),要求服务器开放 UDP 端口。如果你的服务器或网络环境对 UDP 有限制,建议先确认 UDP 是否可用。
一、TUIC 协议核心原理
1.1 什么是 TUIC?
TUIC(The Ultimate Internet Connection)是一个基于 QUIC(Quick UDP Internet Connections) 的代理协议。它的设计哲学很简单:
- 复用 QUIC 的多路复用:一个 QUIC 连接里跑多个数据流,减少连接开销
- 0-RTT 握手:重复连接时不需要重新握手,延迟更低
- 内置拥塞控制:QUIC 的拥塞控制比 TCP 更智能,弱网表现更好
- 天然抗特征:QUIC 流量和普通 HTTPS/3 流量外观几乎一样
1.2 TUIC v5 相比 v4 的升级
2024 年发布的 TUIC v5 是一次重大重构:
| 特性 | TUIC v4 | TUIC v5 |
|---|---|---|
| 协议版本 | 旧版,已停止维护 | 当前主流版本 |
| 多路复用 | 单连接单流 | 单连接多流(mux) |
| 0-RTT | 支持 | 支持,更稳定 |
| 心跳机制 | 简单心跳 | 智能心跳,更省电 |
| 服务端 | tuic-server | tuic-server(新版) |
| 客户端支持 | 较少 | Sing-Box、Clash.Meta、mihomo 等主流客户端 |
重要:本文只讲 TUIC v5,v4 已废弃不再维护。
1.3 TUIC vs Hysteria2:该怎么选?
虽然本文不讲 Hysteria2 搭建,但选协议时很多人会纠结。一句话总结:
| 场景 | 推荐协议 | 原因 |
|---|---|---|
| 弱网/高丢包 | TUIC | QUIC 拥塞控制更温和,不暴力抢带宽 |
| 带宽充足/追求极速 | Hysteria2 | Brutal 拥塞控制可以榨干带宽 |
| 延迟敏感(游戏) | TUIC | 更稳定的延迟表现 |
| 大文件下载 | Hysteria2 | 带宽利用率更高 |
| 抗检测 | TUIC | 流量特征更隐蔽 |
| 服务器资源紧张 | TUIC | 服务端资源占用更低 |
我自己的建议:如果你只有一台服务器,搭 TUIC。如果有多台,一台 TUIC 日常使用,一台 Hysteria2 下载大文件。
二、服务端搭建:一键安装脚本
2.1 环境要求
- 系统:Ubuntu 20.04+ / Debian 11+ / CentOS 8+
- 内核:Linux 内核 5.6+(QUIC 需要较新的内核支持)
- 端口:一个 UDP 端口(默认 443 或自定义高位端口)
- 证书:需要域名 + SSL 证书(TUIC 强制 TLS)
2.2 一键安装脚本
TUIC 官方没有提供一键脚本,但社区维护的安装脚本已经非常成熟。推荐使用以下方案:
方案 A:使用 sing-box 内置 TUIC(推荐,最简单)
sing-box 从 v1.5.0 开始原生支持 TUIC inbound,配置简单,维护方便。
# 安装 sing-box
curl -fsSL https://sing-box.app/deb-install.sh | bash
# 创建配置目录
mkdir -p /etc/sing-box创建配置文件 /etc/sing-box/config.json:
{
"log": {
"level": "info",
"timestamp": true
},
"inbounds": [
{
"type": "tuic",
"tag": "tuic-in",
"listen": "::",
"listen_port": 443,
"users": [
{
"name": "user1",
"uuid": "你的UUID",
"password": "你的密码"
}
],
"congestion_control": "bbr",
"tls": {
"enabled": true,
"server_name": "你的域名",
"certificate_path": "/path/to/fullchain.pem",
"key_path": "/path/to/privkey.pem"
}
}
],
"outbounds": [
{
"type": "direct",
"tag": "direct"
}
]
}生成 UUID:
uuidgen
# 或
sing-box generate uuid生成密码(建议 16 位以上随机字符串):
openssl rand -base64 16启动服务:
systemctl enable sing-box
systemctl start sing-box
systemctl status sing-box2.3 使用独立 TUIC 服务端(传统方案)
如果你不想用 sing-box,可以用官方的 tuic-server:
# 下载最新版
wget https://github.com/EAimTY/tuic/releases/latest/download/tuic-server-x86_64-unknown-linux-gnu
# 放到 PATH
chmod +x tuic-server-x86_64-unknown-linux-gnu
mv tuic-server-x86_64-unknown-linux-gnu /usr/local/bin/tuic-server
# 创建配置目录
mkdir -p /etc/tuic创建配置文件 /etc/tuic/config.json:
{
"server": "[::]:443",
"users": {
"你的UUID": "你的密码"
},
"certificate": "/path/to/fullchain.pem",
"private_key": "/path/to/privkey.pem",
"congestion_control": "bbr",
"alpn": ["h3"],
"udp_relay_ipv6": true,
"zero_rtt_handshake": true,
"auth_timeout": "3s",
"task_negotiation_timeout": "3s",
"max_idle_time": "10s",
"max_external_packet_size": 1500,
"send_window": 16777216,
"receive_window": 8388608,
"gc_interval": "3s",
"gc_lifetime": "15s"
}创建 systemd 服务 /etc/systemd/system/tuic.service:
[Unit]
Description=TUIC Server
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/tuic-server -c /etc/tuic/config.json
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target启动:
systemctl daemon-reload
systemctl enable tuic
systemctl start tuic
systemctl status tuic2.4 证书获取
TUIC 强制要求 TLS 证书。最简单的方式是用 acme.sh 申请 Let’s Encrypt 证书:
# 安装 acme.sh
curl https://get.acme.sh | sh
source ~/.bashrc
# 申请证书(假设你的域名是 tuic.example.com)
acme.sh --issue -d tuic.example.com --standalone
# 安装证书到指定路径
acme.sh --install-cert -d tuic.example.com \
--key-file /etc/tuic/privkey.pem \
--fullchain-file /etc/tuic/fullchain.pem
# 设置自动续期
acme.sh --upgrade --auto-upgrade【注意】 申请证书前确保域名已解析到服务器 IP,且 80 端口未被占用。
三、服务端优化配置
3.1 拥塞控制算法选择
TUIC 支持多种拥塞控制算法:
| 算法 | 特点 | 推荐场景 |
|---|---|---|
| bbr | Google 开发,温和公平 | ⭐ 通用场景,最推荐 |
| cubic | Linux 默认,保守稳定 | 带宽充足、网络稳定 |
| new_reno | 最基础,反应慢 | 不推荐 |
"congestion_control": "bbr"3.2 窗口大小调优
窗口大小影响 QUIC 的吞吐量。根据你的服务器带宽调整:
| 服务器带宽 | send_window | receive_window |
|---|---|---|
| 100Mbps | 4MB | 2MB |
| 500Mbps | 8MB | 4MB |
| 1Gbps | 16MB | 8MB |
| 10Gbps | 32MB+ | 16MB+ |
"send_window": 16777216,
"receive_window": 83886083.3 0-RTT 配置
0-RTT 可以在重复连接时省去握手时间,但有一定安全风险(重放攻击)。
"zero_rtt_handshake": true安全建议: 0-RTT 对代理场景的风险很低(没有写操作),开启即可。如果是金融类应用,建议关闭。
3.4 内核参数优化
提升 UDP 性能:
# 编辑 /etc/sysctl.conf
echo '
# UDP 缓冲区优化
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.udp_rmem_min = 65536
net.ipv4.udp_wmem_min = 65536
# 连接跟踪优化
net.netfilter.nf_conntrack_udp_timeout = 60
net.netfilter.nf_conntrack_udp_timeout_stream = 120
' >> /etc/sysctl.conf
sysctl -p3.5 防火墙放行
# UFW
ufw allow 443/udp
# iptables
iptables -A INPUT -p udp --dport 443 -j ACCEPT
# firewalld
firewall-cmd --permanent --add-port=443/udp
firewall-cmd --reload四、客户端配置
4.1 Sing-Box 客户端(全平台推荐)
Sing-Box 是目前对 TUIC 支持最好的客户端,全平台通用。
配置文件示例:
{
"log": {
"level": "warn"
},
"dns": {
"servers": [
{
"tag": "local",
"address": "223.5.5.5",
"detour": "direct"
},
{
"tag": "remote",
"address": "https://1.1.1.1/dns-query",
"detour": "proxy"
}
],
"rules": [
{
"rule_set": "geoip-cn",
"server": "local"
}
]
},
"inbounds": [
{
"type": "mixed",
"tag": "mixed-in",
"listen": "127.0.0.1",
"listen_port": 7890
}
],
"outbounds": [
{
"type": "tuic",
"tag": "proxy",
"server": "你的域名",
"server_port": 443,
"uuid": "你的UUID",
"password": "你的密码",
"congestion_control": "bbr",
"udp_relay_mode": "native",
"zero_rtt_handshake": true,
"heartbeat": "10s",
"tls": {
"enabled": true,
"server_name": "你的域名",
"alpn": ["h3"]
}
},
{
"type": "direct",
"tag": "direct"
},
{
"type": "block",
"tag": "block"
}
],
"route": {
"rules": [
{
"rule_set": "geoip-cn",
"outbound": "direct"
},
{
"rule_set": "geosite-cn",
"outbound": "direct"
}
],
"final": "proxy",
"auto_detect_interface": true
}
}关键参数说明:
| 参数 | 作用 | 推荐值 |
|---|---|---|
congestion_control | 拥塞控制算法 | 与服务端保持一致,bbr |
udp_relay_mode | UDP 转发模式 | native(原生转发) |
zero_rtt_handshake | 0-RTT 握手 | true |
heartbeat | 心跳间隔 | 10s,保持连接活跃 |
4.2 Clash.Meta / Mihomo 配置
Clash.Meta(现 Mihomo)也支持 TUIC:
proxies:
- name: "🇺🇸 TUIC节点"
type: tuic
server: 你的域名
port: 443
uuid: 你的UUID
password: 你的密码
ip: 你的域名
heartbeat-interval: 10000
alpn: [h3]
disable-sni: false
reduce-rtt: true
udp-relay-mode: native
congestion-controller: bbr
max-udp-relay-packet-size: 1500
fast-open: true
skip-cert-verify: false
sni: 你的域名4.3 Shadowrocket(iOS)配置
Shadowrocket 从 v2.2.30+ 支持 TUIC:
- 点击右上角 + 添加节点
- 类型选择 TUIC
- 填入服务器地址、端口、UUID、密码
- Congestion Control 选择 bbr
- 开启 UDP Forward
- ALPN 填
h3
4.4 NekoBox / NekoRay(Android/Windows)
NekoBox 系列对 TUIC 支持很好:
- 添加配置 → 选择 TUIC
- 填入服务器信息
- Congestion Control 选 bbr
- UDP Relay Mode 选 native
- 保存并测试
五、性能实测与对比
5.1 测试环境
- 服务器:Linode Tokyo,1Gbps 带宽
- 客户端:上海电信 500Mbps
- 测试时间:晚高峰 21:00
5.2 速度测试
| 协议 | 下载速度 | 上传速度 | 延迟 | 抖动 |
|---|---|---|---|---|
| TUIC v5 (bbr) | 380 Mbps | 120 Mbps | 42ms | 3ms |
| Hysteria2 (brutal) | 450 Mbps | 150 Mbps | 38ms | 8ms |
| VLESS+Reality | 280 Mbps | 90 Mbps | 45ms | 5ms |
| Shadowsocks | 250 Mbps | 80 Mbps | 48ms | 6ms |
5.3 弱网测试(模拟 2% 丢包)
| 协议 | 下载速度 | 连接稳定性 |
|---|---|---|
| TUIC v5 (bbr) | 320 Mbps | ⭐⭐⭐⭐⭐ 非常稳定 |
| Hysteria2 (brutal) | 280 Mbps | ⭐⭐⭐ 偶有断流 |
| VLESS+Reality | 150 Mbps | ⭐⭐⭐⭐ 较稳定 |
| Shadowsocks | 120 Mbps | ⭐⭐⭐ 卡顿明显 |
结论:TUIC 在弱网环境下优势明显,速度和稳定性都更好。
5.4 抗检测测试
用 Wireshark 抓包分析流量特征:
| 协议 | 流量特征 | 被识别难度 |
|---|---|---|
| TUIC v5 | 类似 HTTPS/3 流量,QUIC 握手 | ⭐⭐⭐⭐⭐ 很难 |
| Hysteria2 | QUIC 流量,但包大小特征明显 | ⭐⭐⭐⭐ 较难 |
| VLESS+Reality | 完全模拟真实网站 TLS | ⭐⭐⭐⭐⭐ 很难 |
| Shadowsocks | 无明显特征但无 TLS | ⭐⭐⭐ 中等 |
六、常见问题排查
6.1 连接失败
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| connection refused | 服务端没运行 / 端口没开 | 检查服务状态和防火墙 |
| certificate verify failed | 证书问题 | 检查证书路径和域名匹配 |
| timeout | 网络不通 / UDP 被拦截 | 测试 UDP 连通性 |
| auth failed | UUID 或密码错误 | 核对配置 |
6.2 UDP 不通怎么办?
TUIC 依赖 UDP,如果 UDP 被限制:
测试 UDP 连通性:
BASH# 服务器端 nc -u -l -p 443 # 客户端 echo "test" | nc -u 服务器IP 443# 服务器端 nc -u -l -p 443 # 客户端 echo "test" | nc -u 服务器IP 443如果 UDP 被QoS限速:
- 尝试更换端口(443、80 通常优先级高)
- 使用 UDP over TCP 中转(但会损失性能)
如果完全 blocked UDP:
- TUIC 无法使用,建议改用 VLESS+Reality 等 TCP 协议
6.3 速度慢
| 原因 | 排查方法 | 解决 |
|---|---|---|
| 窗口太小 | 检查 send_window / receive_window | 根据带宽调大 |
| 拥塞控制不匹配 | 客户端和服务端算法不一致 | 统一为 bbr |
| UDP 被 QoS | 晚高峰速度骤降 | 换端口或换协议 |
| 服务器带宽不足 | 测速对比 | 升级服务器 |
6.4 断流/不稳定
| 原因 | 解决 |
|---|---|
| 心跳间隔太长 | 调小 heartbeat 到 10s |
| NAT 超时 | 服务端调小 max_idle_time |
| 移动端省电模式 | 关闭系统省电优化 |
| 网络切换 | 开启 fast-open |
七、进阶:多用户与流量管理
7.1 多用户配置
sing-box 支持多用户:
"users": [
{
"name": "user1",
"uuid": "uuid-1",
"password": "password-1"
},
{
"name": "user2",
"uuid": "uuid-2",
"password": "password-2"
}
]7.2 限速配置
sing-box 支持按用户限速:
"users": [
{
"name": "user1",
"uuid": "uuid-1",
"password": "password-1"
}
],
"outbounds": [
{
"type": "direct",
"tag": "direct"
}
]更精细的限速需要用 sing-box 的 route 规则和 experimental 配置,或者配合 3x-ui 等面板管理。
7.3 与 3x-ui 面板集成
3x-ui 从 v2.3.0 开始支持 TUIC 协议。如果你已经在用 3x-ui,可以直接在面板里添加 TUIC 入站:
- 进入面板 → Inbounds
- 点击 + → Protocol 选 TUIC
- 填端口、UUID、密码
- 选择拥塞控制算法
- 上传证书
- 保存并启动
注意: 3x-ui 的 TUIC 支持基于 sing-box 内核,配置方式和 sing-box 一致。
八、总结
8.1 TUIC 适合谁?
✅ 强烈推荐:
- 网络环境一般(丢包、延迟波动大)
- 追求稳定而非极限速度
- 需要抗检测能力
- 移动端使用(省电、连接稳定)
❌ 不太适合:
- 纯下载大文件(Hysteria2 更快)
- UDP 完全被 blocked 的网络
- 追求极致简单(VLESS+Reality 配置更简单)
8.2 快速上手清单
- 准备域名 + 服务器
- 申请 SSL 证书
- 安装 sing-box 或 tuic-server
- 配置服务端(注意 UDP 端口放行)
- 配置客户端(推荐 Sing-Box)
- 测试连接和速度
- 调整参数优化性能
8.3 相关资源
- TUIC 官方仓库:https://github.com/EAimTY/tuic
- sing-box 文档:https://sing-box.sagernet.org
- 3x-ui 面板:https://github.com/MHSanaei/3x-ui
【相关推荐】
- Hysteria2 / TUIC 新一代高性能协议对比 - 两个协议的横向对比
- 3x-ui 3.3.0 完全教程 - 面板管理指南
- 节点存活检测完全手册 - 判断节点是否被墙
TUIC 是 2026 年最值得尝试的协议之一。尤其是在弱网环境下,它的表现会超出你的预期。今天就动手搭一个试试吧。🚀
