Hysteria2保姆级搭建教程|拯救垃圾vps|手搓节点&一键脚本双教程|第二代歇斯底里适用Windows/iOS/安卓/MacOS/Openwrt全平台
Hysteria2 安装与配置指南
简介
Hysteria2(简称 Hy2)是一个高性能的代理工具,基于 QUIC 协议(UDP 传输),专为快速、安全的网络连接设计。它支持伪装流量、TLS 加密、混淆和端口跳跃等功能,能够有效应对网络限制,提供低延迟和高吞吐量的连接。Hy2 适用于需要高速网络传输的场景,如科学上网、远程访问和流媒体传输。本指南提供 Hy2 服务器和客户端的配置方法,分为以下三个部分:
- 一键部署脚本:通过 GitHub 项目 sindricn/s-hy2 快速搭建。
- 手动服务器配置:手搓服务器设置,包括证书、伪装域名和高级配置。
- 客户端配置:手动输入节点信息或使用 JSON 模板文件导入,支持端口跳跃和混淆配置。
🎬 视频教程
一键部署脚本
项目介绍
项目地址: https://github.com/sindricn/s-hy2
一键安装脚本命令
1 | curl -fsSL https://raw.githubusercontent.com/sindricn/s-hy2/main/quick-install.sh | sudo bash |
脚本快捷启动命令
1 | sudo s-hy2 |
手动服务器配置
安装
运行以下命令安装 Hysteria2:
1 | bash <(curl -fsSL https://get.hy2.sh/) |
卸载
移除 Hysteria2:
1 | bash <(curl -fsSL https://get.hy2.sh/) --remove |
配置文件编辑
编辑配置文件 /etc/hysteria/config.yaml
:
1 | nano /etc/hysteria/config.yaml |
快捷生成配置文件
使用以下命令快速生成 /etc/hysteria/config.yaml
文件,包含 ACME 和自签名证书两种配置选项(根据需要注释掉不需要的部分):
1 | cat << EOF > /etc/hysteria/config.yaml |
- 说明:
- 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 个:
1 | (for d in \ |
将 masquerade.proxy.url
中的 cdn.jsdelivr.net
替换为选定的低延迟域名。
配置自签名证书
生成自签名证书:
1 | sudo mkdir -p /etc/hysteria && \ |
- 将
-subj
中的cdn.jsdelivr.net
替换为您的伪装域名。 - 更新配置文件:
- 注释掉
acme
部分,取消tls
部分的注释。 - 确保
tls.cert
和tls.key
路径正确。
- 注释掉
- 将
masquerade.proxy.url
中的cdn.jsdelivr.net
替换为伪装域名。
服务器管理
启动服务
启用并启动服务:
1 | systemctl enable --now hysteria-server.service |
重启服务
修改配置文件后重启:
1 | systemctl restart hysteria-server.service |
检查状态
验证服务状态:
1 | systemctl status hysteria-server.service |
查看日志
检查服务器日志:
1 | journalctl --no-pager -e -u hysteria-server.service |
高级配置
修改端口
在配置文件中取消 listen: :443
注释,将 443
替换为自定义端口。
添加混淆
启用混淆(已在快捷命令中包含):
1 | obfs: |
将 nbvil888
替换为自定义混淆密码。若不启用,删除 obfs
部分。
启用端口跳跃
配置端口跳跃:
1 | iptables -t nat -A PREROUTING -i eth0 -p udp --dport 20000:50000 -j REDIRECT --to-ports 443 |
- 如果不清楚实际网络接口名称,可运行以下命令查看:或
1
ip link
查找活跃的网络接口(如1
ifconfig
eth0
、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
:
1 | { |
- 编辑模板:
- 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
3
4[
{ /* 节点 1 配置,如上述模板 */ },
{ /* 节点 2 配置 */ }
]hysteria2-multi-nodes.json
,导入支持多节点的客户端。
- 创建 JSON 数组,包含多个节点:
- 测试连接:
- 导入后测试连接,端口跳跃时可随机选择
ports
范围内的端口。 - 若连接失败,检查服务器日志:
1
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 为证书域名。修改配置后,重启服务并检查状态以确保正常运行。