Hysteria2 是 Hysteria 协议的下一代版本,它是一种高性能、抗审查的代理协议,专注于在高丢包、高延迟、带宽受限的网络环境下提供稳定快速的连接。Hysteria2 在其前身的基础上进行了多项重大改进,将底层传输协议从 QUIC 升级为基于自定义 UDP 的协议栈,并引入了更灵活的流量控制和更强大的抗审查特性。其核心理念是通过高效的 UDP 传输、TCP BBR 拥塞控制算法和 TLS 加密,在恶劣网络条件下最大化可用带宽,同时保持高度的隐蔽性。

核心思想:在不可靠的 UDP 传输之上构建一个可靠的、高性能的、基于 TCP BBR 算法的传输层,并结合 TLS 加密和流量伪装,以应对高丢包、高延迟和严格审查的网络环境。


一、为什么需要 Hysteria2?

传统的代理协议,无论是基于 TCP (如 Shadowsocks TCP, VLESS/Trojan over TCP+TLS) 还是基于 QUIC (如 Hysteria1),在高丢包率、高延迟的网络环境中(例如跨国长距离传输、卫星网络、受到干扰的网络)都可能表现不佳:

  1. TCP 协议的固有局限性:TCP 旨在保证可靠传输,但在高丢包和高延迟环境下,其拥塞控制机制可能会过于保守,导致带宽利用率低下,传输速度慢。
  2. QUIC 协议的特定问题:Hysteria1 基于 QUIC 协议。虽然 QUIC 解决了 TCP 的队头阻塞问题,但在某些网络环境下,QUIC 的特征可能仍然容易被识别和阻断。
  3. 复杂审查环境:审查者可能不仅仅是识别协议特征,还会通过分析流量模式、连接行为来阻断代理。

Hysteria2 旨在通过以下改进来解决这些问题:

  • 完全自定义的 UDP 协议栈:摆脱了 QUIC 的束缚,拥有更大的自由度来优化传输和抗审查能力。
  • 更强大的抗审查特性:引入了更灵活的流量伪装选项。
  • 极致的性能优化:在高丢包、高延迟环境下,能够提供更接近线路极限的传输速度。

二、Hysteria2 协议的核心特性

2.1 基于 UDP 的自定义协议栈 (Custom UDP Protocol Stack)

Hysteria2 的底层传输完全建立在 UDP 之上,但它不是简单地转发 UDP 数据,而是在 UDP 报文内部实现了一套可靠传输、拥塞控制和流量控制机制,类似于 QUIC,但拥有更大的定制空间。

  • 优势
    • 摆脱 TCP 的队头阻塞 (Head-of-Line Blocking):一个数据包的丢失不会阻塞其他独立流的传输。
    • 摆脱 QUIC 协议指纹:不再暴露 QUIC 的特定握手和流量特征,提供了更高的隐蔽性。
    • 传输灵活性:可以根据网络状况更精细地控制重传、流量整形等行为。

2.2 TCP BBR 拥塞控制 (TCP BBR Congestion Control)

Hysteria2 核心集成了 Google 的 TCP BBR (Bottleneck Bandwidth and RTT) 拥塞控制算法。BBR 旨在通过测量网络路径的带宽和延迟来优化传输,而不是简单地通过丢包来判断拥塞。

  • 优势
    • 高带宽利用率:在高丢包、高延迟、长距离传输等恶劣网络环境下,能显著提高带宽利用率,实现更快的速度。
    • 更公平的带宽分配:在与其他流量竞争时,BBR 表现更激进但更合理。
    • 适应性强:能够更好地适应不断变化的网络条件。

2.3 基于 TLS 1.3 的安全传输 (TLS 1.3 based Security)

Hysteria2 使用标准的 TLS 1.3 协议进行加密和认证,确保数据传输的机密性、完整性和真实性。

  • 优势
    • 强安全性:TLS 1.3 是目前最安全的加密协议之一。
    • 抗审查:通过 TLS 加密,代理流量看起来与正常的加密流量无异。
    • 快速握手:TLS 1.3 优化了握手过程,减少了延迟。

2.4 可配置的伪装 (Configurable Obfuscation/Masking)

Hysteria2 提供了多种伪装选项,以增强其抗审查能力:

  • mask 字段:允许将 Hysteria2 的流量伪装成访问一个真实网站的 HTTPS 流量。例如,你可以指定 mask: "https://www.google.com",这样 Hysteria2 的握手和部分数据包就会模仿访问 Google 网站的特征。

  • 自定义 HTTP 请求头:在 mask 的基础上,可以进一步定制伪装 HTTP 请求头,使其更难以被识别。

  • 混淆模式 (Obfuscation Mode):通过对 UDP 包的头进行一定程度的混淆,使其不那么容易被识别出是 Hysteria2 流量。

  • IP 模糊 (IP Confusion):通过同时监听多个 IP 地址或端口,增加探测的难度。

  • 优势:极大增强了流量的隐蔽性,使其在深度包检测下更难以被识别和阻断。

2.5 流量控制 (Rate Limit & Congestion Control)

Hysteria2 允许用户对上传和下载速度进行精细的控制,可以设置最大速率,防止单个连接耗尽服务器所有带宽。

  • 优势
    • 服务器资源管理:有效管理服务器带宽,防止滥用。
    • 用户体验优化:在多用户环境下,可以提供更公平的带宽分配。

2.6 NAT 类型支持 (NAT Type Support)

Hysteria2 能够更好地穿透各种 NAT (Network Address Translation) 类型,这对于 P2P 连接或某些特殊的网络环境非常重要。

三、Hysteria2 协议结构概述

Hysteria2 的协议结构是建立在 UDP 数据报文之上的。大致可以分为以下几个阶段:

  1. UDP 握手阶段
    • 客户端和服务器之间通过自定义的 UDP 报文进行初次握手。
    • 这个握手过程会协商连接 ID、加密参数等。
    • 在此阶段,如果配置了 mask,则会发送伪装成 HTTP/TLS 的请求,使得外部看起来像是一个正常的 HTTPS 连接。
  2. TLS 1.3 握手阶段
    • 在 UDP 握手成功后,双方建立一个 TLS 1.3 会话。
    • 这提供了端到端的加密和身份验证。
    • 客户端会验证服务器证书,服务器会根据配置验证客户端身份(可选,通常通过密码)。
  3. Hysteria2 数据传输阶段
    • TLS 握手成功后,所有代理数据都通过 TLS 1.3 加密,封装在 Hysteria2 的 UDP 报文内进行传输。
    • Hysteria2 在 UDP 报文内部实现了可靠性、顺序性、流量控制和拥塞控制。
    • 每个 UDP 报文可能包含多个 Hysteria2 帧,每个帧又可能包含多个应用数据包。

四、Hysteria2 的工作流程 (简化)

流程说明:

  1. UDP 握手与伪装:客户端首先向 Hysteria2 服务器的 UDP 端口发送经过 Hysteria2 特有头部封装和伪装(如果配置了 mask)的 UDP 报文,开始 Hysteria2 协议的握手。
  2. TLS 握手:在 Hysteria2 握手成功后,客户端和服务器之间进行 TLS 1.3 握手。客户端验证服务器的 TLS 证书,并发送客户端密码进行认证。
  3. 身份验证:服务器验证 TLS 证书的合法性以及客户端密码的正确性。
  4. 数据传输:一旦 TLS 握手和身份验证成功,客户端和服务器之间就建立了一个安全的 Hysteria2 隧道。所有后续的代理数据都将通过这个隧道传输:
    • 客户端应用数据被 Hysteria2 客户端捕获。
    • 数据被封装、加密(TLS 1.3)、并通过 Hysteria2 的自定义 UDP 协议栈(包含 BBR 拥塞控制)发送。
    • 服务器接收 UDP 报文,解封装、解密,并将原始应用数据转发到目标服务。
    • 目标服务的响应数据反向经过 Hysteria2 服务器、封装加密,通过 UDP 隧道返回给客户端。
  5. BBR 优化:在整个数据传输过程中,BBR 拥塞控制算法会持续监测网络状况(RTT、带宽),动态调整发送速率,以最大化吞吐量并减少延迟。

五、Hysteria2 的优缺点与适用场景

5.1 优点:

  1. 极致性能 (高丢包/高延迟环境)
    • 基于 UDP 和 BBR 拥塞控制,在高丢包、高延迟、长距离网络条件下表现卓越,能够充分利用带宽。
    • 比传统 TCP 代理和基于 QUIC 的代理在恶劣网络中提供更快的速度和更稳定的连接。
  2. 强大的抗审查能力
    • UDP 传输:UDP 流量在某些审查环境中可能比 TCP 更不容易被限制。
    • TLS 1.3 加密:保证流量加密和伪装。
    • 可配置的伪装 (Masking):能将流量伪装成访问真实网站的 HTTPS 流量,进一步增强隐蔽性。
    • 自定义协议栈:摆脱了 QUIC 的特定指纹。
  3. 灵活性高:多种伪装和流量控制选项,适应不同网络和审查环境。
  4. 部署相对简单:相比 REALITY,Hysteria2 仍然需要域名和 TLS 证书,但其配置逻辑相对直观。

5.2 缺点:

  1. 仍需域名和 TLS 证书:为了安全性、隐蔽性和避免 IP 被封,通常需要一个域名和合法 TLS 证书。
  2. UDP 端口开放问题:部分严格的网络环境可能对 UDP 流量有限制或 QOS 较低,或默认关闭所有 UDP 端口。
  3. 需要服务器资源:BBR 算法和复杂的 UDP 传输层需要一定的 CPU 资源。
  4. 可能存在特定 UDP 流量的识别:尽管进行了伪装和混淆,但 UDP 流量的特征本身仍可能被高级审查系统识别。

5.3 适用场景:

  • 网络环境恶劣:用户所在地区网络丢包率高、延迟大(例如跨国链路拥堵)、带宽受限。
  • 需要突破 UDP 限制:希望使用 UDP 协议进行代理传输,特别是用于游戏、VoIP 等对实时性要求高的应用。
  • 对代理性能有较高要求:追求在高负载或挑战性网络条件下仍能保持高速稳定连接。
  • 对抗复杂的流量识别和审查
  • 对安全性有较高要求

六、总结

Hysteria2 作为新一代的抗审查代理协议,在高丢包、高延迟网络环境下展现出卓越的性能和强大的抗审查能力。它通过在 UDP 上构建自定义的、基于 BBR 拥塞控制的可靠传输协议栈,并结合 TLS 1.3 加密和灵活的流量伪装,有效地解决了传统协议在恶劣网络条件下效率低下的问题,并进一步提升了隐蔽性。对于那些面临严苛网络环境或追求极致代理速度的用户而言,Hysteria2 是一个非常值得关注和部署的解决方案。