适用场景:个人自用 VPS。
当前方案:Hysteria2 作为高速 UDP 主协议,VLESS Reality TCP 作为蜂窝网络备用/默认协议。
当前示例域名:<YOUR_DOMAIN>
当前服务器 IP:<YOUR_IP>
当前系统:Debian GNU/Linux 13trixiex86_64
注意:本文档不包含真实 Hysteria2 密码、Reality UUID、PrivateKey、PublicKey、ShortId。
〇、当前最终目标状态h2
最终服务器状态:
系统:Debian 13 / Ubuntu 兼容域名:<YOUR_DOMAIN>IPv4:<YOUR_IP>
协议 1:Hysteria2监听:443/udp证书:Hysteria2 内置 ACME + Let's Encrypt认证:password用途:Wi-Fi / 宽带下高速使用
协议 2:VLESS Reality TCP监听:443/tcp服务:XrayReality 伪装目标:www.bing.com:443用途:蜂窝数据下备用或默认使用
客户端:Loon / Clash Party / Mihomo / Hiddify / Shadowrocket最终端口状态应为:
443/udp hysteria443/tcp xray80/tcp ACME HTTP-01 验证和续证使用检查命令:
ss -lntup | grep ':443'理想输出类似:
udp UNCONN *:443 hysteriatcp LISTEN *:443 xray一、系统初始化h2
登录服务器:
ssh root@<YOUR_IP>更新系统:
apt update && apt upgrade -y安装基础工具:
apt install -y curl wget sudo vim nano ufw fail2ban ca-certificates gnupg lsb-release unzip openssl dnsutils查看系统信息:
hostnamectluname -mip -br addr当前已验证环境:
Static hostname: InterServer-VPS-USOperating System: Debian GNU/Linux 13 (trixie)Kernel: Linux 6.12.x amd64Architecture: x86-64IPv4: <YOUR_IP>/24IPv6: <YOUR_IPv6_PREFIX>::/64二、DNS 解析h2
在 DNS 后台添加:
类型:A名称:hy2值:<YOUR_IP>代理状态:DNS only / 灰云如果使用 Cloudflare,必须保持:
DNS only / 灰云不要开橙云代理,因为普通 Cloudflare 代理不转发 Hysteria2 的 UDP 443,也不适合这种自建代理端口。
服务器验证:
dig +short A <YOUR_DOMAIN> @1.1.1.1理想输出:
<YOUR_IP>三、防火墙配置h2
开放 SSH:
ufw allow 22/tcp开放 Hysteria2 UDP 443:
ufw allow 443/udp开放 Reality TCP 443:
ufw allow 443/tcp开放 Hysteria2 ACME HTTP-01 需要的 80/tcp:
ufw allow 80/tcp启用防火墙:
ufw enable查看状态:
ufw status verbose当前建议状态:
22/tcp ALLOW IN80/tcp ALLOW IN443/udp ALLOW IN443/tcp ALLOW IN说明:
443/udp:Hysteria2443/tcp:Xray Reality80/tcp:Let's Encrypt HTTP-01 验证和续证四、安装 Hysteria2h2
执行官方安装脚本:
bash <(curl -fsSL https://get.hy2.sh/)查看版本:
hysteria version默认配置文件:
/etc/hysteria/config.yaml服务名称:
hysteria-server.service五、Hysteria2 正式配置:域名 + ACME 证书h2
设置邮箱变量:
ACME_EMAIL="你的邮箱"创建 ACME 目录并设置权限:
mkdir -p /etc/hysteria/acmechown -R hysteria:hysteria /etc/hysteria/acme如果已有旧配置,先备份:
cp /etc/hysteria/config.yaml /etc/hysteria/config.yaml.bak.$(date +%F-%H%M%S)生成 Hysteria2 密码:
HY2PASS=$(openssl rand -base64 24)echo "$HY2PASS"写入正式配置:
cat > /etc/hysteria/config.yaml <<'EOF'listen: :443
acme: domains: - <YOUR_DOMAIN> email: <YOUR_EMAIL> ca: letsencrypt type: http http: altPort: 80 dir: /etc/hysteria/acme
auth: type: password password: "<HY2_PASSWORD>"
masquerade: type: proxy proxy: url: https://www.bing.com rewriteHost: trueEOF修复权限:
chown hysteria:hysteria /etc/hysteria/config.yamlchmod 600 /etc/hysteria/config.yaml启动并重启服务:
systemctl enable --now hysteria-server.servicesystemctl restart hysteria-server.service查看状态:
systemctl status hysteria-server.service --no-pager -l如果日志出现:
certificate obtained successfullyserver up and running说明证书申请成功,服务正常。如果出现 WARN stapling OCSP,一般可以忽略,不影响连接。
六、Hysteria2 客户端信息h2
客户端连接信息:
server: <YOUR_DOMAIN>port: 443protocol: hysteria2password: <HY2_PASSWORD>sni: <YOUR_DOMAIN>skip-cert-verify: falseudp: truealpn: h3正式域名证书方案下,不需要:
insecure=1skip-cert-verify=truesni=www.bing.com服务器 IP 直连生成 Hysteria2 链接:
export HY2_DOMAIN="<YOUR_DOMAIN>"export HY2_PASS=$(awk -F'"' '/password:/ {print $2; exit}' /etc/hysteria/config.yaml)
python3 - <<'PY'import osfrom urllib.parse import quote
domain = os.environ["HY2_DOMAIN"]pw = os.environ["HY2_PASS"]
print()print("====== Hysteria2 域名证书链接 ======")print(f"hysteria2://{quote(pw, safe='')}@{domain}:443/?sni={domain}#InterServer-HY2")print("=====================================")print()PY七、安装 Xray,新增 VLESS Reality TCP 备用协议h2
7.1 为什么要加 Realityh3
实测结果:
Wi-Fi + Hysteria2:体验正常,4K 可用蜂窝数据 + Hysteria2:明显慢蜂窝数据直连:不慢蜂窝数据 + Reality TCP:速度恢复,4K 可用判断:蜂窝网络对 UDP/Hysteria2 链路不友好,TCP 443 Reality 更适合蜂窝环境。
最终搭配:
Hysteria2:443/udp,适合 Wi-Fi / 宽带VLESS Reality:443/tcp,适合蜂窝数据 / 备用默认两个协议可以同时使用 443,因为一个是 UDP,一个是 TCP,不冲突。
7.2 安装 Xrayh3
执行:
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install查看版本:
xray version默认配置文件:
/usr/local/etc/xray/config.json服务名称:
xray.service7.3 生成 Reality 参数h3
生成 UUID:
cat /proc/sys/kernel/random/uuid生成 X25519 密钥:
xray x25519新版 Xray 可能输出类似:
PrivateKey: <PRIVATE_KEY>Password (PublicKey): <PUBLIC_KEY>Hash32: <HASH32>对应关系:
PrivateKey:服务端 config.json 使用Password (PublicKey):客户端 Loon / Mihomo 使用,也就是 Public KeyHash32:本次配置不用填生成 ShortId:
openssl rand -hex 8得到 16 位十六进制字符串,例如:
9f3a1b2c4d5e6f707.4 写入 Xray Reality 配置h3
编辑配置:
nano /usr/local/etc/xray/config.json写入:
{ "log": { "loglevel": "warning" }, "inbounds": [ { "tag": "vless-reality-tcp-443", "listen": "0.0.0.0", "port": 443, "protocol": "vless", "settings": { "clients": [ { "id": "<UUID>", "flow": "xtls-rprx-vision" } ], "decryption": "none" }, "streamSettings": { "network": "tcp", "security": "reality", "realitySettings": { "show": false, "dest": "www.bing.com:443", "xver": 0, "serverNames": [ "www.bing.com" ], "privateKey": "<PRIVATE_KEY>", "shortIds": [ "<SHORT_ID>" ] } } } ], "outbounds": [ { "protocol": "freedom", "tag": "direct" } ]}测试配置:
xray run -test -config /usr/local/etc/xray/config.json理想输出:
Configuration OK.7.5 Xray systemd 注意事项h3
如果 Xray 服务启动了但没有监听 443/tcp,检查:
systemctl cat xray如果服务使用:
User=nobody可能无法绑定低端口。可以改为 root:
nano /etc/systemd/system/xray.service将:
User=nobody改为:
User=root重载并重启:
systemctl daemon-reloadsystemctl restart xraysystemctl status xray --no-pager -l检查监听:
ss -lntup | grep xray理想输出:
tcp LISTEN *:443 users:(("xray",pid=...,fd=...))再检查双协议:
ss -lntup | grep ':443'理想输出:
udp UNCONN *:443 hysteriatcp LISTEN *:443 xray八、Reality 客户端信息h2
客户端连接信息:
协议:VLESS地址:<YOUR_DOMAIN>端口:443传输:tcp安全:realityUUID:<UUID>Flow:xtls-rprx-visionSNI / Server Name:www.bing.comFingerprint:chromePublic Key:<PUBLIC_KEY>Short ID:<SHORT_ID>注意:
客户端填 Public Key,不填 PrivateKey客户端填 Short ID,不填 Hash32SNI 填 www.bing.com,不填 <YOUR_DOMAIN>VLESS URI 模板:
vless://<UUID>@<YOUR_DOMAIN>:443?encryption=none&security=reality&sni=www.bing.com&fp=chrome&pbk=<PUBLIC_KEY>&sid=<SHORT_ID>&type=tcp&flow=xtls-rprx-vision#InterServer-Reality如果 Loon 不支持 URL 直接导入,就手动在配置 [Proxy] 中添加节点行。
九、Loon 完整配置思路h2
当前 iPhone 端最终策略:
默认代理:InterServer-Reality备用代理:InterServer-HY2国内:DIRECTApple / Microsoft / OneDrive:默认 DIRECTFinal:PROXY使用逻辑:
蜂窝数据:默认 Reality,速度更稳定Wi-Fi:Reality 默认可用;如果 HY2 更快,可手动切 HY2国内 App:规则直连Loon [Proxy] 节点示例:
[Proxy]InterServer-HY2 = Hysteria2,<YOUR_DOMAIN>,443,"<HY2_PASSWORD>",sni=<YOUR_DOMAIN>,skip-cert-verify=false,udp=true,block-quic=false,ip-mode=v4-onlyInterServer-Reality = VLESS,<YOUR_DOMAIN>,443,"<UUID>",transport=tcp,flow=xtls-rprx-vision,public-key="<PUBLIC_KEY>",short-id=<SHORT_ID>,udp=true,block-quic=false,over-tls=true,sni=www.bing.comLoon [Proxy Group] 推荐:
[Proxy Group]PROXY = select,InterServer-Reality,InterServer-HY2,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/Proxy.pngAI = select,PROXY,InterServer-Reality,InterServer-HY2,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/ChatGPT.pngYouTube = select,PROXY,InterServer-Reality,InterServer-HY2,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/YouTube.pngGoogle = select,PROXY,InterServer-Reality,InterServer-HY2,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/Google_Search.pngGitHub = select,PROXY,InterServer-Reality,InterServer-HY2,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/GitHub.pngDev = select,PROXY,InterServer-Reality,InterServer-HY2,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/Developer.pngSteam = select,PROXY,InterServer-Reality,InterServer-HY2,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/Steam.pngGame = select,PROXY,InterServer-Reality,InterServer-HY2,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/Game.pngStreaming = select,PROXY,InterServer-Reality,InterServer-HY2,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/Streaming.pngSocial = select,PROXY,InterServer-Reality,InterServer-HY2,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/Global.pngTelegram = select,PROXY,InterServer-Reality,InterServer-HY2,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/Telegram.pngX = select,PROXY,InterServer-Reality,InterServer-HY2,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/Twitter.pngScholar = select,PROXY,InterServer-Reality,InterServer-HY2,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/Scholar.pngPayment = select,PROXY,InterServer-Reality,InterServer-HY2,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/PayPal.pngApple = select,DIRECT,PROXY,InterServer-Reality,InterServer-HY2,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/Apple.pngMicrosoft = select,DIRECT,PROXY,InterServer-Reality,InterServer-HY2,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/Microsoft.pngOneDrive = select,DIRECT,PROXY,InterServer-Reality,InterServer-HY2,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/OneDrive.pngDomestic = select,DIRECT,PROXY,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/China_Map.pngAdBlock = select,REJECT,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/Advertising.pngFinal = select,PROXY,DIRECT,img-url = https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/Final.pngLoon 使用建议:
模式:Rule / 规则PROXY:默认选择 InterServer-RealityHY2:作为备用Apple / Microsoft / OneDrive:默认 DIRECTDomestic:DIRECTFinal:PROXY十、Mihomo / Clash Party 配置h2
Hysteria2 节点示例:
proxies: - name: InterServer-HY2 type: hysteria2 server: <YOUR_DOMAIN> port: 443 password: "<HY2_PASSWORD>" sni: <YOUR_DOMAIN> skip-cert-verify: false alpn: - h3 udp: trueVLESS Reality 节点示例:
proxies: - name: InterServer-Reality type: vless server: <YOUR_DOMAIN> port: 443 uuid: <UUID> network: tcp tls: true udp: true flow: xtls-rprx-vision servername: www.bing.com client-fingerprint: chrome reality-opts: public-key: <PUBLIC_KEY> short-id: <SHORT_ID>推荐策略:
proxy-groups: - name: PROXY type: select proxies: - InterServer-Reality - InterServer-HY2 - DIRECT十一、无桌面 Linux 使用 Mihomoh2
适用场景:无桌面 Linux、服务器、NAS、本地命令行环境。
配置位置:
/etc/mihomo/config.yamlsystemd 服务示例:
[Unit]Description=Mihomo ServiceAfter=network-online.targetWants=network-online.target
[Service]Type=simpleUser=rootExecStart=/usr/local/bin/mihomo -d /etc/mihomoRestart=on-failureRestartSec=5LimitNOFILE=1048576
[Install]WantedBy=multi-user.target启动:
systemctl daemon-reloadsystemctl enable --now mihomo终端代理:
export http_proxy=http://127.0.0.1:7890export https_proxy=http://127.0.0.1:7890export all_proxy=socks5h://127.0.0.1:7890测试:
curl https://ipinfo.io如果显示 InterServer / Los Angeles / <YOUR_IP>,说明代理生效。
十二、网络优化h2
12.1 UDP 缓冲优化h3
cat > /etc/sysctl.d/99-hysteria2.conf <<'EOF'net.core.rmem_max=16777216net.core.wmem_max=16777216EOF
sysctl --system确认:
sysctl net.core.rmem_max net.core.wmem_max理想输出:
net.core.rmem_max = 16777216net.core.wmem_max = 1677721612.2 TCP BBRh3
Reality / Trojan / TCP 备用协议建议开启 BBR:
cat > /etc/sysctl.d/99-network-tuning.conf <<'EOF'net.core.rmem_max=16777216net.core.wmem_max=16777216net.core.default_qdisc=fqnet.ipv4.tcp_congestion_control=bbrEOF
sysctl --system确认:
sysctl net.ipv4.tcp_congestion_control net.core.default_qdisc理想输出:
net.ipv4.tcp_congestion_control = bbrnet.core.default_qdisc = fq十三、状态检查命令h2
Hysteria2 状态:
systemctl status hysteria-server.service --no-pager -lXray 状态:
systemctl status xray --no-pager -l查看日志:
journalctl -u hysteria-server.service -n 80 --no-pager -ljournalctl -u xray -n 80 --no-pager -l查看端口:
ss -lntup | grep ':443'ss -lntp | grep ':80'查看防火墙:
ufw status verbose查看配置:
cat /etc/hysteria/config.yamlcat /usr/local/etc/xray/config.json测试 Xray 配置:
xray run -test -config /usr/local/etc/xray/config.json备份配置:
cp /etc/hysteria/config.yaml /etc/hysteria/config.yaml.bak.$(date +%F-%H%M%S)cp /usr/local/etc/xray/config.json /usr/local/etc/xray/config.json.bak.$(date +%F-%H%M%S)十四、常见问题h2
14.1 Hysteria2 服务启动失败:permission deniedh3
修复:
chown hysteria:hysteria /etc/hysteria/key.pem /etc/hysteria/cert.pem /etc/hysteria/config.yamlchmod 600 /etc/hysteria/key.pemchmod 644 /etc/hysteria/cert.pemchmod 600 /etc/hysteria/config.yamlsystemctl restart hysteria-server.service当前正式 ACME 配置没有 /etc/hysteria/server.crt 或 /etc/letsencrypt/live/... 路径,证书由 Hysteria2 内置 ACME 管理在:
/etc/hysteria/acme14.2 Xray active 但没监听 443/tcph3
检查:
ss -lntup | grep xraysystemctl cat xrayjournalctl -u xray -n 100 --no-pager如果使用 User=nobody,尝试改为:
User=root然后:
systemctl daemon-reloadsystemctl restart xrayss -lntup | grep ':443'理想状态:
tcp LISTEN *:443 xray14.3 Reality 客户端连接失败h3
重点检查:
UUID 是否和服务端 clients.id 一致Public Key 是否使用 xray x25519 输出的 Password (PublicKey)是否错误使用了 Hash32Short ID 是否使用服务端 shortIdsSNI 是否为 www.bing.comFlow 是否为 xtls-rprx-vision端口是否为 443传输是否为 tcp特别注意:
SNI:www.bing.com不是:<YOUR_DOMAIN>14.4 Loon URL 导入不支持h3
如果 Loon 不支持直接导入 vless://,可以在配置文本 [Proxy] 下手动添加:
InterServer-Reality = VLESS,<YOUR_DOMAIN>,443,"<UUID>",transport=tcp,flow=xtls-rprx-vision,public-key="<PUBLIC_KEY>",short-id=<SHORT_ID>,udp=true,block-quic=false,over-tls=true,sni=www.bing.com14.5 蜂窝数据下 HY2 慢h3
现象:
Wi-Fi + HY2 正常蜂窝 + HY2 慢蜂窝直连不慢处理:
优先使用 InterServer-RealityHY2 保留为 Wi-Fi 或备用不建议继续反复调整 HY2 的 block-quic,实测对该问题帮助不明显。
14.6 中文配置文件乱码h3
Sublime 保存配置时建议:
File -> Save with Encoding -> UTF-8给 Loon / iPhone / Linux 用,优先使用 UTF-8,不要保存为 GBK。
十五、当前推荐客户端h2
Windows:Clash Party / Clash Verge Rev / HiddifyLinux CLI:Mihomo systemdLinux 桌面:Clash Party / Mihomo GUImacOS:Clash Party / Clash Verge Rev / Loon 生态客户端iPhone:Loon 优先,Shadowrocket / Hiddify 备用Android:Hiddify / FlClash当前已验证:
Clash Party + Mihomo YAML:HY2 正常无桌面 Linux + Mihomo:正常Loon + HY2:Wi-Fi 正常Loon + Reality:蜂窝速度恢复,4K 可用十六、安全建议h2
不要公开:
HY2 passwordReality UUIDReality PrivateKeyReality PublicKeyReality ShortId完整 Loon 配置完整 Mihomo 配置如果需要让 AI 帮忙改配置,用这些占位符:
<HY2_PASSWORD><UUID><PRIVATE_KEY><PUBLIC_KEY><SHORT_ID>配置文件权限:
chown hysteria:hysteria /etc/hysteria/config.yamlchmod 600 /etc/hysteria/config.yamlchmod 600 /usr/local/etc/xray/config.json自动安全更新:
apt install -y unattended-upgradesdpkg-reconfigure -plow unattended-upgrades选择:
Yes十七、回滚方案h2
停用 Reality,不影响 HY2:
systemctl stop xraysystemctl disable xray确认 HY2 仍在:
systemctl status hysteria-server.service --no-pager -lss -lntup | grep ':443'只要看到:
udp *:443 hysteriaHysteria2 仍然正常。
一般不建议停用 HY2,只保留 Reality。HY2 在 Wi-Fi / 宽带下体验很好,建议保留作为备用。
十八、当前结论h2
最终推荐使用方式:
默认:InterServer-Reality备用:InterServer-HY2国内:DIRECTApple / Microsoft / OneDrive:DIRECTFinal:PROXY原因:
Reality TCP 443 在蜂窝数据下明显更稳,速度已恢复到 4K 可用HY2 UDP 443 在 Wi-Fi / 宽带下表现很好,可作为高速备用两者同端口不同协议,不冲突