Skip to content

Hysteria2 与端口跳跃 ​

Hysteria2 运行在 QUIC 之上,使用 UDP。在 TCP 协议会卡住的丢包和长距离链路上,它依然能保持连接,因此适合作为 TCP 入站之外的第二个入站。开启端口跳跃后,客户端会在许多端口之间切换,封锁一个端口只会让用户失去这一个端口。

适用场景 ​

  • 移动网络和丢包严重的网络,以及离节点很远的用户。
  • 封锁单个 UDP 端口的网络,需开启端口跳跃。如果 UDP 被整体封锁,它就无能为力。

它做不到的事:在 UDP 无法到达节点的地方运行,或放在 CDN 后面。CDN 承载的是 TCP,所以面板拒绝在任何 QUIC 入站上设置域名前置。

创建 ​

  1. 入站 → 从预设添加 → Hysteria2,或点击 添加 并输入类型 hysteria2。通用表单见 入站。
  2. 在 Basic 选项卡填写 Port。这是一个 UDP 端口。
  3. TLS 选项卡是必需的,默认为 节点证书,因此无需再做任何设置入站即可工作。证书 中的任何证书都可以。使用自签名证书时,面板会把它的固定值(pin)写入每个链接和文件。
  4. 保存,并把它加入一个模板。

如果节点主机运行防火墙,请放行该端口以及下面每个端口跳跃范围的 UDP。

端口跳跃 ​

在 Protocol 选项卡上,Port hopping ranges 列出入站同时应答的额外 UDP 端口,每行一个范围,格式为 start:end,例如 20000:20999。总计最多 512 个端口。

  • 节点自己监听所有这些端口。你无需添加防火墙重定向规则。
  • 每个用户的链接和文件都携带这组端口,应用因此知道可以在哪些端口之间切换。
  • 与同一模板上其他入站的端口或某条隧道的端口重叠的范围,在保存时会被拒绝。

切换频率由客户端决定,所以它作为客户端设置放在同一个选项卡上:

字段
跳跃间隔两次切换之间的秒数。留空则使用应用自己的默认值(大多数应用为 30 秒)。最少 5 秒
跳跃间隔上限仅 Hysteria2。两者都设置时,应用每次在两者之间随机取值,切换就不再有固定规律

sing-box 应用读取这两个字段。Clash 应用读取间隔;在 mihomo 1.19.24 及以上版本中也读取端口范围。分享链接里没有放这两项的位置,所以通过导入链接添加的应用会使用自己的默认值。面板会拒绝没有间隔的上限、小于间隔的上限,以及低于五秒的任何值,这些也正是客户端在用户设备上会拒绝的值。

速度与按用户限制 ​

节点始终以 BBR 拥塞控制运行 Hysteria2,并忽略应用声明的带宽。正因如此,用户的 速度限制 在 Hysteria2 上和在其他地方一样有效,这也是该入站没有带宽字段的原因。用户在应用里设置的带宽不会提高其速度。

BBR profile(高级)设置节点拥塞控制的激进程度:留空或 standard、conservative、aggressive。

其他字段 ​

字段(高级)
Obfs password用双方共享的密码打乱每个数据包,使检查流量的网络不再把连接识别为 Hysteria2。每个链接都携带它;修改后每个用户都需要刷新订阅
Masquerade URL当有人在没有有效密码的情况下连接(例如浏览器)时,节点向其展示的网站
Idle timeout、Keep-alive period、各接收窗口、Max concurrent streamsQUIC 调优;除非你经过测量有明确理由,否则留空

Hysteria(第 1 版) ​

表单还提供第一版 hysteria。它同样支持端口跳跃(没有上限)和 Obfs password,但始终使用固定速率:Up (Mbps) 和 Down (Mbps) 不能为空。留空时面板会特意填入很高的值,这样每个用户的 速度限制 才是真正的上限。只为不支持 Hysteria2 的应用提供它。

客户端应用 ​

格式Hysteria2Hysteria
分享链接是(hysteria2://)是(hysteria://)
Clash 应用是是
sing-box 应用是是
Xray 客户端是否
  • TUIC — 另一种 QUIC 协议
  • 协议 — 所有协议的对比
  • 用户 — 账户上的速度限制

文字与图片采用 CC BY 4.0 许可。