Hysteria2 设置指南:最快的绕过审查协议
原文件来源: SamNet Learn — Hysteria2 Setup Guide. 本文为中文翻译版。
先决条件
- 具有公网 IP 地址的 VPS
- 域名(用于 TLS 证书)
- 具备基本的 Linux 命令行知识
简答: Hysteria2 是一种基于 QUIC 的代理协议,对于大多数用户来说速度比 VLESS+Reality 更快。安装:下载二进制文件,创建配置文件,获取 TLS 证书,然后启动。客户端:可以使用 Nekobox、Hiddify 或 Clash Meta。它通过伪装成普通的 QUIC/HTTP3 流量来规避深度包检测 (DPI)。
需要 VPS 吗? Vultr(免费额度)、DigitalOcean(200 美元免费额度)或 RackNerd(价格实惠的年度套餐)。
什么是 Hysteria2?
Hysteria2 是一种基于 QUIC(HTTP/3 所用的协议,也被 Google、YouTube 和 Cloudflare 等公司使用)构建的抗审查代理协议。它专为伊朗、中国和俄罗斯等审查严格的国家的用户而设计。
Hysteria2 存在的意义
传统代理协议在审查网络中存在一个根本性问题:
- VPN 协议(WireGuard、OpenVPN)很容易被深度包检测(DPI)技术检测并阻止。
- Shadowsocks — 多年来一直很有效,但现代 DPI 现在可以识别它的特征。
- VLESS+Reality — 隐蔽性极佳,但基于 TCP 协议,在丢包网络上速度较慢。
- Tor — 匿名但速度极慢
Hysteria2 通过使用 QUIC(基于 UDP)解决了这个问题,QUIC 具有两个巨大的优势:
- 在网络状况不佳的情况下,QUIC 比 TCP 更能有效处理丢包。在丢包率高、速度受限的连接上(常见于网络审查严格的国家),Hysteria2 的速度可以比基于 TCP 的协议快 2 到 5 倍。
- 难以屏蔽: QUIC 流量看起来与普通的 HTTP/3 流量完全相同。屏蔽 QUIC 就等于屏蔽了谷歌、YouTube 以及半个互联网。
对比情况
| 协议 | 传输 | 速度(有损网络) | DPI 抗性 | 安装简便 | | :---------------: | :---------: | :--------------: | :------------: | :------: | | Hysteria2 | QUIC(UDP) | 最快 | 强 | 简单 | | VLESS+Reality | TCP | 较快 | 强 | 一般 | | VLESS+WS+CDN | TCP via CDN | 一般 | 强 | 复杂 | | Shadowsocks | TCP | 较快 | 一般 | 简单 | | WireGuard | UDP | 快 | 差(容易检测) | 简单 | | Tor | TCP | 一般 | 一般 | 简单 |
何时使用 Hysteria2 而不是 VLESS+Reality:
- 您的连接存在高丢包率或限速问题
- 你需要最高速度
- 您的网络服务提供商限制了 TCP 流量,但没有限制 UDP 流量
- 你想要的是最简单的高性能配置
何时应使用 VLESS+Reality:
- 您的网络服务提供商 (ISP) 明确屏蔽了 QUIC/UDP 协议
- 你需要 CDN 回退方案(需要 VLESS+WebSocket+CDN)
- 你需要运行在 443/TCP 端口上(有些网络只允许 TCP)
Hysteria2 的工作原理
你的设备 (Nekobox/Hiddify/Clash)
|
| QUIC connection (encrypted, looks like HTTP/3)
| SNI: your-domain.com (legitimate TLS certificate)
|
v
你的云服务器 (Hysteria2)
|
| Decrypts, forwards to the real internet
|
v
目标地址 (websites, apps, services)
技术细节
-
QUIC 协议: 你的设备会与服务器建立 QUIC 连接。QUIC 是谷歌基于 UDP 协议开发的协议,Chrome、YouTube、Gmail 和大多数现代网站都使用它。深度包检测系统 (DPI) 只会将其视为"另一个 QUIC 连接"。
-
真正的 TLS 证书: Hysteria2 使用来自 Let's Encrypt 的真实 TLS 证书来保护你的域名。当审查机构探测你的服务器时,他们会看到一个真实域名的有效证书,而不是自签名或伪造的证书。
-
强力拥塞控制: 这是 Hysteria2 的秘密武器。它不使用标准的 QUIC 拥塞控制(QUIC 会在检测到网络拥塞时降低速度),而是采用自定义的"强力"算法,在网络拥塞时会积极地提高传输速率。你只需告知它可用带宽,它就会以该速率发送数据,而不管网络拥塞情况如何。这就是为什么它在限速网络上也能保持如此高的速度。
-
混淆(可选): Hysteria2 可以在 QUIC 之上添加一个额外的混淆层(
salamander),使流量看起来像是随机的 UDP 而不是 QUIC。如果你的 ISP 会专门识别并屏蔽 QUIC 流量,请使用此功能。
第一部分:服务器设置
安装 Hysteria2
# 官方安装脚本
bash <(curl -fsSL https://get.hy2.sh/)
# 验证
hysteria version
这将安装 hysteria 二进制文件并创建一个 systemd 服务。
获取 TLS 证书
Hysteria2 需要有效的 TLS 证书。最简单的方法是:
# 安装证书工具
sudo apt install certbot -y
# 获取证书 (默认使用 80 端口)
sudo certbot certonly --standalone -d your-domain.com
# 证书文件地址(your-domain.com 替换成你的域名):
# /etc/letsencrypt/live/your-domain.com/fullchain.pem
# /etc/letsencrypt/live/your-domain.com/privkey.pem
另一种方法: Hysteria2 可以使用其内置的 ACME 客户端自动获取证书(请参阅下面的配置)。
创建服务器配置
sudo nano /etc/hysteria/config.yaml
# 监听端口默认 443
listen: :443
# 使用 TLS 证书
tls:
cert: /etc/letsencrypt/live/your-domain.com/fullchain.pem #替换成实际的地址
key: /etc/letsencrypt/live/your-domain.com/privkey.pem #替换成实际的地址
# 或者使用 ACME (自动获取证书):
# acme:
# domains:
# - your-domain.com
# email: your@email.com
# 用户设置
auth:
type: password
password: your-strong-password-here #设置密码
# 伪装域名
masquerade:
type: proxy
proxy:
url: https://www.bing.com
rewriteHost: true
配置 masquerade
masquerade 部分对于抵抗审查至关重要。当有人(或审查者的探测手段)使用普通浏览器而非 Hysteria2 客户端连接到你的服务器时,服务器会充当反向代理,指向伪装后的 URL。审查者看到的是一个普通的网站(在本例中为 Bing)。
选项:
proxy— 将请求代理到真实网站(最具说服力)file— 提供本地文件string— 返回静态字符串
开放防火墙
# UFW
sudo ufw allow 443/udp
# iptables
sudo iptables -A INPUT -p udp --dport 443 -j ACCEPT
重要提示: Hysteria2 使用 UDP 协议,而非 TCP 协议。请确保已打开 UDP 端口 443。
启动服务器
sudo systemctl start hysteria-server
sudo systemctl enable hysteria-server
# 查看状态
sudo systemctl status hysteria-server
# 查看日志
sudo journalctl -u hysteria-server -f
第二部分:客户端设置
Nekobox(安卓系统 — 推荐)
- 从 GitHub 发布版本安装 Nekobox
- 添加服务器 → 协议:Hysteria2
- 输入:
- 服务器:
your-domain.com - 端口:
443 - 密码:
your-strong-password-here - SNI:
your-domain.com
- 服务器:
- 连接。
Hiddify(Android/iOS — 推荐)
- 安装 Hiddify(两个平台均可用)
- 添加服务器 → Hysteria2
- 请输入服务器详细信息
- 连接
Clash Meta / Mihomo(桌面/移动端)
添加到你的 Clash 配置中:
proxies:
- name: "hysteria2"
type: hysteria2
server: your-domain.com
port: 443
password: your-strong-password-here
sni: your-domain.com
v2rayN(Windows)
- 下载 v2rayN
- 添加服务器 → Hysteria2
- 输入服务器、端口、密码、SNI
- 连接
Sing-Box(高级)
{
"outbounds": [
{
"type": "hysteria2",
"server": "your-domain.com",
"server_port": 443,
"password": "your-strong-password-here",
"tls": {
"enabled": true,
"server_name": "your-domain.com"
}
}
]
}
URI 格式(用于共享)
hy2://your-strong-password-here@your-domain.com:443?sni=your-domain.com#MyProxy
分享此链接——用户可以将其导入任何兼容 Hysteria2 的客户端。
第三部分:通过 3X-UI 面板进行设置
如果你已经使用 3X-UI 管理 Xray,则可以将 Hysteria2 添加为入站:
安装 3X-UI(如果尚未安装)
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
添加 Hysteria2 入站
- 打开 3X-UI 面板(
https://your-ip:2053) - 入站 → 添加入站
- 设置:
| 环境 | 值 | | :------- | :-------------------------------------------------- | | 协议 | Hysteria2 | | 端口 | 443 | | 安全 | tls | | 域名 | your-domain.com | | 证书路径 | /etc/letsencrypt/live/your-domain.com/fullchain.pem | | 密钥路径 | /etc/letsencrypt/live/your-domain.com/privkey.pem |
- 添加带密码的客户端
- 复制客户链接/二维码
3X-UI 通过其 Web UI 处理用户管理、流量统计和到期日期。
第四部分:性能调校
带宽配置(Brutal 模式)
Hysteria2 最大的优势在于其"强力"的拥塞控制。请根据你的实际带宽进行配置:
服务器配置:
# 服务端带宽 (你 VPS 支持的带宽)
bandwidth:
up: 1 gbps
down: 1 gbps
客户端配置(Clash Meta 示例):
proxies:
- name: "hysteria2"
type: hysteria2
server: your-domain.com
port: 443
password: your-strong-password-here
up: "50 mbps" # 你的设备实际上传速度
down: "200 mbps" # 你的设备实际下载速度
如何设置带宽值:
- 将客户端
down设置为你的实际下载速度(运行速度测试) - 将客户端
up设置为你的实际上传速度 - 服务器参数应与你的 VPS 带宽(通常为 1 Gbps)相匹配
- 如果这些值设置得太高,会浪费带宽;设置得太低,则无法达到全速
端口跳跃
如果你的 ISP 屏蔽了特定的 UDP 端口,Hysteria2 支持端口跳跃——客户端会轮换使用多个端口:
服务器: 打开一系列端口:
# Open UDP ports 20000-40000
sudo iptables -A INPUT -p udp --dport 20000:40000 -j ACCEPT
# Forward all these ports to Hysteria2 (listening on 443)
sudo iptables -t nat -A PREROUTING -p udp --dport 20000:40000 -j REDIRECT --to-ports 443
客户端: 指定端口范围:
proxies:
- name: "hysteria2-hopping"
type: hysteria2
server: your-domain.com
port: 443
ports: "20000-40000" # Hop through this range
password: your-strong-password-here
Salamander 混淆
如果你的 ISP 明确屏蔽了 QUIC 协议,请启用 Salamander 混淆功能,将流量伪装成随机 UDP 流量:
服务器配置:
obfs:
type: salamander
salamander:
password: your-obfs-password
客户端配置:
proxies:
- name: "hysteria2-obfs"
type: hysteria2
server: your-domain.com
port: 443
password: your-strong-password-here
obfs: salamander
obfs-password: your-obfs-password
第五部分:安全加固
使用 Fortify
Fortify 可自动检测 Hysteria2 并加固你的服务器:
bash <(curl -sL https://github.com/SamNet-dev/fortify/raw/main/install.sh)
fortify
它将:
- 检查 TLS 配置
- 屏蔽 SMTP 端口(防止垃圾邮件滥用)
- 添加速率限制
- 设置 SYN 防洪措施
- 评估你的整体安全性
封禁滥用行为
防止用户使用你的代理服务器进行垃圾邮件或种子下载:
# Block SMTP (spam relay prevention)
sudo iptables -A OUTPUT -p tcp --dport 25 -j DROP
sudo iptables -A OUTPUT -p tcp --dport 465 -j DROP
sudo iptables -A OUTPUT -p tcp --dport 587 -j DROP
监控使用情况
# View Hysteria2 logs
sudo journalctl -u hysteria-server -f
# Check active connections
ss -unp | grep hysteria
# Monitor bandwidth
vnstat -l
第六部分:多用户设置
使用 Hysteria2 原生身份验证
使用用户名密码文件:
auth:
type: userpass
userpass:
alice: password-for-alice
bob: password-for-bob
charlie: password-for-charlie
每个用户都有自己的 URI:
hy2://alice:password-for-alice@your-domain.com:443?sni=your-domain.com#Alice
hy2://bob:password-for-bob@your-domain.com:443?sni=your-domain.com#Bob
采用 3X-UI
3X-UI 提供了一个完整的 Web 用户界面,用于管理 Hysteria2 用户,其功能包括:
- 每个用户使用单独的密码
- 流量配额
- 到期日期
- 连接限制
- 二维码和订阅链接
这是管理多个用户的最简便方法。请参阅 3X-UI 设置。
Hysteria2 与 VLESS+Reality:何时使用哪种?
| 场景 | 使用 Hysteria2 | 使用 VLESS+Reality | | :--------------------- | :------------------------------ | :----------------------------------- | | 高丢包率/网络限速 | 是的(QUIC 在这方面处理得更好) | 在有损链路上速度较慢 | | ISP 屏蔽 UDP/QUIC | 否(Hysteria2 需要 UDP) | 是的(基于 TCP) | | 需要 CDN 备用方案 | 否(不支持 CDN) | 是的(VLESS+WS+CDN) | | 最高速度 | 是的(Brutal 拥塞控制) | 网络状况不佳时速度较慢 | | 端口 443 仅限 TCP 网络 | 否 | 是的 | | 服务器探测阻力 | 好(masquerade) | 极好的(Reality 握手) | | 客户端应用支持 | 大多数现代客户端 | 大多数现代客户端 |
最佳策略: 同时运行两者。Hysteria2 作为主服务器(速度快),VLESS+Reality 作为备用服务器(在 UDP 被阻塞时可用)。3X-UI 支持在同一服务器上运行两者。
故障排除
# 检查状态
sudo systemctl status hysteria-server
# 检查日志错误
sudo journalctl -u hysteria-server --no-pager | tail -30
# 查看 443 端口是否开放
ss -ulnp | grep 443
# 测试客户端
# 如果连接失败,尝试使用混淆
# 如果仍然失败,你的网络运营商可能屏蔽了所有 UDP 网络 — 去使用 VLESS+Reality (TCP)
| 问题 | 解决方法 |
| :-------------------------------------- | :------------------------------------------------------ |
| 无法连接 | 检查防火墙是否允许 UDP 443 端口:sudo ufw allow 443/udp |
| TLS 证书错误 | 检查配置中的证书路径。续订:sudo certbot renew |
| 速度慢 | 在客户端配置中设置正确的带宽值(Brutal 模式) |
| 网络连接频繁中断 | 启用端口跳跃(参见第四部分) |
| ISP 屏蔽 QUIC | 启用 Salamander 混淆或切换到 VLESS+Reality |
| 服务器显示无连接 | 检查客户端 SNI 是否与你的域名完全匹配 |
| WiFi 模式下可用,但移动数据模式下不可用 | 移动运营商可能会屏蔽 UDP 协议。尝试切换端口或切换协议 |
| "身份验证失败" | 服务器和客户端配置之间的密码不匹配 |
相关指南
- 绕过网络审查的各种方法 — 所有方法的比较
- 3X-UI 面板设置 — 在一个面板中管理 Hysteria2 和 Xray
- Xray 路由指南 — 路由流量,屏蔽广告/种子下载
- SOCKS5 代理设置 — 更简单的代理选项
- 代理服务器完整指南 — 详解所有代理协议
- Tor 详解 — 专注于匿名性的替代方案
- DNS 隧道指南 — 最后的绕过手段
- Fortify 服务器加固 — 保护你的代理服务器
- 服务器加固指南 — 完整安全检查清单
- WireGuard 设置 — VPN 替代方案
- MTProto 代理设置 — Telegram 专用代理
- 完整的自托管指南 — VPS 基础知识
📖 原文件来源: SamNet Learn — Hysteria2 Setup Guide. 本文为中文翻译版。