Hysteria2 是一个开源的代理工具,基于修改后的 QUIC 协议,实现高速、低延迟、抗不稳定网络环境的通信能力。它支持 UDP、TCP 转发、HTTP/SOCKS5 代理等多种模式,还能通过“伪装”为 HTTP/3 流量来增强隐蔽性。由于这些特性,Hysteria2 在自建代理服务方案中越来越受欢迎。
在本教程中,我们将演示如何在 Linux 环境下搭建 Hysteria2 服务端,从准备 VPS、安装软件、配置文件、开启服务,再到客户端大致接入流程。你可以按照本文步骤在你的服务器上快速部署。
准备工作
-
选择适合的 Linux 发行版
建议使用主流稳定版本,以确保系统兼容性。例如:Debian 11 及以上、Ubuntu 22.04 LTS 及以上、Rocky Linux 8 及以上。Hysteria2 官方表示应避免使用如 Alpine Linux、OpenWrt、NixOS 等系统。 -
获取具有公网 IP 的 VPS 或物理机
服务端需要一个公网可访问的 IP 地址(IPv4 或 IPv6 均可)。 -
域名解析
建议将一个域名(或子域名)指向服务器 IP,以便后续使用 ACME 自动申请 TLS 证书。 -
开放防火墙端口
-
TCP 80:用于 ACME HTTP 验证(如果采用自动证书方式)
-
UDP 443(或你自定义的监听端口):用于 Hysteria2 的主通信协议,因为其基于 UDP。
例如,在服务器防火墙或云主机安全组中开放相应端口。
-
-
确保系统具备基础工具
系统至少要有bash、grep、curl、GNU Coreutils 等工具,以便执行安装脚本。
安装 Hysteria2 服务端
1. 登录服务器(建议使用 root 或具有 sudo 权限的用户)。
2. 执行官方一键安装脚本,自动下载、安装并配置 systemd 服务:
bash <(curl -fsSL https://get.hy2.sh/)
该脚本适用于大多数采用 systemd 的 Linux 发行版。
3. 如果你想指定版本或其它架构(如带 AVX 支持的版本),可以在脚本中加入 --version 或设置环境变量 ARCHITECTURE=...。
4. 脚本执行完毕后,会在系统中安装 hysteria-server.service(或类似名称)并放置一个示例配置文件,通常路径为 /etc/hysteria/config.yaml。
服务端配置
1. 打开编辑配置文件(路径可能为 /etc/hysteria/config.yaml 或脚本提示的路径),使用 nano 或 vi 编辑。
2. 配置示例(使用 ACME 自动申请证书):
listen: :443
acme:
domains:
- your.domain.com
email: youremail@example.com
auth:
type: password
password: YourStrongPassword123
masquerade:
type: proxy
proxy:
url: https://example.com/
rewriteHost: true
listen:监听地址和端口,默认:443表示所有接口。acme:启用自动 TLS 证书获取。填写你的域名和邮箱。auth:认证方式,通常选择password,并设置一个强密码。masquerade:伪装设置,用于增强隐蔽性,将流量伪装成正常的 HTTP/3。
3. 如果你已经有证书/私钥,也可以使用 tls: 配置直接指定 cert 和 key 路径,而不是使用 acme。
4. 高级选项(可选):如 obfs 混淆、quic 参数、bandwidth 限速等,详情请查阅官方的 Full Server Config 文档。
5. 保存配置后,重启服务:
systemctl restart hysteria-server.service
并设置开机启动:
systemctl enable hysteria-server.service
6. 检查服务状态:
systemctl status hysteria-server.service
若显示运行中且无报错,则配置生效。
客户端接入(简要说明)
虽然本教程聚焦于服务端,但为了完整性,这里简要说明客户端的基本流程:
1. 在客户端设备下载对应平台的 Hysteria2 客户端。
2. 创建客户端配置文件 config.yaml,主要包含以下字段:
server: your.domain.com:443
auth: YourStrongPassword123
bandwidth:
up: 20 mbps
down: 100 mbps
socks5:
listen: 127.0.0.1:1080
http:
listen: 127.0.0.1:10809
server:服务端地址及端口。auth:与服务器端密码一致。bandwidth:可选,用于限制上行/下行带宽。socks5与http:指定本地监听代理端口。
3. 启动客户端,连接成功后即可通过本地 SOCKS5 或 HTTP 代理访问网络。
常见问题与排查
-
服务端启动失败或无法连接:
-
检查防火墙/安全组是否已开放 UDP 443(或你监听的端口)和 TCP 80(如果使用 acme HTTP 验证)。
-
检查域名是否正确解析到了服务器 IP。
-
检查
config.yaml中的密码、监听端口、证书路径是否正确。
-
-
客户端连接但网络慢/不稳定:
-
检查 VPS 网络质量。
-
若带宽设置过高或网络拥挤,建议适当调低客户端
bandwidth值。 -
查看服务端日志:
journalctl -u hysteria-server.service --no-pager -e
-
-
证书申请失败:
-
确保 TCP 80 端口未被其它服务使用。
-
若服务器在防火墙后或 NAT 情况复杂,可考虑使用 DNS-01 验证或手动 TLS 证书方式。
-
-
混淆/伪装不起作用:
-
若已启用
masquerade或obfs,客户端也需使用兼容设置。 -
检查网络是否因 QUIC 或 UDP 流量被限制,如 ISP 限制或校园网等。
-
总结
通过以上步骤,你可以在 Linux 系统上快速搭建一个基于 Hysteria2 的服务端。该服务具备高速、抗不稳定网络、隐蔽性高等优点,非常适合搭建个人代理或 梯子 服务。在实际应用中,你还可以结合流量监控、访问控制、带宽限制、ACL 路由等高级功能,进一步优化服务。随着服务运行,建议定期更新 Hysteria2 至最新版本,并备份配置文件与证书,以保障稳定性与安全性。