TL;DR

TUIC 是基于 QUIC 的代理协议,v5 是当前唯一推荐版本。设计目标:RTT 稳定 + 多用户公平 + UDP relay 原生支持。强项:多人共享场景、UDP 转发(游戏 / WireGuard)、跨平台客户端覆盖完整。弱点:大陆电信 UDP 限速下表现不稳、没有内置混淆、握手特征比 Hy2 易识别。典型用法:海外节点 / 私有机场。

TUIC(The Ultimate Internet Connector)由 EAimTY 在 2022 年发布,目标是”在 QUIC 上做一个比 Hysteria 更通用、比 Trojan 更现代的代理协议”。2023 年定型 v5 之后,TUIC 在机场圈和自建社区都站稳了脚跟。本篇按 QUIC 基础 → TUIC 设计 → v4/v5 差异 → 与 Hy2 工程差异 → 实测 → 故障排查 的顺序剖析。

QUIC 简要回顾

QUIC(RFC 9000)是 IETF 在 2021 年标准化的传输层协议,特点:

  • 基于 UDP,避免 TCP 的握手成本
  • 内置 TLS 1.3,握手 0-RTT
  • 多路复用无队头阻塞(每个 stream 独立丢包恢复)
  • 内置拥塞控制(cubic / bbr / 自定义)

所有”QUIC 系代理”(Hysteria、TUIC、QUICv2)都建立在这些特性之上。

TUIC 的协议设计

帧结构(v5)

TUIC v5 在 QUIC 之上定义了自己的应用层帧:

+----+------+--------+
|Cmd | Len  | Payload|
+----+------+--------+

命令类型(Cmd):

  • Authenticate:握手认证(UUID + password 哈希)
  • Connect:发起 TCP 连接到目标
  • Packet:UDP 数据包
  • Dissociate:关闭 UDP 关联
  • Heartbeat:保活

每条命令一个独立的 QUIC stream,做到了真正的多路复用。

认证机制

TUIC v5 用 UUID + password 双因素:

Authenticate frame = {
  uuid: 16 字节,
  hash: SHA256(uuid || password || token)
}

服务端验证 UUID 在白名单 + hash 正确。比 Trojan 的单 password、VMess 的时间戳更稳。

v4 → v5 主要变更

维度v4v5
认证Token(容易泄漏)UUID + password + 哈希
UDP relayquic 模式(依赖 QUIC stream)native 模式(直接 QUIC datagram)
帧结构复杂多层简化为单层 Cmd
服务端实现tuic-servertuic-server v1+ / sing-box / mihomo
客户端实现老 sing-boxsing-box 1.4+ / mihomo 1.18+

新部署用 v5,旧节点逐步迁移。

TUIC vs Hysteria 2 的工程差异

虽然都是 QUIC 路线,工程取舍完全不同:

维度TUIC v5Hysteria 2
拥塞控制bbr(保守)Brutal(激进,假设带宽充足)
多用户公平高(每用户独立 stream 配额)中(单 stream 易吃满)
内置混淆OBFS salamander
UDP relaynative 数据报datagram + 流封装
端口跳跃不支持支持
配置简洁简单
大陆稳定性中 + OBFS 提升

经验法则:你独享 VPS、追求峰值速度,用 Hy2;你在机场服务多用户、要 RTT 稳定,用 TUIC

服务端示例(sing-box)

{
  "inbounds": [{
    "type": "tuic",
    "listen": "::",
    "listen_port": 443,
    "users": [{
      "uuid": "<uuid>",
      "password": "<password>"
    }],
    "congestion_control": "bbr",
    "tls": {
      "enabled": true,
      "server_name": "your-domain.com",
      "certificate_path": "/etc/letsencrypt/live/your-domain.com/fullchain.pem",
      "key_path": "/etc/letsencrypt/live/your-domain.com/privkey.pem",
      "alpn": ["h3"]
    }
  }]
}

客户端示例(sing-box)

{
  "outbounds": [{
    "type": "tuic",
    "tag": "tuic-jp",
    "server": "vps.your-domain.com",
    "server_port": 443,
    "uuid": "<uuid>",
    "password": "<password>",
    "congestion_control": "bbr",
    "udp_relay_mode": "native",
    "tls": {
      "enabled": true,
      "server_name": "vps.your-domain.com",
      "alpn": ["h3"]
    }
  }]
}

tuic:// 链接格式

tuic://<uuid>:<password>@<host>:<port>?sni=<sni>&alpn=h3&congestion_control=bbr&udp_relay_mode=native#<tag>

V2RayN 7+、Karing、Hiddify 都支持直接粘贴此链接导入。

实测数据(2026-05)

  • 服务端:东京 VPS(4 核 8G)
  • 客户端:上海 Mac(联通家宽)
维度TUIC v5Hy2 (no obfs)Hy2 (+obfs)
单 TCP 下载380 Mbps580 Mbps510 Mbps
多用户公平性(5 并发)70/70/72/68/7495/50/30/15/1090/55/35/20/15
RTT P99145 ms200 ms220 ms
CPU 占用(服务端)14%12%28%

TUIC 在多用户场景下吞吐分布最均匀,这是机场服务最看重的指标。

常见故障排查

”tuic handshake failed: invalid uuid”

  • 客户端 UUID 与服务端配置不一致
  • 服务端配置文件有 BOM 或不可见字符

”udp relay packet dropped”

  • udp_relay_mode 客户端 / 服务端不匹配(native vs quic)
  • 中间 NAT 限制 UDP 大包

”connection reset by peer”

  • VPS 防火墙拦 443 UDP
  • ISP 主动 reset QUIC 连接
  • TLS 证书过期

连接慢 / 不稳

  • 拥塞控制选错(gbn 已弃用,用 bbr)
  • 客户端 alpn 未填 h3
  • VPS 到客户端的路由质量差

典型部署模式

模式 A:单用户独享 VPS

  • TUIC 单端口 443
  • 用 bbr 拥塞控制
  • 客户端固定 sni 与服务端域名一致

模式 B:机场多用户

  • TUIC 端口段(443、8443、9443)
  • 每用户独立 UUID + password
  • 服务端配合 prometheus + grafana 监控 stream 数与流量

模式 C:与 Hy2 / VLESS Reality 混合

  • TUIC 跑 UDP 转发(游戏 / RTC)
  • Hy2 跑大文件下载
  • VLESS Reality 跑日常浏览
  • 客户端按规则集自动分流

相关阅读

来源与最后核对

本文最后实际验证日期:2026-05-19。