Hysteria2 协议是什么:基于 QUIC 的传输为什么快、适合哪些网络环境

从 QUIC 与拥塞控制讲 Hysteria2 的速度来源,说明高丢包、长距离链路下的表现差异,以及 UDP 受限网络里需要注意的地方。

本文速览

Hysteria2 是基于 QUIC 的代理协议,值得在 UDP 可用、往返时延较长或存在随机丢包的链路上测试,但不保证比其他传输方式更快。本文面向使用 Shadowrocket 的 iPhone / iPad 用户,以用户已有自己的服务商与配置为前提,说明传输原理、参数核对、分流检查与对照测试方法;其他平台可参考原理,具体界面以实际客户端为准。

1. Hysteria2、QUIC 与 UDP 的关系

Shadowrocket(小火箭)中的 Hysteria2 是一种连接协议选项,不是加速开关,也不是线路套餐。建立连接需要服务端实现对应协议,并提供正确的地址、端口、认证信息与证书配置。不能把一个已有的其他协议连接仅通过更改 Type 转成 Hysteria2。

从传输层次看,Hysteria2 使用 QUIC,QUIC 再通过 UDP 传输。UDP 本身不负责按序交付和丢包重传;QUIC 在此基础上实现加密、确认、丢失检测、可靠流与拥塞控制。因此,“底层用 UDP”不等于网页内容丢失后不会补传,也不等于应用的所有请求都会变成不可靠传输。

UDP
QUIC 的底层传输,需要网络允许对应 UDP 端口
TLS 1.3
QUIC 集成的加密握手机制,仍需验证服务端证书
443
常见部署示例端口,实际值必须与服务端配置一致

Hysteria2 可以承载 TCP 与 UDP 代理请求,两者的应用语义不同。网页等可靠字节流经 QUIC stream 传输;UDP 转发通常使用 QUIC DATAGRAM,不提供与可靠流相同的重传保证。也就是说,可靠性应按被承载业务判断,不能只看连接名称里是否出现 UDP。

2. 为什么可能更快:独立流与拥塞控制

速度要分成握手耗时、首字节等待与持续吞吐量观察。QUIC 将传输与加密握手结合,可减少部分建连往返开销,但域名解析、证书验证、服务端处理与目标网站响应仍然需要时间。一次连接建立得快,不代表大文件下载速度一定更高。

带宽值不能简单理解为“越大越快”。例如实际稳定下行约 50 Mbps,却按 500 Mbps 设定发送目标,可能导致排队、额外丢包和延迟上升。这里的数字是参数关系示例,不是本站测试结果;具体字段、单位与自动协商行为应按当前客户端和服务端说明核对。

结论:吞吐与延迟一起看

若提高带宽配置后下载速度变化不大,但网页等待、语音延迟或其他设备的网络响应明显变差,应回退配置,并重新测量链路的稳定可用带宽。

3. 适合哪些网络,哪些现象需要先排查

高时延会放大反馈周期,随机丢包又可能使部分拥塞控制策略收缩发送速率,因此 Hysteria2 在长距离、有一定随机丢包且 UDP 通畅的网络中有测试价值。不过,丢包来源很重要:无线干扰引起的随机丢包与出口已经拥塞引起的丢包,不应使用同一种判断。

网络条件可能表现先做什么
长距离、随机丢包持续传输可能更稳定,短请求仍受往返时延影响同一网络、同一时段比较首字节与持续吞吐
低时延、低丢包差异可能较小,瓶颈也可能在服务端出口保留稳定设置,不按协议名称推断速度
UDP 被阻断握手超时,TCP 网页可用但 Hysteria2 无法连接检查服务端 UDP 放行,再用另一张网络复测
UDP 被限速连接成功但持续传输很慢,或一段时间后下降区分运营网络策略、服务端限制与无线拥塞
路径 MTU 异常小请求成功,大传输卡住或频繁超时向网络管理员核查 UDP 大包与路径 MTU,不盲改多个参数

QUIC 初始数据报有至少 1200 字节的要求,路径若无法承载相应大小的 UDP 数据报,握手就可能受到影响。单凭“能 Ping 通”无法排除这一问题:Ping 使用的协议、报文大小和路径策略,都不等同于实际 QUIC 连接。

UDP 443 与 TCP 443 是不同的放行对象。服务器网页能通过 HTTPS 打开,只能证明相关 TCP 服务可能可达,不能证明 UDP 443 已开放。若服务端实际使用 UDP 8443,客户端就必须填写 8443;只把端口改成 443 并不会自动获得连通性。

4. 在 Shadowrocket 核对并测试已有配置

以下以 iPhone / iPad 的 Home 页面操作为例。先保存当前可用配置,再添加用户已有的 Hysteria2 参数。如果配置由已有订阅维护,应优先核对订阅导入结果,避免在更新后把临时手动修改误认为仍然生效。本文不提供、不销售、不推荐连接服务或订阅。

  1. 核对参数

    准备服务端地址、UDP 端口、认证密码,以及服务端要求的 SNI 和可选混淆参数。端口以实际部署为准;证书域名与连接地址可以不同,但必须符合证书验证要求。

  2. 添加连接

    进入 Home → 右上角「+」→ Type,选择 Hysteria2,填写已有参数并保存。已有订阅用户可通过 Home →「+」→ Type → Subscribe 导入自己的订阅,再核对生成条目的协议与端口。

  3. 检查证书

    按服务端提供的值核对 SNI 与证书域名,同时确认设备时间正确。出现证书验证错误时先检查域名、有效期与证书链,不把关闭验证作为常规修复步骤。

  4. 隔离分流

    在 Home 选择待测连接,临时将 Global Routing 设为 Proxy,再启用顶部连接开关。使用允许测试的固定目标进行请求;测试完成后恢复原来的 Global Routing 设置。

  5. 固定条件

    记录当前 Wi-Fi 或蜂窝网络、测试时段与现象。若 Settings → On Demand 已启用,先确认自动连接不会干扰手动断开与切换;测试结束后恢复原设置。

Home 中的 Connectivity Test 可用于初步观察连接可达性与测试延迟,但不能代替持续下载、网页首字节或实时业务测试。看到一个较低的延迟数字,只说明该测试路径的响应情况,不能据此判断所有网站都走了同一条连接,也不能据此证明吞吐量更高。

5. Global Routing 与规则如何影响测试

Hysteria2 决定所选代理连接如何传输;Global Routing 决定请求如何选择路径。若测试请求被规则分到 DIRECT,即使 Home 选中了 Hysteria2 条目,也不能拿该次请求的速度评价 Hysteria2。先确认请求使用了哪条路径,再比较协议行为。

Config

推荐

按当前配置的规则决定请求路径。确认配置内容后用于日常连接,并用规则命中结果验证待测请求是否走 PROXY。

适合:日常分流,以及验证明确的规则命中

Proxy

让由客户端接管的请求使用代理路径,临时减少规则分流对测试的干扰。连接失败时仍需排查协议参数与网络可达性。

适合:短时隔离规则影响,检查所选连接

Direct

使用直连路径,不通过所选代理连接。可在目标本身允许直连时建立基线,但直连结果不代表代理服务端到目标的路径质量。

适合:检查本地网络与目标的直连基线

例如在 Config 的当前配置中,下面的 Rule 片段会让 example.com 及其子域名选择 PROXY,让指定私有地址段选择 DIRECT,其余请求由 FINAL 处理。它只是规则语法示例,不包含可用服务端;PROXY 的实际出口仍要结合当前连接选择检查。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
FINAL,DIRECT

规则按顺序匹配,FINAL 应留在末尾。示例使用 example.com 说明后缀匹配,不应用作速度测试目标。若要检查用户自己的业务域名,应在理解现有规则后修改对应条件,保存并启用正确配置;配置未启用或 Global Routing 仍为 Direct 时,编辑规则不会产生预期结果。

6. 如何做一次可重复的对照测试

可靠的比较需要尽量只改变一个变量。不同服务端的地域、出口、负载与线路可能完全不同,把两个不同服务器的下载结果直接归因于协议并不成立。优先比较同一服务端、相近时段、相同目标与相同设备下的结果;无法控制这些条件时,应把结论限制为“当前这两个连接的表现”。

结论:先连通,再比较速度

握手超时先查 UDP 可达性,证书错误先查 SNI 与证书,连接成功后再看持续吞吐与延迟。只有在重复测试中稳定改善实际业务,才有理由保留当前 Hysteria2 设置。

Hysteria2 的适用条件可以归纳为:服务端配置正确、UDP 路径可用、发送策略与链路容量匹配。它能够改善某些受丢包与时延影响的传输场景,但不会修复错误密码、失效证书或已被阻断的网络路径。更多配置语法可查阅规则参考,首次连接与 VPN 配置权限可按快速上手逐项检查。

Shadowrocket 全平台下载