3X-UI + Hysteria2 端口跳跃 + Clash 订阅 + BBRv3 完整部署教程
最终效果:在一台 Debian / Ubuntu VPS 上完成 3X-UI 管理面板、Clash/Mihomo 订阅、Hysteria2 UDP 端口跳跃,并按需安装 BBRv3 TCP 内核。每一步都包含命令、预期结果、验证方法和常见错误。
Linux 内核的 TCP BBRv3 只作用于 TCP 拥塞控制;Hysteria2 使用 QUIC/UDP,因此 BBRv3 不会直接“加速 Hysteria2”。本文把它们放在一起,是因为一台 VPS 往往同时承载 TCP 与 UDP 服务:Hysteria2 的稳定性优化主要来自 UDP/QUIC 与端口跳跃,BBRv3 则用于 TCP 业务。
先看最终链路,避免把端口跳跃和 BBR 混在一起
准备 VPS 与系统环境
| 项目 | 建议 |
|---|---|
| 系统 | 如果计划安装本文 BBRv3 脚本,建议 Ubuntu 24.04+ 或 Debian 12+ |
| 权限 | root 或可 sudo 的管理员 |
| 网络 | 公网 IPv4/IPv6 均可;Hysteria2 需要 UDP 可达 |
| 救援能力 | 安装第三方内核前确认 VPS 控制台、救援模式或旧内核启动项可用 |
cat /etc/os-release
uname -m
uname -r
ss -lntup
iptables --version 2>/dev/null || true
nft --version 2>/dev/null || true安装 3X-UI,并记录随机登录信息
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)当前官方安装器会生成随机用户名、密码和 Web Base Path。安装完成后不要急着创建节点,先保存终端打印出的登录信息。
x-ui
保留随机 Web Base Path,并优先给面板配置 TLS 或反向代理。不要把默认/简单路径和弱密码暴露在公网。
开启订阅,并启用 Clash / Mihomo 输出
进入 Settings → Subscription。3X-UI 的订阅服务独立于面板服务,官方当前支持原始链接、Xray JSON 和 Clash/Mihomo YAML 三种主要输出。
| 配置 | 用途 |
|---|---|
subEnable | 开启订阅服务 |
subClashEnable | 开启 Clash / Mihomo YAML 输出 |
subPort | 订阅服务器监听端口;不同版本文档示例可能不同,直接以你当前面板显示值为准 |
subPath | 原始订阅路径 |
subClashPath | Clash / Mihomo 路径 |
订阅内容包含完整连接参数,建议给订阅服务器配置 HTTPS 或放到可信反向代理后面,不要长期使用明文 HTTP。
创建 Hysteria2 入站,先只使用一个 UDP 端口
在 Inbounds → Add Inbound 中选择 Hysteria2。本文继续沿用原教程的示例端口 12448/UDP,你也可以换成自己的未占用 UDP 端口。
| 项目 | 示例 |
|---|---|
| 协议 | Hysteria2 |
| 监听端口 | 12448 |
| 传输 | UDP / QUIC |
| TLS / SNI | 按你的证书与域名配置 |
ss -lunp | grep ':12448'给 Hysteria2 配置 UDP 端口跳跃
20000-50000/UDP 中的任意端口,服务器统一重定向到 Hysteria2 的真实监听端口 12448。原教程使用 iptables REDIRECT,这种方式适合 3X-UI / Xray 仍然只监听单个 UDP 端口的场景。
iptables -t nat -I PREROUTING 1 \
-p udp --dport 20000:50000 \
-j REDIRECT --to-ports 1244820000:50000 是对外跳跃端口范围;12448 是 3X-UI 里 Hysteria2 入站的真实端口。改了其中一个,另外的配置也必须同步。
iptables -t nat -L PREROUTING -n -v --line-numbers20000:50000 → 12448 的 REDIRECT 规则。保存防火墙规则,避免服务器重启后失效
apt update
apt install -y iptables iptables-persistent
netfilter-persistent save如果你还没有创建跳跃规则,可以完整执行:
apt update
apt install -y iptables iptables-persistent
iptables -t nat -A PREROUTING \
-p udp --dport 20000:50000 \
-j REDIRECT --to-ports 12448
netfilter-persistent save系统 iptables 配好了,不代表云平台外层防火墙已经放行。请同时检查安全组 / Firewall 是否允许你实际使用的 UDP 范围。
客户端使用端口范围,并理解跳跃间隔
Hysteria2 官方支持在客户端地址中直接使用端口范围,例如:
server: example.com:20000-50000
transport:
type: udp
udp:
hopInterval: 30s官方当前还支持随机跳跃间隔:
transport:
type: udp
udp:
minHopInterval: 15s
maxHopInterval: 45s并不是所有 share link / URI 格式都能无损表达端口范围。若 Clash/Mihomo 订阅生成的配置仍然是单端口,请按客户端能力手动改为端口范围,不要假设所有客户端都会自动识别。
验证 Hysteria2 端口跳跃真的在工作
watch -n 2 "iptables -t nat -L PREROUTING -n -v --line-numbers"然后让客户端使用 example.com:20000-50000 连接。正常情况下,对应 REDIRECT 规则的 packet / byte 计数会增长。
12448/UDP 仍保持监听。安装 BBRv3 前先检查当前 TCP 状态
uname -r
sysctl net.ipv4.tcp_congestion_control
sysctl net.core.default_qdisc
modinfo tcp_bbr 2>/dev/null | grep '^version:' || true本文沿用原教程使用的 byJoey/Actions-bbr-v3。它会安装第三方构建的 Linux 内核包,因此必须先确认 VPS 提供商有控制台 / Rescue / 旧内核回退方式。
运行 BBRv3 管理脚本并重启
bash <(curl -fsSL https://raw.githubusercontent.com/byJoey/Actions-bbr-v3/main/install.sh)日常使用建议优先选择脚本菜单中的标准 BBRv3,不要一上来就选 Max / 极限测速类模式。安装新内核后按提示重启:
reboot先确认新内核能正常启动、SSH 可以重新连接,再继续网络调优。
重启后验证 BBRv3,而不是只看脚本提示
uname -r
sysctl net.ipv4.tcp_congestion_control
sysctl net.core.default_qdisc
modinfo tcp_bbr 2>/dev/null | grep '^version:'| 检查项 | 正常方向 |
|---|---|
tcp_congestion_control | bbr |
default_qdisc | 通常使用 fq,也可按脚本选择其它队列 |
tcp_bbr version | 脚本应能识别为 BBR v3 |
这一步验证的是 TCP。Hysteria2 是 QUIC/UDP,它的实际状态请看前面的 UDP 监听、NAT 命中和客户端连接。
最终验收:把 3X-UI、订阅、UDP 跳跃和 TCP 分开检查
- 3X-UI 服务正常,管理面板可以登录。
- Subscription 已启用,Clash/Mihomo 输出可以生成。
- Hysteria2 单端口入站可以正常连接。
- UDP
20000-50000已重定向到真实节点端口。 iptables -t nat -L PREROUTING -n -v能看到规则命中。- 防火墙规则已持久化,重启后仍存在。
- BBRv3 安装后服务器可以正常重启并恢复 SSH。
- TCP 拥塞控制显示为
bbr,队列算法符合你的选择。
故障排查:按现象定位,不要反复重装
| 现象 | 常见原因 | 检查 / 修复 |
|---|---|---|
| 3X-UI 安装后打不开 | 端口未放行、Web Base Path 填错 | 运行 x-ui 查看当前登录信息和端口 |
| Hysteria2 单端口都不通 | UDP 被安全组拦截、证书/SNI 错误 | 先停用端口跳跃,只排查真实入站端口 |
| 20000-50000 没有命中 | iptables 规则未生效或云防火墙未放行 | 检查 PREROUTING 计数器与安全组 UDP 范围 |
| 重启后跳跃失效 | NAT 规则未持久化 | 重新运行 netfilter-persistent save |
| Clash 订阅没有 Hysteria2 | 入站未启用、订阅格式/排序设置问题 | 检查 Subscription 设置和客户端 Sub ID |
| 安装 BBRv3 后 SSH 不回来 | 第三方内核启动失败 | 使用 VPS 控制台/救援模式启动旧内核并回滚 |
| BBR 已启用但 Hysteria2 没明显变化 | 误把 TCP BBR 当成 UDP 加速 | Hysteria2 应通过 QUIC/UDP 参数、网络质量和端口跳跃单独评估 |
这套组合真正解决的是什么?
3X-UI 负责管理与订阅;Hysteria2 负责 QUIC/UDP 链路;端口跳跃用于在多个 UDP 端口之间切换;BBRv3 则属于 Linux TCP 栈优化。把四者的职责分开理解,才不会出现“装了 BBR 就以为 UDP 一定变快”的误区。
3X-UI 官方:MHSanaei/3x-ui · Hysteria2 官方:v2.hysteria.network · BBRv3 脚本:byJoey/Actions-bbr-v3(第三方)
