OVEROUTESOVEROUTES
首页
阅读须知
  • 总览
  • 选购要点
  • 推荐机场
  • 客户端使用
  • 概述
  • IP 与线路
  • 选型指南
  • 选购参考
  • 基础部署
  • 安全加固
  • 概述
  • 3X-UI
  • Xboard
  • 协议总览
  • Shadowsocks
  • Shadowsocks 2022
  • VMess
  • Trojan
  • VLESS
  • Hysteria 2
  • TUIC
  • AnyTLS
  • NaiveProxy
  • Mieru
  • ShadowTLS
  • VLESS-XHTTP
  • WireGuard
  • 传统协议
  • 孤家寡人协议
  • 软件总览
  • Mihomo
  • sing-box
  • Xray
  • V2Fly
  • dae (Linux)
  • Shadowrocket (iOS)
  • QuantumultX (iOS)
  • Stash (iOS/macOS)
  • Loon (iOS)
  • Surge (macOS/iOS)
  • NekoBox (Android)
  • Husi (Android)
  • Exclave (Android)
配置
首页
阅读须知
  • 总览
  • 选购要点
  • 推荐机场
  • 客户端使用
  • 概述
  • IP 与线路
  • 选型指南
  • 选购参考
  • 基础部署
  • 安全加固
  • 概述
  • 3X-UI
  • Xboard
  • 协议总览
  • Shadowsocks
  • Shadowsocks 2022
  • VMess
  • Trojan
  • VLESS
  • Hysteria 2
  • TUIC
  • AnyTLS
  • NaiveProxy
  • Mieru
  • ShadowTLS
  • VLESS-XHTTP
  • WireGuard
  • 传统协议
  • 孤家寡人协议
  • 软件总览
  • Mihomo
  • sing-box
  • Xray
  • V2Fly
  • dae (Linux)
  • Shadowrocket (iOS)
  • QuantumultX (iOS)
  • Stash (iOS/macOS)
  • Loon (iOS)
  • Surge (macOS/iOS)
  • NekoBox (Android)
  • Husi (Android)
  • Exclave (Android)
配置
  • 主流序列

    • 代理协议总览
    • Shadowsocks
    • Shadowsocks 2022
    • VMess
    • Trojan
    • VLESS
    • Hysteria 2
  • 新生序列

    • TUIC
    • AnyTLS
    • ShadowQUIC
    • VLESS-Encryption
    • Sudoku
  • 小众序列

    • NaiveProxy
    • Mieru
    • SS-ShadowTLS
    • VLESS-XHTTP
    • Juicity
  • 传统与其他

    • WireGuard
    • 传统协议
    • 孤家寡人协议

Hysteria 2

Hysteria 2 是基于 QUIC 协议的高性能代理协议,于 2023 年 9 月正式发布。它是 Hysteria 1 的完全重写版本,在协议安全性、流量伪装和性能上均有显著提升。Hysteria 2 的核心设计目标是在高延迟、高丢包的网络环境下(如中美普通线路、移动网络)提供优于 TCP 协议的连接稳定性和传输速度。

背景与演进

Hysteria 1

Hysteria 1 于 2021 年前后发布,基于自定义的 QUIC 实现,使用修改版的拥塞控制算法来对抗网络中的丢包。它在当时以"暴力带宽占用"著称——即使在丢包率较高的线路上,也能保持较高的吞吐量。

然而,Hysteria 1 的流量特征比较明显,其协议握手和数据传输方式与标准 QUIC 流量存在可识别的差异。

Hysteria 2 的改进

Hysteria 2 在 Hysteria 1 的基础上进行了全面重设计:

  • 基于标准的 QUIC 实现(而非自定义魔改版),流量特征更接近正常的 HTTP/3 流量
  • 引入了 Salamander 混淆层,将 QUIC 数据包伪装为普通的 UDP 流量
  • 重新设计了身份认证机制,使用 HTTP/3 伪装作为协议握手的外壳
  • Brutal 拥塞控制算法经过优化,更加稳定

关于 Hysteria 1 和 Hysteria 2

Hysteria 1 和 Hysteria 2 是不兼容的两个协议版本,不能混用。目前社区推荐直接使用 Hysteria 2。Hysteria 1 的官方仓库已停止主要功能开发,仅维护安全补丁。

核心技术

基于 QUIC 的传输

QUIC 是由 Google 设计、IETF 标准化的传输层协议,是 HTTP/3 的底层传输协议。它运行在 UDP 之上,但提供了类似 TCP 的可靠传输能力,同时具备以下优势:

  • 0-RTT 或 1-RTT 握手:连接建立速度比 TLS over TCP 更快
  • 多路复用:单个连接可以承载多条独立的数据流,一条流的丢包不影响其他流
  • 连接迁移:网络切换(如 Wi-Fi 切换到 4G)时无需重新建立连接
  • 内置 TLS 1.3:加密是 QUIC 的强制要求,不存在明文传输

Hysteria 2 在标准 QUIC 的基础上构建,因此其流量从协议层面看与普通 HTTP/3 流量高度相似。

Brutal 拥塞控制

标准 TCP 和 QUIC 的拥塞控制算法(如 BBR、CUBIC)设计目标是"公平共享"——在检测到网络拥塞时自动降速,让多个流量源可以和谐共存。

然而在跨境代理场景中,线路本身的不稳定性(丢包、高延迟)往往会让标准拥塞控制算法误判为网络拥塞,从而主动降低发送速度。

Brutal 算法采用了不同的策略:

客户端设定目标带宽(如 100 Mbps)
  |
  | 不论当前丢包率如何,持续以接近目标带宽发送数据
  | 通过 FEC(前向纠错)或重传来弥补丢失的数据包
  v
即使在 5–10% 的丢包率下,仍能维持接近目标带宽的吞吐量

这就是 Hysteria 2 在高丢包线路上性能优越的根本原因。

关于 Brutal 的使用

Brutal 算法会持续占用你设定的目标带宽,不会根据网络状况自动调节。如果目标带宽设置过高,可能会对线路上的其他用户造成影响,也可能触发服务商的流量异常检测。建议将目标带宽设置为实际可用带宽的 70–80%,而不是填写一个极大的数值。

HTTP/3 伪装

Hysteria 2 使用 HTTP/3 协议作为握手和身份验证的外壳。当客户端连接到 Hysteria 2 服务端时,会先发起一个看起来像普通 HTTP/3 请求的握手:

客户端
  |
  | QUIC 连接(UDP 443 端口)
  | HTTP/3 POST 请求(携带 Hysteria 2 认证信息)
  v
服务端
  |
  | 验证认证信息
  |   - 认证成功 → 建立代理通道
  |   - 认证失败 → 返回正常的 HTTP 响应(伪装为普通 Web 服务器)
  v
代理通道 / 回落 Web 响应

对于不知道密码的探测者,服务端表现为一个普通的 HTTP/3 Web 服务器,与真实的 HTTPS/HTTP3 站点无法从外部区分。

Salamander 混淆

Salamander 是可选的额外混淆层,将 QUIC 数据包进一步变形为看起来像随机 UDP 数据的格式,以应对那些专门识别 QUIC 协议特征的检测系统。

在大多数场景下,标准的 HTTP/3 伪装已经足够,无需额外启用 Salamander。仅在明确遭遇针对 QUIC 协议的封锁时再考虑启用。

优缺点

优点缺点
UDP 传输,在高延迟高丢包线路上表现出色UDP 可能被部分网络环境封锁或限速
Brutal 算法能充分利用有限带宽依赖 UDP,在 UDP 受限的企业/校园网中可能不可用
HTTP/3 伪装,流量特征自然需要域名和有效的 TLS 证书
支持端口跳跃(Port Hopping),对抗基于端口的限速在网络条件良好时,相对 TCP 直连方案优势不明显
配置简单,单一二进制文件Brutal 算法主动占用带宽,可能引发机场流量异常告警
连接迁移支持,网络切换时不断线部分老旧客户端尚不支持 Hysteria 2
多路复用,减少连接建立开销—

与同类协议的对比

对比维度Hysteria 2TUIC v5VLESS + Reality
传输层QUIC(UDP)QUIC(UDP)TCP
拥塞控制Brutal(激进)标准 QUIC标准 TCP
是否需要域名是是否
是否需要证书是是否
高丢包性能极强强一般
UDP 封锁风险有有无
配置复杂度低低中
流量伪装HTTP/3QUICTLS 1.3
端口跳跃支持不支持不支持
客户端支持广较广广

端口跳跃(Port Hopping)

端口跳跃是 Hysteria 2 独有的对抗基于端口限速或封锁的机制。原理如下:

客户端配置端口范围,如 20000-50000
  |
  | 每隔一段时间(如 30 秒),随机切换到范围内的另一个端口
  | 由于 QUIC 的连接迁移特性,切换端口不会中断已有连接
  v
即使某些端口被封锁或限速,客户端也会快速跳转到其他端口

服务端需要在对应的端口范围内开放 UDP 防火墙规则,并绑定对应端口范围。

这一特性在应对运营商对特定端口进行 QoS 限速时尤为有效。

适用场景

推荐使用 Hysteria 2 的场景:

  • 中美之间的普通线路(非 CN2 GIA、非 IPLC 的高丢包线路)
  • 移动网络(4G/5G),UDP 性能通常优于 TCP
  • 线路丢包率持续高于 2% 的环境
  • 需要端口跳跃对抗运营商 QoS 限速
  • 与 TCP 代理方案(如 VLESS + Reality)互补,作为备用或主力方案
  • 对 UDP 没有明确封锁的网络环境

不推荐单独依赖 Hysteria 2 的场景:

  • 企业网络、校园网等可能封锁 UDP 的环境
  • 对 UDP 有明确封锁的服务商(此时应优先使用 TCP 方案)
  • 网络条件极好的优质专线(IPLC/IEPL)——此时 TCP 协议的优势已足够

服务端部署参考

前置条件

  • 一台公网 VPS,已开放 UDP 443 端口(或其他目标端口)
  • 一个指向服务器 IP 的域名
  • 有效的 TLS 证书(可以使用 acme.sh 或 Caddy 自动申请)

安装 Hysteria 2

官方提供了一键安装脚本:

bash <(curl -fsSL https://get.hy2.sh/)

安装完成后,二进制文件位于 /usr/local/bin/hysteria,配置文件模板位于 /etc/hysteria/。

也可以从 GitHub Releases 手动下载对应系统架构的二进制文件:

# 查看最新版本并下载
wget https://github.com/apernet/hysteria/releases/latest/download/hysteria-linux-amd64
chmod +x hysteria-linux-amd64
mv hysteria-linux-amd64 /usr/local/bin/hysteria

申请 TLS 证书

使用 acme.sh 申请 Let's Encrypt 证书:

# 安装 acme.sh
curl https://get.acme.sh | sh

# 申请证书(确保 80 端口可访问或使用 DNS 验证)
~/.acme.sh/acme.sh --issue -d your.domain.com --webroot /var/www/html

# 安装证书
~/.acme.sh/acme.sh --install-cert -d your.domain.com \
  --cert-file /etc/hysteria/cert.crt \
  --key-file /etc/hysteria/private.key \
  --reloadcmd "systemctl restart hysteria-server"

Hysteria 2 也支持通过 ACME 自动申请证书,可以在配置文件中直接声明,无需手动操作。

服务端配置文件(/etc/hysteria/config.yaml)

基础配置(手动指定证书):

listen: :443

tls:
  cert: /etc/hysteria/cert.crt
  key: /etc/hysteria/private.key

auth:
  type: password
  password: your-strong-password

masquerade:
  type: proxy
  proxy:
    url: https://www.bing.com
    rewriteHost: true

bandwidth:
  up: 1 gbps
  down: 1 gbps

使用 ACME 自动申请证书:

listen: :443

acme:
  domains:
    - your.domain.com
  email: your@email.com

auth:
  type: password
  password: your-strong-password

masquerade:
  type: proxy
  proxy:
    url: https://www.bing.com
    rewriteHost: true

多用户配置:

listen: :443

tls:
  cert: /etc/hysteria/cert.crt
  key: /etc/hysteria/private.key

auth:
  type: userpass
  userpass:
    user1: password1
    user2: password2
    user3: password3

masquerade:
  type: proxy
  proxy:
    url: https://www.bing.com
    rewriteHost: true

配置字段说明:

字段说明
listen服务端监听地址和端口,UDP 协议
tls.cert / tls.keyTLS 证书和私钥路径
auth.password客户端认证密码
masquerade.proxy.url伪装目标网站,非 Hysteria 连接将被代理到此 URL
bandwidth.up/down服务端的上下行带宽,用于 Brutal 算法协商

启动服务

systemctl enable hysteria-server
systemctl start hysteria-server
systemctl status hysteria-server

# 查看日志
journalctl -u hysteria-server -f

开放防火墙规则

# 开放 UDP 443 端口(必须)
ufw allow 443/udp

# 如果使用端口跳跃,开放对应范围
ufw allow 20000:50000/udp

启用端口跳跃(可选)

服务端配置:

listen: :443,20000-50000

客户端连接时使用端口范围:your.domain.com:443,20000-50000

客户端配置参考

sing-box 客户端配置

{
  "type": "hysteria2",
  "tag": "hy2-node",
  "server": "your.domain.com",
  "server_port": 443,
  "password": "your-strong-password",
  "up_mbps": 100,
  "down_mbps": 300,
  "tls": {
    "enabled": true,
    "server_name": "your.domain.com"
  }
}

up_mbps 和 down_mbps 是你希望 Brutal 算法使用的目标带宽(单位 Mbps),建议根据实际线路带宽的 70–80% 设置。

Mihomo 客户端配置

proxies:
  - name: "hy2-node"
    type: hysteria2
    server: your.domain.com
    port: 443
    password: your-strong-password
    up: "100 Mbps"
    down: "300 Mbps"
    sni: your.domain.com

客户端支持

平台客户端支持状态
Windows / macOS / LinuxMihomo支持
Windows / macOS / Linuxsing-box / v2rayN支持
Windows / macOS / LinuxXray-core支持(内置 Hysteria 2)
iOSShadowrocket支持
iOSStash支持
iOSLoon支持
iOSSurge支持
iOSQuantumult X不支持
AndroidNekoBox支持
AndroidHusi支持
AndroidExclave支持
Linuxdae支持

常见问题

Q:Hysteria 2 会不会用尽我的服务器带宽?

Brutal 算法会按照你设定的目标带宽持续发送数据,但只在实际有数据传输时才会占用带宽。闲置时不消耗带宽。服务端配置的 bandwidth 字段是理论上限,实际占用取决于客户端的请求量。

Q:连接失败,提示 UDP 不可用怎么办?

检查以下几点:

  1. 服务器防火墙是否已开放 UDP 443 端口
  2. 部分 VPS 提供商(如某些 NAT VPS)可能不支持 UDP 或对 UDP 有端口限制
  3. 客户端所在网络是否封锁了 UDP 出站流量(企业/校园网常见)
  4. 尝试更换端口

Q:带宽设置多少合适?

推荐将 up_mbps 和 down_mbps 设置为实测带宽的 70–80%。例如,如果你的下行带宽测试结果为 200 Mbps,建议设置 down_mbps: 150。设置过高会导致过度重传,反而降低实际吞吐量,并可能被机场或运营商标记为异常流量。

Q:和 TUIC 相比选哪个?

两者都是基于 QUIC 的优秀协议,主要区别在于:

  • Hysteria 2 使用 Brutal 激进拥塞控制,在高丢包环境中更有优势
  • TUIC 使用标准 QUIC 拥塞控制,行为更"保守",对其他流量影响更小
  • 实际使用中,两者性能差异通常不大,选择支持度更好的客户端所支持的协议即可

Q:Hysteria 2 是否支持 UDP 转发(如游戏加速)?

是的,Hysteria 2 原生支持 UDP over QUIC,可以用于转发 UDP 游戏流量,这是 TCP 代理协议所不具备的优势。

延伸阅读

  • TUIC 协议 — 同样基于 QUIC 的竞争对手,设计理念略有不同
  • VLESS 协议 — TCP 方向的最强竞争者,适合网络条件好的线路
  • 代理协议总览 — 回到协议总览页面
  • Hysteria 官方仓库:github.com/apernet/hysteria
最近更新: 2026/4/9 14:18
Prev
VLESS