Skip to content
银河录像局gpt
山水云 机场

Hysteria2 自建服务器与高级配置完全指南(2026版)

发布时间:2026年7月8日

如果你已经读过 Hysteria 2 协议科普,知道它为什么快、为什么抗封锁,那这篇文章就是下一步——手把手教你从零搭建自己的 Hysteria2 服务器,并调到最优状态。

自建 Hysteria2 的核心优势:独享 IP(不被机场连累封号)、完全可控的配置(端口跳跃/混淆/带宽随心调)、成本极低(一台 ¥15/月的 VPS 就够)。本文覆盖从选购 VPS 到上线调优的全流程,不跳步骤。

前置阅读

本文假设你已了解 Hysteria2 的基本原理。如果是纯新手,建议先读 Hysteria 2 协议科普代理协议深度解析


🖥️ 一、准备工作:VPS 与域名

1.1 VPS 选购要点

自建 Hysteria2 对 VPS 的要求和普通代理不同——因为 Hysteria2 基于 UDP/QUIC,VPS 必须支持 UDP 且不被运营商 QoS 限速。

选购维度要求说明
虚拟化KVM / 独立服务器❌ OpenVZ 不支持(无法开 UDP 端口跳跃)
带宽≥ 500Mbps 优选Hysteria2 的暴力提速需要带宽余量
UDP 支持✅ 必须部分廉价 VPS 限制 UDP 流量
线路CN2 GIA / 软银 / IIJ 优选回程线路决定实际体验
地理位置日本/新加坡/美西按你的使用场景选择

廉价 VPS 的坑

  • OpenVZ 架构:无法配置端口跳跃,iptables NAT 模式受限,直接排除
  • UDP 限速:部分商家对 UDP 流量单独限速到 10-50Mbps,买之前查 TOS 或问客服
  • 共享 IP:同 IP 段有人滥用会导致整个段被 QoS,优选独享 IP 的商家

推荐 VPS 商家(2026年实测可用):

商家最低价线路UDP 表现
RackNerd$10/年起美西 CN2✅ 不限速
BandwagonHost(搬瓦工)$50/年CN2 GIA✅ 优质
DMIT$7/月日本软银✅ 优质
Vultr$3.5/月全球节点⚠️ 部分节点限 UDP

1.2 域名与 DNS

Hysteria2 强制要求 TLS 证书,所以你需要一个域名。

方案一:付费域名(推荐)

  • NamesiloCloudflare 购买一个 .xyz / .top 域名(约 ¥7/年)
  • 将 DNS 解析到 VPS 的 IP

方案二:免费域名

  • 使用 DuckDNS 获取免费动态域名(适合 IP 会变的情况)
  • 或使用自签证书(见下文,但抗封锁能力下降)

域名解析检查

配置 DNS 后,等待解析生效(通常几分钟到几小时),用以下命令确认:

bash
dig +short your-domain.com
# 应返回你的 VPS IP

🔧 二、一键安装 Hysteria2 服务端

2.1 官方一键脚本(推荐)

Hysteria2 官方提供了极其完善的一键安装脚本,支持自动配置证书、生成客户端配置:

bash
# 以 root 用户登录 VPS 后执行
bash <(curl -fsSL https://get.hy2.sh/)

脚本会自动完成:

  • ✅ 安装 Hysteria2 二进制文件
  • ✅ 申请 Let's Encrypt 证书(需要域名已解析)
  • ✅ 生成随机密码和客户端配置
  • ✅ 配置 systemd 服务并启动

安装完成后,终端会显示类似输出:

🎉 Hysteria2 安装成功!

客户端配置(复制到客户端使用):
hysteria2://[email protected]:443?sni=your-domain.com&insecure=0#My-Hy2-Server

配置文件位置:
  服务端:/etc/hysteria/config.yaml
  客户端:/etc/hysteria/client.yaml

2.2 手动安装(进阶用户)

如果你想完全控制安装过程:

bash
# 1. 下载二进制文件(以 amd64 为例)
wget https://github.com/apernet/hysteria/releases/latest/download/hysteria-linux-amd64 -O /usr/local/bin/hysteria
chmod +x /usr/local/bin/hysteria

# 2. 创建配置目录
mkdir -p /etc/hysteria

# 3. 创建 systemd 服务
cat > /etc/systemd/system/hysteria.service << 'EOF'
[Unit]
Description=Hysteria2 Server
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/hysteria server -c /etc/hysteria/config.yaml
Restart=on-failure
RestartSec=5
LimitNOFILE=infinity

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable hysteria

⚙️ 三、服务端配置详解

3.1 基础配置

编辑 /etc/hysteria/config.yaml

yaml
# 监听端口
listen: :443

# TLS 证书(Let's Encrypt 自动申请)
acme:
  domains:
    - your-domain.com
  email: [email protected]

# 密码认证
auth:
  type: password
  password: YourStrongPasswordHere  # 换成你自己的强密码

# 带宽提示(帮助客户端优化,填你 VPS 的实际带宽)
masquerade:
  type: proxy
  proxy:
    url: https://www.bing.com
    rewriteHost: true

3.2 端口跳跃(Port Hopping)—— 核心抗封锁

端口跳跃是 Hysteria2 最强的抗封锁特性之一。通过让流量在多个端口间随机跳跃,让 GFW 无法通过「封单端口」来阻断连接。

服务端配置:

yaml
listen: :20000-50000  # 监听 20000-50000 端口范围

防火墙放行(必须):

bash
# 放行 UDP 20000-50000 端口范围
# iptables 方式
iptables -I INPUT -p udp --dport 20000:50000 -j ACCEPT
ip6tables -I INPUT -p udp --dport 20000:50000 -j ACCEPT 2>/dev/null

# 持久化(Debian/Ubuntu)
apt install -y iptables-persistent
netfilter-persistent save

# 或者 ufw 方式
ufw allow 20000:50000/udp

客户端配置(配合端口跳跃):

# Shadowrocket URI 格式
hysteria2://[email protected]:20000?\
  mport=20000-50000\
  &sni=your-domain.com\
  &insecure=0\
  &obfs=salamander\
  &obfs-password=YourObfsPassword\
  #PortHopping-My-Hy2

端口范围怎么选?

  • 范围越大越抗封,但防火墙规则也越多
  • 推荐 20000-50000(3万个端口),平衡抗封锁和资源占用
  • 不要用 1-65535 全范围,会和其他服务冲突
  • 起始端口避开常用端口(22/80/443/3306 等)

3.3 Salamander 混淆

Salamander 是 Hysteria2 内置的流量混淆插件,可以将 QUIC 流量混淆成「无意义的随机 UDP 数据」,进一步降低被识别的概率。

服务端配置:

yaml
obfs:
  type: salamander
  salamander:
    password: YourObfsPassword  # 混淆密码,客户端必须一致

客户端配置中对应参数:

obfs=salamander
obfs-password=YourObfsPassword

混淆密码安全

混淆密码和服务端认证密码是两个不同的东西:

  • 认证密码password):用于验证客户端身份
  • 混淆密码obfs-password):用于流量混淆

两者可以不同,建议设置为不同的值以增加安全性。

3.4 Masquerade 伪装

Masquerade 让 Hysteria2 服务器在被主动探测时,表现得像一个正常的 HTTPS 网站——如果有人直接用浏览器访问你的服务器,会看到一个真实的网页,而不是连接错误。

yaml
masquerade:
  type: proxy
  proxy:
    url: https://www.bing.com     # 伪装成 Bing
    rewriteHost: true
  # 或者伪装成静态页面
  # type: file
  # file:
  #   dir: /etc/hysteria/masquerade
  #   statusCode: 200

伪装策略对比:

伪装类型优点缺点推荐度
proxy(代理真实网站)最真实,内容动态更新依赖目标网站可用性⭐⭐⭐⭐⭐
file(静态文件)完全自主可控需自己维护网页内容⭐⭐⭐
404 / 403简单太刻意,反而可疑⭐⭐

🚀 四、拥塞控制与性能调优

Hysteria2 支持两种拥塞控制算法,选择正确的算法对性能至关重要。

4.1 Brutal(暴力模式)—— 默认

Brutal 是 Hysteria2 自研的拥塞控制算法,也是它「歇斯底里」名字的由来。它忽略丢包信号,强制以指定带宽发送数据

yaml
# 服务端配置
bandwidth:
  up: 500 mbps    # 上行带宽(填 VPS 实际值)
  down: 500 mbps  # 下行带宽(填 VPS 实际值)
yaml
# 客户端配置
bandwidth:
  up: 100 mbps    # 上行(填你本地宽带上行)
  down: 500 mbps  # 下行(填你本地宽带下行)

Brutal 模式的双刃剑

Brutal 模式下,如果你填的带宽超过实际带宽,会导致严重丢包反而更慢

正确做法:

  • 服务端:填 VPS 实际带宽的 80-90%(留余量)
  • 客户端:填本地宽带实际值的 80-90%
  • 如果不确定,宁可填低不要填高

4.2 BBR 模式 —— 稳健选择

如果你的 VPS 带宽不稳定,或者网络丢包率很高(移动/铁通用户),BBR 模式可能比 Brutal 更稳:

yaml
# 客户端配置
bandwidth:
  up: 0    # 0 表示使用 BBR 而非 Brutal
  down: 0

两种模式对比:

维度BrutalBBR
速度上限高(暴力压榨)中(自适应)
弱网表现极强(无视丢包)强(自适应降速)
稳定性取决于带宽配置准确度更稳定
适合场景带宽稳定的 VPS带宽波动的 VPS
QoS 风险较高(暴力发送易触发限速)较低

怎么选?

  • VPS 带宽稳定 + 本地宽带稳定 → Brutal(最快)
  • VPS 带宽波动 / 移动网络用户 → BBR(更稳)
  • 不确定 → 先用 BBR,稳定后再试 Brutal

4.3 UDP 缓冲区调优

高带宽场景下,默认的 UDP 缓冲区可能不够,导致丢包:

bash
# 临时调整(重启失效)
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216

# 永久生效
cat >> /etc/sysctl.conf << 'EOF'
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.core.rmem_default=16777216
net.core.wmem_default=16777216
EOF
sysctl -p

4.4 完整服务端配置示例

以下是一个经过调优的完整配置,可直接使用:

yaml
# /etc/hysteria/config.yaml

listen: :20000-50000

acme:
  domains:
    - your-domain.com
  email: [email protected]

auth:
  type: password
  password: YourStrongPasswordHere

obfs:
  type: salamander
  salamander:
    password: YourObfsPassword

masquerade:
  type: proxy
  proxy:
    url: https://www.bing.com
    rewriteHost: true

bandwidth:
  up: 500 mbps
  down: 500 mbps

# 忽略客户端带宽配置(强制使用服务端值)
# ignoreClientBandwidth: true

# UDP 会话管理
quic:
  initStreamReceiveWindow: 8388608        # 8MB
  maxStreamReceiveWindow: 8388608
  initConnReceiveWindow: 20971520         # 20MB
  maxConnReceiveWindow: 20971520
  maxIdleTimeout: 30s
  maxIncomingStreams: 1024
  disablePathMTUDiscovery: false

📱 五、客户端配置

5.1 Shadowrocket(iOS)

类型: Hysteria2
地址: your-domain.com
端口: 20000
密码: YourStrongPasswordHere
混淆: salamander
混淆密码: YourObfsPassword
SNI: your-domain.com
允许不安全: 关闭
端口范围: 20000-50000

5.2 Clash Verge Rev / Mihomo

yaml
proxies:
  - name: "My-Hy2-Server"
    type: hysteria2
    server: your-domain.com
    port: 20000
    ports: 20000-50000       # 端口跳跃
    password: YourStrongPasswordHere
    obfs: salamander
    obfs-password: YourObfsPassword
    sni: your-domain.com
    skip-cert-verify: false
    up: "100 Mbps"
    down: "500 Mbps"

5.3 Hiddify / Sing-box

json
{
  "type": "hysteria2",
  "tag": "My-Hy2-Server",
  "server": "your-domain.com",
  "server_port": 20000,
  "hop_ports": "20000-50000",
  "password": "YourStrongPasswordHere",
  "obfs": {
    "type": "salamander",
    "password": "YourObfsPassword"
  },
  "tls": {
    "enabled": true,
    "server_name": "your-domain.com"
  },
  "up_mbps": 100,
  "down_mbps": 500
}

5.4 V2RayN(Windows)

V2RayN 通过 sing-box 内核支持 Hysteria2,在「添加服务器」中选择 Hysteria2 类型,填入对应参数即可。

详细操作参考 V2RayN 完整教程


🔄 六、从 Hysteria v1 迁移到 v2

如果你还在用 Hysteria v1,强烈建议迁移到 v2:

对比项Hysteria v1Hysteria v2
配置格式命令行参数YAML(更清晰)
混淆无内置Salamander 内置
伪装Masquerade 内置
端口跳跃需外部脚本原生支持
证书管理手动ACME 自动
拥塞控制BrutalBrutal + BBR

迁移步骤:

bash
# 1. 停止旧服务
systemctl stop hysteria

# 2. 重新安装 v2
bash <(curl -fsSL https://get.hy2.sh/)

# 3. 迁移配置(v1 的参数需要转换成 v2 的 YAML 格式)
# 4. 启动新服务
systemctl start hysteria

# 5. 更新客户端配置(v1 和 v2 的 URI 格式不同)

v1 和 v2 不兼容

Hysteria v1 和 v2 的协议不兼容,服务端和客户端必须同时升级。无法用 v1 客户端连 v2 服务端。


🩺 七、故障排除

7.1 连接超时 / 无法连接

可能原因排查方法解决方案
防火墙未放行 UDPiptables -L -n 检查规则放行对应端口范围
DNS 未生效dig your-domain.com等待 DNS 传播或检查解析
证书申请失败journalctl -u hysteria -e检查域名是否正确解析到本机
端口被占用ss -ulnp | grep 443换一个端口

7.2 速度慢 / 丢包高

bash
# 检查服务端日志
journalctl -u hysteria -f --no-pager

# 常见日志关键词:
# "packet loss too high" → 带宽配置过高,降低 bandwidth 值
# "congestion control" → 考虑切换到 BBR 模式
# "UDP buffer too small" → 调大 rmem/wmem(见 4.3)

调优检查清单:

  • [ ] bandwidth 配置是否准确(不超过实际带宽的 90%)
  • [ ] UDP 缓冲区是否调大(rmem/wmem ≥ 16MB)
  • [ ] 是否启用了 Salamander 混淆(减少 QoS 触发)
  • [ ] VPS 的 UDP 是否被限速(联系商家确认)

7.3 运营商 QoS 限速(UDP 限速)

这是 Hysteria2 最常见的问题——部分运营商(尤其是移动/铁通)会对 UDP 流量进行 QoS 限速,导致 Hysteria2 白天正常、晚高峰断崖式降速。

解决方案:

  1. 启用端口跳跃:让流量分散到多个端口,降低单端口被 QoS 的概率
  2. 启用 Salamander 混淆:让 UDP 流量看起来不像 QUIC
  3. 降低带宽配置:Brutal 模式下适当降低 bandwidth,减少触发 QoS 的概率
  4. 切换 BBR 模式:比 Brutal 更温和,不容易触发 QoS
  5. 备用 TCP 协议:准备一个 VLESS Reality 节点作为备用,UDP 被限时切换

运营商 QoS 的判断方法

如果你遇到「白天速度快、晚高峰(20:00-23:00)断崖式降速」,大概率是运营商 QoS。用以下方法验证:

  • 同时测试 TCP 协议(如 VLESS Reality)和 Hysteria2
  • 如果 TCP 正常但 Hy2 降速 → 运营商 UDP QoS
  • 如果两者都降速 → VPS 线路问题或 GFW 干扰

7.4 证书相关错误

错误原因解决方案
certificate verification failed域名未解析 / 证书过期检查 DNS 解析,重启服务重新申请
tls: handshake failureSNI 不匹配客户端 SNI 必须等于域名
acme: errorLet's Encrypt 限流等待 1 小时后重试,或用自签证书临时替代

自签证书(临时方案):

yaml
# 使用自签证书(降低安全性,仅临时使用)
tls:
  cert: /etc/hysteria/selfsigned.crt
  key: /etc/hysteria/selfsigned.key

# 客户端需要设置 insecure=1(关闭证书验证)

📊 八、自建 vs 机场:怎么选?

维度自建 Hysteria2机场订阅
月成本¥15-30(VPS)¥10-80
IP 质量独享,不被连累共享,可能被连累封号
节点数量1个(除非买多台 VPS)几十到上百个
配置灵活度完全可控固定套餐
技术门槛中高
维护成本需要定期维护
抗封锁恢复被封需手动换 IP机场自动换节点
速度取决于 VPS 带宽机场共享带宽

建议

  • 技术型用户 + 追求极致可控 → 自建 Hysteria2
  • 普通用户 + 要省心 → 机场订阅(参考 机场推荐
  • 最佳方案 → 自建 1 个 Hysteria2 做主力 + 机场订阅做备用,互补

📝 九、安全注意事项

  1. 密码强度:认证密码和混淆密码都应使用 16 位以上随机字符串
  2. 端口范围:不要全开 1-65535,避免和其他服务冲突
  3. 证书更新:Let's Encrypt 证书 90 天过期,systemd 会自动续期,确保服务常驻
  4. 日志安全:Hysteria2 默认不记录流量内容,但会记录连接 IP,注意隐私
  5. 防火墙:只放行必要的 UDP 端口,SSH(22)建议改为密钥登录 + 非 22 端口
bash
# 生成强密码
openssl rand -base64 24

# 生成混淆密码
openssl rand -base64 16

✅ 十、上线检查清单

部署完成后,逐项检查:

  • [ ] systemctl status hysteria 显示 active (running)
  • [ ] dig your-domain.com 返回正确的 VPS IP
  • [ ] 防火墙已放行 UDP 端口范围
  • [ ] UDP 缓冲区已调大(sysctl net.core.rmem_max
  • [ ] 客户端能正常连接并上网
  • [ ] 端口跳跃生效(客户端日志显示 port hopping)
  • [ ] Salamander 混淆启用(客户端和服务端密码一致)
  • [ ] Masquerade 伪装生效(浏览器直接访问域名显示 Bing 页面)
  • [ ] 速度测试达到预期(参考 测速教程
  • [ ] 晚高峰测试无明显降速

相关阅读


国家利益和民族团结高于一切

使用网络时请严格遵守国家法律法规规定,请勿从事色情、暴恐、破坏国家安全等违反国家法律的活动,科学上网,不谈政治,不谈宗教,不碰黄赌毒。龙的传人需自律,有损国家利益和民族团结的事情,坚决不做!