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 内核对比。客户端怎么对上协议,最省事的是查 协议 × 客户端支持矩阵,格子里附了官方出处。
怎么在自己手里确认选哪一个
这一步是整篇文章最重要的部分,因为任何文章都替代不了你的网络。
- 向节点来源确认:给你的是哪一类节点,分别需要哪些字段。拿不到说明就别瞎猜。
- 在客户端里导入后,先看节点类型是否被正确识别;识别成未知类型,多半是内核不支持。
- 把两种节点各连一次,使用同一个客户端、同一种代理模式,别混着用系统代理和 TUN。
- 挑你最常做的三件事(网页、视频、下载)各跑几轮,记录“能不能连上、有没有断开”。
- 如果其中一种连不上,先排除两端协议版本和参数写法,再考虑网络是否拦截 UDP。UDP 受限的判断办法见 Hysteria2 与 VLESS 的对比 里的做法。
提醒:QUIC 系协议对 UDP 通路依赖更强。碰到“换了网络才通”,不要急着怀疑节点失效。
什么时候选哪个
- 你的客户端同时支持两种,节点来源也都给了 → 选官方实现清晰、参数有据可查的 Hysteria2,作为默认;TUIC 作备选。
- 你更在意 UDP 会话的行为,且你的内核明确支持 TUIC → 可以试 TUIC,但要接受实现差异带来的参数核对工作。
- 你的客户端是 Xray 系 → 只能走它支持的协议,TUIC 需要换内核,先看 Xray-core 的档案。
- 你只是想选一个就好 → 回到 代理协议怎么选,按场景而不是名字选。
下一步该做什么
先在 协议 × 客户端支持矩阵 里确认你的客户端认哪些协议,再去 下载导航 找官方入口;如果你想看参数怎么填,读 Hysteria2 客户端配置。节点来源的比较可以从 机场目录 开始。
这篇没有覆盖的
- 两个协议在实际网络中的速度、稳定性梯子岛都没有测过,本文只对照官方资料写明的设计差异。
- TUIC 各第三方实现之间的细节差别没有逐一核对,字段含义请以你所用内核的文档为准。
- 本文只站在客户端角度,不涉及服务端搭建和参数调优。
本文引用的官方来源
- Hysteria 2 官方文档(v2.hysteria.network)
- Hysteria 2 协议规范(v2.hysteria.network)
- TUIC 协议规范(SPEC.md)(github.com)
- TUIC(github.com)
- sing-box 文档:TUIC(sing-box.sagernet.org)
- 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 都列了两种协议,具体插件是否暴露这些选项,需要看插件文档。梯子岛没有核对每个插件,所以这里写资料待核实,建议先看对应插件页。
接着读
- 协议 · Hysteria2 协议是什么?基于 QUIC 的节点怎么用
- 协议 · TUIC 协议是什么?QUIC 系代理协议的特点
- 术语 · QUIC是什么意思
- 协议 · 代理协议怎么选?按场景与客户端倒推,不按名气选
- 对比 · Hysteria2 与 VLESS 哪个好?UDP 协议与 TCP 协议的取舍
- 术语 · sing-box 内核是什么意思