Skip to content

百科知识 (TYPE-B) Hysteria 2 协议深度解析:基于 UDP/QUIC 暴力拥塞控制与抗封锁机制全景百科

在跨海公网与移动网络等恶劣通信环境中,传统基于 TCP 的代理协议(如 Shadowsocks、VMess、Trojan、VLESS)经常面临一个致命瓶颈:只要骨干网出现 5% 至 10% 的丢包,连接速度就会发生断崖式暴跌,4K 视频频繁卡顿

Hysteria 2 (歇斯底里 2) 的诞生彻底颠覆了传统的“温和拥塞控制”假设。它基于定制修改版的 QUIC (RFC 9000) 协议栈,搭载独创的 Brutal 暴力拥塞控制算法,在遭遇高丢包和恶劣 QoS 限制时依然能以恒定速率全力发包,成为公网弱网直连领域的“提速神器”。

本文将为您深度解构 Hysteria 2 的底层协议栈架构、数学控流模型、端口跳跃防封机制与生产级配置。


一、 核心痛点:为什么传统 TCP 代理在丢包网络下速度奇慢?

要理解 Hysteria 2 的突破,必须先理解传统 TCP 协议的“先天局限”:

mermaid
graph TD
    subgraph 传统 TCP 拥塞控制 (Cubic / Reno)
        TCP1[发包速率 100 Mbps] -->|跨海公网发生 5% 丢包| TCP2[误判: 网络发生严重物理拥堵]
        TCP2 -->|主动将发送窗口减半 cwnd = cwnd / 2| TCP3[发包速率暴跌至 10 Mbps]
        TCP3 --> TCP4[用户体验: 视频转圈 / 页面加载极慢]
    end

    subgraph Hysteria 2 暴力拥塞控制 (Brutal CC)
        Hys1[设定下行带宽 200 Mbps] -->|跨海公网发生 5% 丢包| Hys2[Brutal: 忽略丢包对速率的负面反馈]
        Hys2 -->|维持 200 Mbps 恒定速率持续快速重传| Hys3[实际有效吞吐量稳定在 190 Mbps]
        Hys3 --> Hys4[用户体验: 4K 视频依然秒开]
    end

1. TCP 丢包误判机制

传统 TCP 拥塞控制算法(如 Cubic、Reno)诞生于几十年前的局域网与有线骨干网时代。在这些算法的假设中:“只要发生丢包,就必然代表中间路由器缓冲区已满,必须立刻主动大幅减速”

然而在现代跨国跨海公网中,丢包往往是因为运营商的人为 QoS 限速、无线信号衰减或路由偶发抖动,光纤物理带宽本身依然充沛。TCP 的“礼貌主动减速”导致带宽利用率急剧低下。

2. 队头阻塞 (Head-of-Line Blocking)

TCP 是严格按顺序交付的字节流。一旦一个数据包在途中丢失,后续所有已到达的数据包必须在操作系统缓冲区中等待该包重传成功,导致整个连接停滞。


二、 Hysteria 2 的四大核心技术突破

1. Brutal 暴力速率控制模型

Hysteria 2 抛弃了传统 TCP 依靠丢包探测带宽的反馈循环。用户可以在客户端与服务端之间显式约定上下行带宽(例如:up: 30 Mbps, down: 200 Mbps)。

  • 服务端与客户端以约定的速率恒定发包
  • 当发生丢包时,QUIC 协议栈仅快速重传丢失的数据帧(Packet),发包总速率绝不减半

2. 端口跳跃 (Port Hopping) 机制

部分宽带运营商会对长时间维持大流量通信的单一 UDP 端口实施惩罚性 QoS 限速甚至临时阻断。

  • Hysteria 2 支持配置端口范围(如服务端监听 udp: 20000-50000)。
  • 客户端与服务端在通信过程中,会根据算法在端口池中自动、动态、无感知地切换传输端口,有效瓦解运营商针对单端口的限速策略。

3. Salamander 混淆与 HTTP/3 伪装

  • 支持借用合法的公网 TLS 证书并以标准 HTTP/3 (QUIC) 格式向外广播。
  • 在极端严苛的审查环境下,支持开启 Salamander 算法 对 UDP 头部进行轻量异或混淆,使审查设备无法将其识别为标准 QUIC 流量。

三、 生产级配置范例

1. Sing-box 客户端配置 (config.json)

json
{
  "type": "hysteria2",
  "tag": "hys2-out",
  "server": "your-server-domain.com",
  "server_port": 443,
  "hop_interval": "30s",
  "up_mbps": 50,
  "down_mbps": 300,
  "password": "your-strong-password",
  "tls": {
    "enabled": true,
    "server_name": "your-server-domain.com",
    "alpn": ["h3"]
  }
}

2. Clash Verge Rev (Mihomo 内核) 配置

yaml
proxies:
  - name: "Hysteria2 弱网高速节点"
    type: hysteria2
    server: your-server-domain.com
    port: 443
    ports: 20000-50000       # 开启端口跳跃范围
    hop-interval: 30
    up: 50 Mbps
    down: 300 Mbps
    password: your-strong-password
    sni: your-server-domain.com
    alpn:
      - h3
    skip-cert-verify: false

四、 常见问题深度解答 (FAQ 10 问 10 答)

1. 为什么说 Hysteria 2 是“公网恶劣环境下的神器”而在专线中用处不大? Hysteria 2 的核心优势是“弱网抗丢包”。而在 IPLC/IEPL 物理专线中,网络本身全天候丢包率低于 0.1%,不存在公网 QoS 干扰,因此在专线内无需开启 Brutal 算法,轻量级的 Shadowsocks 反而拥有更高的能效比。
2. Hysteria 2 设定的带宽(up/down)必须与实际宽带完全一致吗? 建议设置为本地物理宽带峰值的 80%-90%(例如 500M 宽带设置 down 为 400 Mbps)。如果设置过高会造成无意义的丢包重传,设置过低则无法充分利用物理带宽。
3. 使用 Hysteria 2 会导致本地宽带被运营商封锁 UDP 吗? 长期满载跑满单一 UDP 端口确实存在被部分地区二级宽带限速的风险。强烈建议在服务端与客户端开启 **Port Hopping (端口跳跃)** 功能以分散流量。
4. Hysteria 2 与 TUIC 协议有何本质区别? 两者均基于 QUIC。TUIC 严格遵循标准 QUIC 规范与标准 BBR 拥塞控制,行为模式更接近标准浏览器;Hysteria 2 采用定制修改版 QUIC 与激进的 Brutal 算法,在极限丢包场景下的提速效果更为突出。
5. 为什么手机在 4G/5G 弱信号环境下使用 Hysteria 2 体验尤其明显? 移动通信基站切换或进入电梯等弱信号区域时,无线信道误码率上升导致丢包增加。传统 TCP 会瞬间进入死锁状态,而 Hysteria 2 凭借 UDP 快速重传机制能保持视频与网页不中断。

五、 关联百科与实战

最后更新于:

机场百科 Airport Wiki - 严谨、专业、中立的网络技术维基知识库