Hysteria 2 部署教程:Ubuntu 24.04 服务端与官方客户端连接
面向首次自建 Hysteria 2 的读者,介绍如何在 Ubuntu 24.04 LTS VPS 上核对域名与端口、部署服务端,并用官方客户端建立本地 SOCKS5 代理。还涵盖请求验证、日志排障、升级和卸载。
这份 Hysteria 2 部署教程以 Ubuntu 24.04 LTS VPS 为例:确认域名解析与端口可达后,安装并配置服务端,再用官方客户端建立仅供本机使用的 SOCKS5 代理。完成标准是服务端正常运行、客户端日志显示已连接,并且测试请求能通过本地代理发出。本文不涉及站内客户端附件或订阅服务。
准备域名和端口
准备一台有公网 IP、可使用 systemd 且已安装 curl 的 Ubuntu 24.04 LTS VPS,并将自有域名的 A 记录指向该 VPS。若配置了 AAAA 记录,也要确认 IPv6 指向这台服务器且可达;否则先移除错误记录。可在本机运行以下命令检查解析结果,并与 VPS 公网地址核对。
dig +short A hy2.example.com
dig +short AAAA hy2.example.com将全文的 hy2.example.com 换成你的域名。本例使用 UDP 443 承载 Hysteria 连接,使用 TCP 80 完成 ACME HTTP 证书验证:两者协议不同,不能只放行其中一个。确认 VPS 提供商允许入站 UDP 443 和 TCP 80,且 TCP 80 没有被其他程序占用。若选择 ACME TLS-ALPN 验证,则需让公网 TCP 443 到达验证服务,并处理端口占用或转发;它不能直接替代本例的 HTTP 验证配置。服务端配置说明
安装并配置服务端
通过 SSH 登录 VPS,先进入有权限的 bash,再运行官方安装脚本。脚本安装程序和 systemd 服务,但只生成示例配置;安装结束后仍须手动配置。执行远程脚本前,应确认下载地址是官方地址。
sudo -i
bash <(curl -fsSL https://get.hy2.sh/)
nano /etc/hysteria/config.yaml将配置文件内容改为下例。把域名、邮箱和密码分别替换为自己的值;密码应使用独立的强密码,并在客户端填写完全相同的内容。不要在服务端同时配置 acme 和 tls。服务端配置字段
listen: :443
acme:
domains:
- hy2.example.com
email: admin@example.com
type: http
auth:
type: password
password: "replace-with-your-strong-password"保存后,检查 VPS 提供商的防火墙和系统防火墙。若系统使用 UFW,先确认现有 SSH 放行规则,避免启用防火墙后失去远程连接;再添加本例所需规则。未使用 UFW 时,在实际使用的防火墙中放行相同的协议和端口。
ufw status verbose
ufw allow 443/udp
ufw allow 80/tcp仍在有权限的 bash 中启动服务并检查状态。正常情况下,状态应显示 active (running)。若启动失败,先查看下文的服务端日志,重点检查配置格式、端口占用和证书验证条件。服务管理命令
systemctl enable --now hysteria-server.service
systemctl status hysteria-server.service连接官方客户端
在要使用代理的本机,从官方安装页面进入发布渠道,下载与操作系统和 CPU 架构匹配的可执行文件。下面以 Linux x86-64 的 hysteria-linux-amd64 为例;若文件名或平台不同,启动命令也要相应调整。若找不到匹配文件,先核对本机系统和架构,不要把 VPS 的架构当作客户端架构。
在客户端可执行文件所在目录创建 config.yaml。server 使用证书对应的域名和服务端 UDP 端口,auth 与服务端密码一致。SOCKS5 只监听 127.0.0.1,避免将无认证的本地代理暴露到网络。官方客户端配置
server: hy2.example.com:443
auth: "replace-with-your-strong-password"
socks5:
listen: 127.0.0.1:1080在该目录启动客户端,显式指定 client 模式和配置文件。首次运行时若提示没有执行权限,先为下载的文件添加执行权限。终端需保持运行;出现“connected to server”且没有后续错误,表示客户端已建立连接,但仍需发起经过代理的请求验证。
chmod +x ./hysteria-linux-amd64
./hysteria-linux-amd64 client -c config.yaml验证与排障
保持客户端运行,在本机另开终端,明确指定 SOCKS5 代理发起 HTTPS 请求。命令能收到目标站点的响应,才说明这次请求经过了本地代理;单看服务状态或客户端连接日志不足以验证代理请求。以下命令中的测试网址可换成你信任的可访问站点。
curl --proxy socks5h://127.0.0.1:1080 -I https://example.com/客户端无法连接:先核对域名 A、AAAA 记录和 VPS 公网地址,再检查提供商防火墙与系统防火墙是否都放行 UDP 443,以及服务是否正在运行。
服务启动或证书申请失败:检查域名是否指向该 VPS、公网 TCP 80 是否可达,以及是否有其他程序占用 TCP 80。本例使用 HTTP 验证,开放 TCP 443 不能代替 TCP 80。
提示认证失败:逐字核对服务端 auth.password 与客户端 auth;不要通过关闭证书验证来处理密码或网络问题。
客户端已连接但请求失败:确认测试命令使用的是 socks5h://127.0.0.1:1080,并检查客户端终端输出及服务端日志。
在 VPS 的有权限 bash 中查看最近的服务端日志,将报错时间与客户端尝试连接的时间对照。官方日志命令
journalctl --no-pager -e -u hysteria-server.service升级与卸载
需要升级时,在 VPS 上先进入有权限的 bash,再运行同一官方脚本。升级后检查服务状态;修改配置后则重启服务并再次验证客户端连接。
sudo -i
bash <(curl -fsSL https://get.hy2.sh/)
systemctl restart hysteria-server.service
systemctl status hysteria-server.service确定不再使用服务时,在有权限的 bash 中运行卸载命令。卸载前自行备份需要保留的配置和凭据;完成后检查服务及防火墙规则,按实际需要清理此前开放的端口。
sudo -i
bash <(curl -fsSL https://get.hy2.sh/) --remove继续阅读
需要更多帮助时,可以查看更多使用指南,或前往注册页面开始使用。