Hysteria2 与 TUIC 的区别:两种 QUIC 系协议

先说结论

两者都建立在 QUIC 之上,但定位不同:Hysteria2 有官方实现,规定了认证、速率声明和混淆;TUIC 仓库只保留协议规范,客户端与服务端由第三方实现。选哪个主要看你的客户端内核是否支持,以及节点来源提供了什么,而不是看谁名气大。

要回答 Hysteria2 和 TUIC 的区别,第一件事是别把“都用 QUIC”当成“差不多”。QUIC 只是它们共同站的那块地基,在地基上各自盖了不同的房子:一个房子的图纸和施工队是同一家(Hysteria2 的官方实现),另一个只发布了图纸、施工队另有其人(TUIC 的第三方实现)。这种出身差别,往往比哪个“更快”更影响你日常用起来的体验。

先看各自的档案:Hysteria2 协议、TUIC 协议。这篇不重复档案卡上的内容,只讲两者放在一起时的取舍。

Hysteria2 和 TUIC 的区别,先从出身说起:官方实现与纯规范

  • Hysteria2:官方站点同时提供协议规范、使用文档和实现仓库,认证、速率、混淆都有明确定义。
  • TUIC:协议仓库的自述写明,仓库本身不带官方实现,现有的服务端与客户端实现来自第三方。仓库作者曾在博客里说明项目迁入新的组织、仓库只保留规范与文档。

这对使用者意味着什么?Hysteria2 的参数在不同客户端里大体能对上官方文档,而 TUIC 的参数要以你所用内核的文档为准。遇到“同样的节点在这个客户端能连、换一个就不行”,TUIC 更需要往实现差异上查。

Hysteria2 和 TUIC 的区别:认证与 UDP 处理

对照项 Hysteria2 TUIC
认证位置 用 HTTP/3 请求完成,通过后切换为代理连接 认证命令携带 UUID 与令牌,令牌由 TLS 密钥材料导出
速率控制 客户端认证时声明最大接收速率,服务端据此发送;声明为 0 时改用常规拥塞算法 沿用 QUIC 的用户态拥塞控制,可选 cubic、new_reno、bbr 等(以 sing-box 文档为准)
UDP 处理 用 QUIC 不可靠数据报,支持分片 通过客户端生成的关联 ID 同步会话,支持 0-RTT 的 Full Cone 转发;有 native 与 quic 两种中继模式
混淆 可选 Salamander,较新文档另有 Gecko 规范里没有同类混淆条目(资料待核实各实现的扩展)
伪装目标 官方称对无凭据的第三方表现为标准 HTTP/3 网站 规范未提及同类声明

读这张表要抓两点:Hysteria2 把“速率”做成协议的一部分;TUIC 把“UDP 会话”做成协议的重点。 如果你关心的是游戏、语音这类依赖 UDP 的场景,TUIC 的 Full Cone 能力是它的设计目标之一,但这只是设计,不等于你的体验。

官方点名的限制

Hysteria2

  • 与 Hysteria 1.x 互不兼容,两端必须是同一条版本线;
  • 官方答复不能套 CDN;
  • 第三方实现不受官方控制,可能缺少最新特性。

TUIC

  • 不同协议版本之间官方不保证兼容;
  • 协议仓库不含官方实现,实现质量因人而异;
  • Mihomo 文档提示:客户端开启 QUIC 的 0-RTT 握手可缩短建连时间,但可能增加重放攻击的风险。

最后这条值得多看一眼。开关里“更快建连”的字眼很诱人,但文档明确写了风险,所以除非节点来源要求,否则不要因为想“更快”就自己打开。

谁家的客户端认哪个:先查支持情况

内核 / 客户端 Hysteria2 TUIC
Mihomo 支持 支持
sing-box 支持 支持
Xray-core 有 hysteria 出站 出站列表里没有 TUIC
部分 iOS 客户端 以各客户端文档为准 协议 README 列出 Shadowrocket、Stash、Surge 支持,细节以各自文档为准

如果你的客户端基于 Xray,那么 TUIC 节点大概率用不了;基于 Mihomo 或 sing-box 的客户端则两种都能尝试。内核之间的关系请看 sing-box 与 Mihomo 内核对比。客户端怎么对上协议,最省事的是查 协议 × 客户端支持矩阵,格子里附了官方出处。

怎么在自己手里确认选哪一个

这一步是整篇文章最重要的部分,因为任何文章都替代不了你的网络。

  1. 向节点来源确认:给你的是哪一类节点,分别需要哪些字段。拿不到说明就别瞎猜。
  2. 在客户端里导入后,先看节点类型是否被正确识别;识别成未知类型,多半是内核不支持。
  3. 把两种节点各连一次,使用同一个客户端、同一种代理模式,别混着用系统代理和 TUN。
  4. 挑你最常做的三件事(网页、视频、下载)各跑几轮,记录“能不能连上、有没有断开”。
  5. 如果其中一种连不上,先排除两端协议版本和参数写法,再考虑网络是否拦截 UDP。UDP 受限的判断办法见 Hysteria2 与 VLESS 的对比 里的做法。

提醒:QUIC 系协议对 UDP 通路依赖更强。碰到“换了网络才通”,不要急着怀疑节点失效。

什么时候选哪个

  • 你的客户端同时支持两种,节点来源也都给了 → 选官方实现清晰、参数有据可查的 Hysteria2,作为默认;TUIC 作备选。
  • 你更在意 UDP 会话的行为,且你的内核明确支持 TUIC → 可以试 TUIC,但要接受实现差异带来的参数核对工作。
  • 你的客户端是 Xray 系 → 只能走它支持的协议,TUIC 需要换内核,先看 Xray-core 的档案。
  • 你只是想选一个就好 → 回到 代理协议怎么选,按场景而不是名字选。

下一步该做什么

先在 协议 × 客户端支持矩阵 里确认你的客户端认哪些协议,再去 下载导航 找官方入口;如果你想看参数怎么填,读 Hysteria2 客户端配置。节点来源的比较可以从 机场目录 开始。

这篇没有覆盖的

  • 两个协议在实际网络中的速度、稳定性梯子岛都没有测过,本文只对照官方资料写明的设计差异。
  • TUIC 各第三方实现之间的细节差别没有逐一核对,字段含义请以你所用内核的文档为准。
  • 本文只站在客户端角度,不涉及服务端搭建和参数调优。

本文引用的官方来源

  1. Hysteria 2 官方文档(v2.hysteria.network)
  2. Hysteria 2 协议规范(v2.hysteria.network)
  3. TUIC 协议规范(SPEC.md)(github.com)
  4. TUIC(github.com)
  5. sing-box 文档:TUIC(sing-box.sagernet.org)
  6. Mihomo 文档:TUIC(wiki.metacubex.one)

以上链接均为官方页面,梯子岛在 2026-10-09 核对过;个别网站会拦截自动化访问,用浏览器直接打开即可。平台规则可能随时调整,以官方页面当前内容为准。

Hysteria2 和 TUIC 的区别常见问题

Hysteria2 和 TUIC 都基于 QUIC,是不是差不多?

底层传输相同,但上层设计不一样。Hysteria2 把认证放在 HTTP/3 请求里,并让客户端声明接收速率;TUIC 用 UUID 加由 TLS 密钥材料导出的令牌认证,并把 UDP 会话通过关联 ID 管理。设计差异意味着配置项也不通用,不能把节点参数直接互相照抄。

TUIC 的 native 和 quic 两种 UDP 模式怎么选?

按 sing-box 文档,native 模式沿用原生 UDP 的特性,quic 模式通过 QUIC 流做无损转发,有额外开销。游戏、语音这类容忍丢包的场景和需要完整送达的场景取舍不同。具体选哪个,以节点提供方给出的参数为准,自己无法判断时先沿用默认值。

我的客户端里没有 TUIC 选项,怎么办?

这通常是因为客户端内核不支持。例如 Xray 的出站列表里没有 TUIC。你可以换用基于 sing-box 或 Mihomo 的客户端,或者改用你的客户端已支持的协议。到协议支持矩阵页查一下,比盲目换软件更快。

TUIC 的“最新协议版本”需要关注吗?

需要在一个点上留意:官方说明不同协议版本之间不保证兼容。如果客户端与节点来源分别实现了不同版本,可能出现连不上。遇到这类问题,先看节点来源的说明,再确认你的内核文档写的是哪一套参数。

Hysteria2 的 Salamander 混淆是必选的吗?

不是,它是可选项。官方文档把它当作对 QUIC 包做异或处理的额外手段,开不开由节点提供方决定。客户端这边的原则是:节点写明要求时照填,没有写就不要自行打开,两端不一致会直接连不上。

这两种协议哪个更适合路由器?

取决于路由器上插件所带的内核。资料里 Mihomo 与 sing-box 都列了两种协议,具体插件是否暴露这些选项,需要看插件文档。梯子岛没有核对每个插件,所以这里写资料待核实,建议先看对应插件页。

接着读

文中出现的术语

接下来去哪儿?

找官方入口去网址导航,想核对仓库和版本看GitHub 项目导航;需要现成的机场,机场目录收了 28 家的价格与线路资料,性价比机场、便宜机场、VPN 机场分别有专项页。