Hysteria2 详解:为什么它在弱网下最快,以及它的代价
如果你的线路晚高峰丢包严重、看 4K 卡成幻灯片、打游戏疯狂跳 ping,那 Hysteria2 大概率能救你。它就是冲着"烂线路也要跑满速"设计的。
但"最快"是有代价的——它靠的是一套激进到作者自己取名"Brutal(残暴)"的拥塞控制,用不好反而更不稳。这篇把原理、配置和坑都讲清楚。
30秒先看完
- 为什么快:基于 QUIC/UDP,避开"TCP 套 TCP"的双重重传;用 Brutal 拥塞控制按固定速率硬推,丢包也不降速。
- 关键前提:必须填真实带宽。填错(尤其填太高)会直接把速度拖垮,比不开还糟。
- 抗封锁:HTTP/3 网站伪装 + Salamander/Gecko 混淆 + 端口跳跃。2024 年起 GFW 已能审查 QUIC,有时必须开混淆才稳。
- 怎么用:机场配好,sing-box / mihomo / Shadowrocket 订阅导入即可。
hysteria2://链接里没有带宽参数,带宽在本地填。
一、为什么 Hysteria2 在弱网下快
核心是两件事:换传输层,换拥塞控制。
第一,避开"TCP 套 TCP"的病根。 传统代理把你的 TCP 流量再套一层 TCP 隧道,内外两层各自重传——一个丢包触发双重重传 + 指数退避,弱网上吞吐直接崩。Hysteria2 把流量转发到 QUIC(跑在 UDP 上),消除了内层 TCP 的重传,从根上解决这个问题。
第二,换一套"不怕丢包"的拥塞控制。 这才是它的灵魂。
二、Brutal 拥塞控制(核心卖点,也是核心坑)
普通拥塞控制(CUBIC、BBR)有个共同点:一丢包就觉得"网络拥堵了",主动降速。这在国内还行,但跨境国际出口的丢包往往是人为限速/劣化造成的——你降不降速,那个丢包率都在那。于是越降越慢,恶性循环。
Brutal 反其道而行:你告诉它带宽是多少,它就按这个固定速率发包,丢包也不降速;没达到目标速率时,它还会估算丢包率、"加码"补偿(丢得多就发得更多)。作者一句话点破:"国际出口的丢包率,无论你发多快都一样",所以对丢包不敏感的算法在这种链路上反而有效。
必须填真实带宽(最重要的一条)
Brutal 的前提是"你知道自己的带宽"。客户端要填 up / down(默认单位 Mbps,比如 30 Mbps / 200 Mbps)。
填错带宽 = 自废武功
官方明说:带宽信息"对 Brutal 至关重要"。如果你瞎填高值,它会按那个虚高速率猛发,结果是把链路打爆、丢包更狠;填得离谱还可能把连接拖到很慢。
经验:宁可填得比真实带宽略低,也别瞎填高。 不确定就保守点。这也是为什么很多人"开了 Hysteria2 反而更卡"——不是协议不行,是带宽没填对。
它的代价:不公平
作者很坦诚:Brutal "本质上是通过抢占其他用户的带宽来打破拥塞公平性",所以才取名"残暴"。它对同链路的其他流量不友好。作者的辩解是:使用场景特殊(反审查),又需要手动设带宽这个门槛,不太会外溢影响普通网络。
服务端有个 ignoreClientBandwidth 开关:打开后无视客户端上报的带宽、改用温和的 BBR。机场如果不想让用户乱抢带宽,可能会开它。
三、Hysteria1 和 2 不是一回事
- 协议不兼容:官方明说 "Hysteria 2 与 1.x 不兼容,必须二选一",客户端和服务端得同版本。
- v2 新增:HTTP/3 伪装(masquerade)、UDP 会话 0-RTT、新的 ACL/出站系统、流量统计 API。
- v1 已是 legacy:官方把 v1 标为"遗留版本",建议迁移到 v2。
所以现在说"Hysteria"基本都指 v2,别再新用 v1。
四、抗封锁与抗指纹
光快没用,得不被封。Hysteria2 有几层手段:
- HTTP/3 网站伪装(masquerade):服务端能像正常 Web 服务器一样响应 HTTP 请求,可以反代到一个真实网站、提供静态文件、或返回自定义内容。没通过认证的探测请求,会被当成普通 404 网站处理。
- Salamander 混淆:可选层,把每个 QUIC 包加扰成"看似随机的字节",让流量像随机 UDP 而不是 QUIC——用于 ISP 专门指纹识别 QUIC 时。
- Gecko 混淆(v2.9.2 / 2026-05 新增):对 QUIC 握手包做分片,把长握手包切成若干随机大小、随机填充的片段,再各自过一层 Salamander。
- 端口跳跃(port hopping):服务端监听一段 UDP 端口范围,客户端在其中随机跳,增加按端口封锁的难度。
QUIC 已经不是盲区了
USENIX Security 2025 的论文证实:GFW 从 2024 年 4 月 7 日起就开始对 QUIC 做 SNI 级封锁——它能在网络侧被动解密 QUIC 的首包、读出目标域名再比对黑名单,这是对 QUIC 的首次全国性定向审查。
结论很直接:裸 Hysteria2(不开混淆)在被针对的线路/域名上可能被识别。遇到不稳,第一反应就是打开 Salamander 或 Gecko 混淆,或者切回 Reality / TCP 系协议。
五、客户端支持与配置要点
支持的客户端:mihomo / Clash.Meta、sing-box(含 Salamander、端口跳跃)、Shadowrocket、NekoBox、v2rayN / v2rayNG,以及 Xray-core(约 v26.3.27 起新增完整 Hysteria2 支持)。
机场用户照常订阅导入即可。几个容易写错的点:
- 带宽字段:mihomo / Xray 接受带单位字符串(
30 Mbps);sing-box 用纯整数 Mbps、不带单位。 - 混淆:
obfs.type填salamander;留空就是不混淆。 - 端口跳跃字段各家不同:mihomo 用
ports+hop-interval;sing-box 用server_ports(范围如20000:20100)+hop_interval。
hysteria2:// 分享链接(注意两个常见误区)
格式:
hysteria2://[密码@]主机名[:端口]/?obfs=salamander&obfs-password=xxx&sni=xxx&insecure=0官方支持的查询参数只有 5 个:obfs(salamander 或 gecko)、obfs-password、sni、insecure、pinSHA256。
两个广为流传的错误写法
- 链接里没有
up/down带宽参数。 官方明说 URI "刻意只包含连接必需的核心信息,绝不应包含带宽值"。带宽是在客户端本地配置里填的,不进分享链接。 - 端口跳跃不是
mport参数。 官方写法是直接把多端口写在主机的端口位上,用逗号/连字符表达,比如example.com:443,5000-6000。mport不是官方字段,只是个别工具的非标扩展。
官方示例:
hysteria2://[email protected]:443,5000-6000/?insecure=1&obfs=salamander&obfs-password=gawrgura&sni=real.example.com项目地址 apernet/hysteria,文档 v2.hysteria.network。
六、Hysteria2 vs Tuic v5
两个都是 QUIC 系,常被拿来比:
| 维度 | Hysteria2 | Tuic v5 |
|---|---|---|
| 拥塞控制 | 默认可用 Brutal,固定速率硬推、不退避,激进 | QUIC 的 BBR,自适应、温和 |
| 混淆 | 内置 Salamander/Gecko + HTTP/3 伪装 | 依赖标准 QUIC,无内置混淆 |
| 取向 | 速度猛但"不友好"(抢带宽) | 温和、带多路复用,稳 |
| 上手 | 必须手填真实带宽,填错反伤 | BBR 自适应、免填带宽,新手友好 |
一句话:线路烂、要榨速度选 Hysteria2(记得填对带宽);想省心、要温和稳定选 Tuic。
各协议的全景对比看这篇:2026 主流翻墙协议横评;在客户端里跑通它参考:sing-box 多协议订阅使用教程。
小结
- Hysteria2 快在 QUIC 避开 TCP-over-TCP + Brutal 不怕丢包,专治弱网/限速线路。
- 带宽一定要填对——这是它能不能跑好的命门,填错反而更慢。
- QUIC 已被 GFW 审查,不稳就开 Salamander/Gecko 混淆。
- 分享链接里没有带宽参数,端口跳跃也不是
mport——别被错误教程带偏。 - 要速度选它,要温和省心选 Tuic。
免责声明
本文基于 Hysteria 官方文档、作者公开陈述与 USENIX Security 学术论文整理,部分性能数字来自第三方评测、已在文中标注。技术细节可能随版本更新变化,请以官方文档为准。文中工具仅用于技术学习与合法合规的网络访问,使用风险自负。