Hysteria2 协议是什么:基于 QUIC 的传输为何更快、适合哪些场景

从 QUIC/UDP 传输和拥塞控制两方面讲 Hysteria2 在高丢包链路上表现更好的原因,并说明它适合的网络环境、UDP 受限时的表现,以及在 Shadowrocket 里填写的字段。

本文速览

Hysteria2 是基于 QUIC 的代理协议,不是加速开关。本文面向已经有自己服务商、服务器或订阅的 iPhone/iPad 用户:先区分传输机制与速度表现,再核对 Shadowrocket 中的连接字段,最后按 UDP、TLS 和路由三个层次排查连接问题。

Hysteria2、QUIC 与 UDP 的关系

Shadowrocket(小火箭)中的 Hysteria2 是服务器连接类型。QUIC 是它使用的底层传输协议,UDP 则承载 QUIC 数据包。这里的“使用 UDP”指客户端与服务器之间的外层连接,不表示浏览器中的所有请求都变成了不可靠传输,也不表示应用只能访问 UDP 服务。

QUIC 在 UDP 之上实现连接管理、可靠流、丢包恢复和拥塞控制,并使用 TLS 1.3 完成握手与加密。Hysteria2 再在这一传输层上实现认证及代理转发。服务器必须支持 Hysteria2;不能把已有的其他协议服务器仅改一个 Type(类型)就拿来连接。

UDP
客户端到服务器的外层传输
TLS 1.3
QUIC 握手与加密使用的机制
443
本文教学端口,实际以已有配置为准

端口号不能单独说明协议。443/TCP 可用,不代表同一地址的 443/UDP 也可用。服务器的监听设置、防火墙和当前接入网络,都可能对两种传输分别处理。本文中的 example.com 仅作不可点击的教学域名,不对应可用服务。

为何可能更快:流隔离与拥塞控制

先区分吞吐量与延迟。吞吐量表示单位时间传送的数据量,延迟表示一次交互等待多久。较高的文件传输速度,不等于每个网页都更早显示。DNS 查询、目标站点响应、服务器负载和无线信号,也会影响打开页面的时间。

QUIC 的多流机制减少了不同流之间由传输层丢包造成的队头阻塞。某个流缺失的数据需要恢复时,其他流已经收到的数据仍可交付。但同一个可靠流内部依然要保持顺序;丢包也依然会占用重传带宽。不能把 QUIC 理解为“丢包无需等待”。

Hysteria2 的性能特点还与拥塞控制有关。其 Brutal 拥塞控制基于带宽目标工作,在存在随机丢包、但仍有剩余容量的链路上,可能比遇到丢包就明显收缩发送速度的策略更充分地使用带宽。服务端也可采用其他拥塞控制方式,因此“使用 Hysteria2”并不等于“始终使用相同发送策略”。

哪些网络适合,UDP 受限时会怎样

跨地区连接、往返时间较长、存在少量随机丢包的链路,是值得验证 Hysteria2 表现的场景。前提是 UDP 能稳定通过,而且服务器与接入网络都有足够容量。在低丢包、低延迟的网络中,性能差距可能很小,不能仅凭协议名称判断哪种连接更快。

网络情况可能观察到的现象检查方向
UDP 正常,存在随机丢包长时间传输可能较稳定,仍会出现重传固定服务器与目标,重复测量吞吐量和交互延迟
UDP 被阻断握手等待后超时,服务器无法建立连接核对 UDP 监听、防火墙,再换接入网络复测
UDP 被限速能连接,但持续传输达到某个水平后不再增长对照 Wi-Fi 与蜂窝网络,检查容量与限速条件
网络拥塞或无线信号差延迟随传输升高,页面交互卡顿停止并行传输,降低带宽目标后再测

Hysteria2 不会因为 UDP 不通就自动变成 TCP 连接。已有配置中的混淆选项也不能创造一条被防火墙完全禁止的 UDP 通道。若当前网络确实限制 UDP,应向自己的服务商确认是否有适用于该环境的其他既有连接配置,而不是反复修改密码或关闭证书验证。

结论:先验证 UDP 通路

同一配置在蜂窝网络可连、在某个 Wi-Fi 持续超时时,先检查接入网络的 UDP 条件;保留原认证与 TLS 参数,避免同时改动多项而失去对照。

在 Shadowrocket 中导入与核对字段

优先使用自己服务商提供的已有订阅。订阅通常包含协议、端口、认证和 TLS 参数,手动重录更容易漏项。更新订阅后仍应检查服务器类型;更新列表不代表该服务器已经通过连通性验证,也不代表已经成为当前默认服务器。

  1. 导入订阅

    打开 Home(首页)→ 右上角“+”→ Type(类型)→ Subscribe(订阅),填入自己已有的订阅链接并保存。返回 Home 后下拉刷新列表,不要把订阅链接发给他人。

  2. 确认类型

    在 Home 找到导入的服务器,点该行的信息按钮进入编辑,检查 Type 是否为 Hysteria2。手动添加时,从 Home → “+”→ Type 选择 Hysteria2,再录入服务商给出的参数。

  3. 核对连接

    逐项检查 Address(地址)、Port(端口)与 Password(密码)。地址只填服务器域名或 IP,不把订阅链接、网页路径或整条分享链接塞入地址栏。

  4. 核对加密

    按已有配置检查 SNI(服务器名称指示)及证书要求;如有混淆,核对混淆类型和密码。不要把认证密码当作混淆密码,也不要自行添加配置中没有的值。

  5. 选择并连接

    保存后回到 Home,点服务器左侧圆点设为默认,再检查 Global Routing(全局路由)。打开连接开关;首次出现系统 VPN 配置授权时,按系统提示确认,然后运行 Connectivity Test(连通性测试)。

字段或参数核对内容常见误填
Address(地址)教学示例为 example.com,实际使用自己的服务器地址填成订阅 URL 或带网页路径的地址
Port(端口)教学示例为 443,实际必须匹配服务器 UDP 监听端口按常见端口猜测,未核对服务端
Password(密码)按服务商给出的完整认证字符串填写遗漏分隔符、复制时带入空格
SNI(服务器名称指示)使用已有配置指定的 TLS 名称,并核对证书覆盖范围连接 IP 时也把证书域名改成 IP
混淆参数仅在服务端启用时填写,双方类型及密码一致单方面开启混淆,或复用错误密码

SNI 与 Address 可以不同:前者参与 TLS 名称协商,后者决定连接到哪里。证书校验失败时,先核对系统时间、证书名称与服务商配置。Allow Insecure(允许不安全连接)不是常规修复选项;关闭校验会改变服务器身份验证条件,不能用它代替正确配置。

区分协议连接与 Global Routing

服务器能连接,只说明代理通道具备可用条件。某个网站是否经过它,还由 Global Routing(全局路由)、当前 Config(配置文件)及策略选择决定。排查时先固定路由姿态,不要一边切服务器,一边修改规则和带宽参数。

Config(配置)

推荐

按当前配置匹配规则。日常使用时核对目标命中的规则和策略,确认该策略最终指向待测的 Hysteria2 服务器;默认服务器不一定覆盖策略组的选择。

适合:已有明确分流规则的日常连接

Proxy(代理)

按代理姿态处理受接管的流量,可在确认默认服务器后临时用于排除规则影响。它不等于替换服务器协议,也不能修复 UDP 握手失败。

适合:短时验证服务器通道,排除分流因素

Direct(直连)

使用直接连接,不通过所选代理服务器。此时网站能打开,不能证明 Hysteria2 配置有效。

适合:检查目标网站在当前网络的直连状态

Global Routing 中的 Scene(场景)按已设置的场景条件选择路由行为;测试时应先确认当前场景实际采用什么设置。Settings(设置)→ On Demand(按需连接)控制系统在满足条件时触发连接,不是协议加速项,也不会替代服务器认证或规则匹配。

DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

上面的教学片段表示:域名为 example.com 及其子域名时走 PROXY,其余流量由 FINAL,DIRECT 兜底直连。规则按从上到下的顺序匹配,只在使用相应 Config 时有意义。这里的 PROXY 是代理策略,不是 Hysteria2 的另一种写法。

按现象排查,并记录可比较的结果

把测试拆成“握手成功”“目标可访问”“持续传输表现”三件事。Home 中的延迟结果不能代替网页和文件传输测试,Connectivity Test 成功也不能证明所有目标、所有时段都可用。以下是判读方法,不是对某条线路的实测结论。

需要比较时,固定设备、服务器、目标资源和路由设置,在同一接入网络重复三次,再到另一接入网络重复相同步骤。分别记录握手是否成功、页面是否完成、持续传输是否稳定,以及传输期间交互延迟是否明显上升。一次只改一个条件,才能定位变化来自哪里。

App Store 正版核验