Hysteria2 安装与配置指南
简介
Hysteria2(简称 Hy2)是一个高性能的代理工具,基于 QUIC 协议(UDP 传输),专为快速、安全的网络连接设计。它支持伪装流量、TLS 加密、混淆和端口跳跃等功能,能够有效应对网络限制,提供低延迟和高吞吐量的连接。Hy2 适用于需要高速网络传输的场景,如科学上网、远程访问和流媒体传输。本指南提供 Hy2 服务器和客户端的配置方法,分为以下三个部分:
- 一键部署脚本:通过 GitHub 项目 sindricn/s-hy2 快速搭建。
- 手动服务器配置:手搓服务器设置,包括证书、伪装域名和高级配置。
- 客户端配置:手动输入节点信息或使用 JSON 模板文件导入,支持端口跳跃和混淆配置。
🎬 视频教程
一键部署脚本
项目介绍
项目地址: https://github.com/sindricn/s-hy2
一键安装脚本命令
curl -fsSL https://raw.githubusercontent.com/sindricn/s-hy2/main/quick-install.sh | sudo bash
脚本快捷启动命令
sudo s-hy2
手动服务器配置
安装
运行以下命令安装 Hysteria2:
bash <(curl -fsSL https://get.hy2.sh/)
卸载
移除 Hysteria2:
bash <(curl -fsSL https://get.hy2.sh/) --remove
配置文件编辑
编辑配置文件 /etc/hysteria/config.yaml:
nano /etc/hysteria/config.yaml
快捷生成配置文件
使用以下命令快速生成 /etc/hysteria/config.yaml 文件,包含 ACME 和自签名证书两种配置选项(根据需要注释掉不需要的部分):
cat << EOF > /etc/hysteria/config.yaml
listen: :443 #监听端口
#使用ACME证书
#acme:
# domains:
# - hy2.959923.xyz #已解析到服务器的域名
# email: [email protected]
#使用自签证书
tls:
cert: /etc/hysteria/server.crt
key: /etc/hysteria/server.key
auth:
type: password
password: nbvil666 #设置认证密码
obfs:
type: salamander
salamander:
password: nbvil888
masquerade:
type: proxy
proxy:
url: https://cdn.jsdelivr.net #伪装域名
rewriteHost: true
EOF
- 说明:
- listen: 设置监听端口,默认
443。若需自定义,取消注释并修改。 - acme: 用于自动获取 ACME 证书,需替换域名(
hy2.959923.xyz)和邮箱([email protected])。若使用自签名证书,注释此部分。 - tls: 用于自签名证书,需生成证书文件(见下文)。若使用 ACME 证书,注释此部分。
- auth.password: 设置认证密码(默认
nbvil666),需与客户端一致。 - obfs: 设置混淆密码(默认
nbvil888)。若不启用混淆,删除此部分。 - masquerade.proxy.url: 设置伪装域名(默认
cdn.jsdelivr.net),可替换为低延迟域名。
- listen: 设置监听端口,默认
配置 ACME 证书
- 取消
acme部分的注释,注释掉tls部分。 - 将
hy2.959923.xyz替换为已解析到服务器的域名。 - 将
[email protected]替换为您的电子邮件地址。 - 可选:修改认证密码
nbvil666为自定义密码。 - 如果使用默认伪装域名(
cdn.jsdelivr.net),保存后启动服务器。
配置自定义伪装域名
测试低延迟域名,列出延迟最低的 10 个:
(for d in \
www.cloudflare.com www.apple.com www.microsoft.com www.bing.com www.google.com \
developer.apple.com www.gstatic.com fonts.gstatic.com fonts.googleapis.com \
res-1.cdn.office.net res.public.onecdn.static.microsoft static.cloud.coveo.com \
aws.amazon.com www.aws.com cloudfront.net d1.awsstatic.com \
cdn.jsdelivr.net cdn.jsdelivr.org polyfill-fastly.io \
beacon.gtv-pub.com s7mbrstream.scene7.com cdn.bizibly.com \
www.sony.com www.nytimes.com www.w3.org www.wikipedia.org \
ajax.cloudflare.com www.mozilla.org www.intel.com \
api.snapchat.com images.unsplash.com \
edge-mqtt.facebook.com video.xx.fbcdn.net \
gstatic.cn \
; do \
t1=$(date +%s%3N); \
timeout 1 openssl s_client -connect $d:443 -servername $d </dev/null &>/dev/null && \
t2=$(date +%s%3N) && echo "$((t2 - t1)) $d"; \
done) | sort -n | head -n 10 | awk '{printf "✔️ %s (%s ms)\n", $2, $1}'
将 masquerade.proxy.url 中的 cdn.jsdelivr.net 替换为选定的低延迟域名。
配置自签名证书
生成自签名证书:
sudo mkdir -p /etc/hysteria && \
openssl req -x509 -nodes -newkey ec:<(openssl ecparam -name prime256v1) \
-keyout /etc/hysteria/server.key \
-out /etc/hysteria/server.crt \
-subj "/CN=cdn.jsdelivr.net" \
-days 3650 && \
sudo chown hysteria /etc/hysteria/server.key && \
sudo chown hysteria /etc/hysteria/server.crt
- 将
-subj中的cdn.jsdelivr.net替换为您的伪装域名。 - 更新配置文件:
- 注释掉
acme部分,取消tls部分的注释。 - 确保
tls.cert和tls.key路径正确。
- 注释掉
- 将
masquerade.proxy.url中的cdn.jsdelivr.net替换为伪装域名。
服务器管理
启动服务
启用并启动服务:
systemctl enable --now hysteria-server.service
重启服务
修改配置文件后重启:
systemctl restart hysteria-server.service
检查状态
验证服务状态:
systemctl status hysteria-server.service
查看日志
检查服务器日志:
journalctl --no-pager -e -u hysteria-server.service
高级配置
修改端口
在配置文件中取消 listen: :443 注释,将 443 替换为自定义端口。
添加混淆
启用混淆(已在快捷命令中包含):
obfs:
type: salamander
salamander:
password: nbvil888
将 nbvil888 替换为自定义混淆密码。若不启用,删除 obfs 部分。
启用端口跳跃
配置端口跳跃:
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 20000:50000 -j REDIRECT --to-ports 443
- 如果不清楚实际网络接口名称,可运行以下命令查看:
或ip link
查找活跃的网络接口(如ifconfigeth0、ens3或enp0s3),替换eth0。 - 调整
20000:50000为所需端口范围。 - 如果使用自定义端口,替换
443为相应端口。 - 注意:多次配置要跳跃端口的时候,如果有修改需要确认与原有配置的端口不冲突,建议先删除原有跳跃端口配置,在重新配置,避免冲突导致节点失效
客户端配置
Hysteria2 客户端配置支持两种手搓方案:手动输入节点信息或通过 JSON 模板文件导入。模板适配服务器配置,包括端口跳跃和混淆的启用/禁用场景。
方案 1:手动输入节点信息
- 收集节点信息:
- 服务器地址:如
your.server.ip:443或hy2.959923.xyz:443。若启用端口跳跃,可使用范围内的端口(如20000)。 - 认证密码:如
nbvil666。 - SNI:与证书域名匹配:
- ACME 证书:使用
acme.domains中的域名(如hy2.959923.xyz)。 - 自签名证书:使用证书的 CN(如
cdn.jsdelivr.net)。 - 默认伪装:通常与
masquerade.proxy.url一致(如cdn.jsdelivr.net)。
- ACME 证书:使用
- 混淆密码(若启用):如
nbvil888。
- 服务器地址:如
- 选择客户端:
- Hysteria2 官方客户端(Windows/macOS/Linux/Android/iOS):官方支持,推荐。
- Nekobox(Android/iOS):多协议支持,适合高级用户.
- Shadowrocket(iOS)或 v2rayNG(Android):需确认支持 Hysteria2。
- 输入配置:
- 打开客户端,选择“添加节点”或“新建配置”。
- 输入服务器地址(端口跳跃时随机选择范围内的端口,如
20000)、认证密码、SNI。 - 若服务器启用混淆,输入混淆密码;否则跳过。
- 保存并测试连接。
- 注意事项:
- 确保配置与服务器一致,尤其是
auth和obfs.password。 - SNI 必须与服务器证书的域名匹配。
- 端口跳跃时,可随机选择
20000-50000内的端口;未启用时,使用单一端口(如443)。 - 自签名证书可能需启用“允许不安全连接”(
insecure: true),不推荐。
- 确保配置与服务器一致,尤其是
优点:简单直接,适合单节点或临时测试。 缺点:多节点配置效率低,易出错。
方案 2:节点模板文件导入
- 创建节点配置文件:使用以下 JSON 模板,保存为
hysteria2-client-config.json:
{
"server": "your.server.ip:443",
"ports": "20000-50000",
"auth": "nbvil666",
"tls": {
"sni": "cdn.jsdelivr.net",
"insecure": false
},
"obfs": {
"type": "salamander",
"password": "nbvil888"
}
}
- 编辑模板:
- server: 替换为服务器 IP 或域名及单一端口(如
192.168.1.1:443或hy2.959923.xyz:443)。若启用端口跳跃,可保持默认端口或留空。 - ports: 若启用端口跳跃,指定范围(如
20000-50000);若未启用,删除此字段。 - auth: 替换为认证密码(默认:
nbvil666)。 - tls.sni: 替换为证书域名:
- ACME 证书:使用
acme.domains中的域名(如hy2.959923.xyz)。 - 自签名证书:使用证书的 CN(如
cdn.jsdelivr.net)。 - 默认伪装:通常与
masquerade.proxy.url一致(如cdn.jsdelivr.net)。
- ACME 证书:使用
- tls.insecure: 保持
false,自签名证书连接失败时可设为true(不推荐)。 - obfs: 若启用混淆,替换密码为
nbvil888或自定义值;若未启用,删除此字段。
- server: 替换为服务器 IP 或域名及单一端口(如
- 导入客户端:
- Hysteria2 官方客户端: 在“导入配置文件”中选择
hysteria2-client-config.json。 - Nekobox: 在“节点管理”中导入 JSON 文件。
- Shadowrocket/v2rayNG: 确认支持 JSON 格式,导入或手动输入。
- Hysteria2 官方客户端: 在“导入配置文件”中选择
- 多节点支持(可选):
- 创建 JSON 数组,包含多个节点:
保存为[ { /* 节点 1 配置,如上述模板 */ }, { /* 节点 2 配置 */ } ]hysteria2-multi-nodes.json,导入支持多节点的客户端。
- 创建 JSON 数组,包含多个节点:
- 测试连接:
- 导入后测试连接,端口跳跃时可随机选择
ports范围内的端口。 - 若连接失败,检查服务器日志:
journalctl --no-pager -e -u hysteria-server.service
- 导入后测试连接,端口跳跃时可随机选择
优点:便于批量管理,减少输入错误,支持多设备同步。 缺点:需手动编辑 JSON,初期稍复杂。
客户端配置注意事项
- 配置匹配:客户端配置必须与服务器
/etc/hysteria/config.yaml一致,尤其是auth,obfs.password, 和tls.sni。 - SNI:必须与服务器证书域名匹配(ACME 使用
acme.domains,自签名证书使用 CN,默认配置通常与masquerade.proxy.url一致)。 - 端口跳跃:若启用,客户端可随机使用
ports范围内的端口(如20000-50000);若未启用,删除ports字段,并在server中指定单一端口。 - 混淆:若服务器未启用混淆,删除
obfs字段;否则确保密码一致。
总结
本指南提供 Hysteria2 的完整配置流程:
- 简介概述 Hy2 的功能和适用场景。
- 一键部署脚本通过 sindricn/s-hy2 简化安装。
- 手动服务器配置支持 ACME、自签名证书、伪装域名、端口跳跃和混淆,新增快捷生成配置文件命令和网络接口查看提示。
- 客户端配置提供手动输入和 JSON 模板导入两种方案,模板支持端口跳跃和混淆,明确指导删除未启用的字段(如
ports和obfs),并修正 SNI 为证书域名。修改配置后,重启服务并检查状态以确保正常运行。
版权声明:
本文由 Sindri 原创,采用 CC BY-NC-SA 4.0 协议进行许可。转载请注明出处。



