本文记录如何使用自己的域名和 VPS 搭建 Hysteria2 服务端。示例中使用的子域名是:

1
hy2.example.com

请把文中的域名、邮箱和 VPS IP 替换成你自己的真实信息。

本文只适合合法自用、远程办公、授权测试和个人网络环境优化。不要用于违法用途,也不要用于违反服务条款的场景。

一、准备工作

开始之前,你需要准备好以下内容:

  • 一个自己的域名;
  • 一台 VPS,系统建议 Debian 或 Ubuntu;
  • VPS 的公网 IPv4 地址;
  • 可以 SSH 登录 VPS 的 root 权限;
  • 域名 DNS 管理权限,例如 Cloudflare。

本文默认使用的服务端域名是:

1
hy2.example.com

后面所有命令里的 hy2.example.com[email protected]你的VPS_IP 都需要替换。

二、进入 DNS 设置页面

先找到你的域名 DNS 设置页面。

如果你使用 Cloudflare,常见路径是:

1
网站 -> DNS -> Records

进入 DNS Records 页面后,准备添加一条新的 DNS 记录。

三、添加子域名解析

添加一条 A 记录:

类型 名称 内容 TTL 代理状态
A hy2 你的 VPS IPv4 地址 Auto 或 300 DNS only / 灰云

示例:

类型 名称 内容 TTL 代理状态
A hy2 123.123.123.123 Auto DNS only

这里的最终访问域名就是:

1
hy2.example.com

注意,Cloudflare 里一定不要开启橙云代理,要保持 DNS only,也就是灰云状态。

原因很简单:普通 Cloudflare CDN 不会直接代理 Hysteria2 的 UDP 443 流量。开启橙云后,客户端连接到的是 Cloudflare,而不是你的 VPS,Hysteria2 会连不上。

四、等待 DNS 生效

添加 DNS 记录后,等待几分钟。

可以在本地电脑或 VPS 上测试:

1
ping hy2.example.com

如果能解析到你的 VPS IPv4 地址,说明 DNS 已经生效。

如果暂时没有解析到,先等几分钟再试。DNS 生效时间和本地缓存、运营商缓存、域名服务商有关。

五、SSH 登录 VPS

DNS 准备好后,SSH 登录 VPS:

1
ssh root@你的VPS_IP

示例:

1
ssh [email protected]

登录后再继续执行下面的命令。

六、更新系统并安装基础工具

先更新系统:

1
apt update && apt upgrade -y

安装基础工具:

1
apt install -y curl wget nano openssl ca-certificates

这些工具后面会用于下载安装脚本、编辑配置文件、生成随机密码和处理证书相关请求。

七、开启 BBR 网络优化

BBR 不是 Hysteria2 的必需项,因为 Hysteria2 主要使用 UDP/QUIC,net.ipv4.tcp_congestion_control=bbr 直接优化的是 TCP 拥塞控制。

不过 VPS 上通常还会跑 SSH、证书申请、网站伪装页、订阅服务或其他 TCP 服务,所以建议把 BBR 作为基础网络优化一起开启。

先写入 BBR 配置。注意:请点击代码块右上角的复制按钮完整复制,确保粘贴到终端时包含换行。下面这一段要从第一行复制到 EOF,作为一个整体执行:

1
2
3
4
tee /etc/sysctl.d/99-bbr.conf > /dev/null <<'EOF'
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF

再应用系统参数:

1
sysctl --system

检查是否生效:

1
2
3
sysctl net.ipv4.tcp_congestion_control
sysctl net.core.default_qdisc
lsmod | grep bbr

正常情况下可以看到类似结果:

1
2
3
net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc = fq
tcp_bbr

如果 lsmod | grep bbr 没有输出,但前面的 sysctl 已经显示 bbr,通常也可以继续部署。部分内核会把 BBR 编进内核,不一定以模块形式显示。

八、安装并配置 UFW 防火墙

Debian 或 Ubuntu 可以直接安装 UFW:

1
2
apt update
apt install -y ufw

然后放行必要端口:

1
2
3
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/udp

启用 UFW:

1
ufw enable

查看状态:

1
ufw status

注意:一定要先放行 22/tcp,再执行 ufw enable。否则启用防火墙后,SSH 可能会被阻断。

如果你的 VPS 服务商还有额外的安全组、防火墙或云防火墙,也需要同步放行:

  • 22/tcp:SSH 登录;
  • 80/tcp:ACME 证书申请;
  • 443/udp:Hysteria2 连接端口。

九、安装 Hysteria2

执行官方安装脚本:

1
bash <(curl -fsSL https://get.hy2.sh/)

安装完成后,生成认证密码和混淆密码:

1
2
AUTH=$(openssl rand -base64 32)
OBFS=$(openssl rand -base64 32)

这两个变量会写入 Hysteria2 配置文件。

十、创建 Hysteria2 配置文件

执行下面的命令创建配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
cat > /etc/hysteria/config.yaml <<EOF
listen: ":443"

acme:
domains:
- hy2.example.com
email: [email protected]

auth:
type: password
password: "$AUTH"

obfs:
type: salamander
salamander:
password: "$OBFS"

masquerade:
type: proxy
proxy:
url: "https://www.microsoft.com/"
rewriteHost: true
EOF

echo "auth password: $AUTH"
echo "obfs password: $OBFS"

这里需要替换两处:

1
2
hy2.example.com
[email protected]

hy2.example.com 改成你自己的 Hysteria2 子域名,[email protected] 改成你的邮箱。

命令执行完成后,终端会输出两项重要信息:

1
2
auth password: xxxxx
obfs password: xxxxx

请保存好这两个密码,后面配置客户端时会用到。

十一、检查配置文件

写入配置后,先检查一下文件内容:

1
cat -n /etc/hysteria/config.yaml

重点确认下面几项:

  • 域名是否是你的真实域名;
  • 邮箱是否填写正确;
  • listen 是否是 ":443"
  • auth.password 是否已经生成;
  • obfs.salamander.password 是否已经生成;
  • YAML 缩进是否正常。

十二、重启并检查服务

重启 Hysteria2 服务:

1
systemctl restart hysteria-server.service

查看服务状态:

1
systemctl status hysteria-server.service

如果正常运行,应该可以看到类似状态:

1
Active: active (running)

这表示 Hysteria2 服务端已经启动成功。

十三、常见问题排查

1. 服务没有启动成功

查看服务日志:

1
journalctl -u hysteria-server.service -e

优先检查:

  • DNS 是否已经解析到 VPS;
  • Cloudflare 是否保持灰云;
  • VPS 防火墙是否放行 80/tcp443/udp
  • 云厂商安全组是否放行 443/udp
  • 配置文件缩进是否正确;
  • 邮箱和域名是否填写正确。

2. 客户端无法连接

先检查 UFW:

1
ufw status

确认里面有:

1
443/udp

然后再检查 Cloudflare DNS 记录,代理状态必须是:

1
DNS only

也就是灰云,不能是橙云。

3. 域名能 ping 通但服务仍然连不上

ping 只能说明域名解析到了某个 IP,并不代表 UDP 443 一定通。

继续检查:

  • VPS 系统防火墙;
  • VPS 服务商安全组;
  • Hysteria2 服务状态;
  • Hysteria2 日志;
  • 客户端里的认证密码和混淆密码是否填写正确。

总结

整个流程可以概括为:

  1. 在 Cloudflare 添加 hy2 的 A 记录;
  2. 代理状态保持 DNS only,不要开启橙云;
  3. 等待 DNS 解析生效;
  4. SSH 登录 VPS;
  5. 安装基础工具;
  6. 开启 BBR 基础网络优化;
  7. 安装 UFW,并放行 22/tcp80/tcp443/udp
  8. 安装 Hysteria2;
  9. 写入 /etc/hysteria/config.yaml
  10. 重启并检查 hysteria-server.service

最后服务状态显示:

1
Active: active (running)

就说明 Hysteria2 服务端已经正常运行,可以继续配置客户端。