VPS自建 VLESS-Reality 与 Hysteria 2 双协议节点指南
使用 Docker 在境外 VPS 自适应部署 VLESS-Reality (TCP) 和 Hysteria 2 (UDP) 双协议节点,以及开启 BBR 拥塞控制和 Clash 客户端配置指南。
在网络环境日益复杂的今天,单一代理协议往往难以兼顾“隐蔽防封锁”和“弱网爆速”的需求。本文将指导你如何在一台境外 VPS 上,通过 Docker 容器化技术同时部署 VLESS-Reality (TCP) 和 Hysteria 2 (UDP) 双协议节点,并开启 BBR 拥塞控制进行网络加速。
为什么选择双协议?
- VLESS + Reality (TCP):伪装成对真实大型网站(如苹果、谷歌官网)的 HTTPS 访问,完美通过深度包检测(DPI),抗封锁能力极强。
- Hysteria 2 (UDP):基于 QUIC 协议,内置 Brutal 拥塞控制算法。在丢包严重(如晚高峰或移动宽带)的弱网环境下,能强行冲高速度,堪称弱网提速神器。
准备工作
- 准备一台运行 Linux(推荐 Ubuntu 22.04+)的境外 VPS。
- 确保 VPS 在服务商后台的安全组中放行了以下端口:
- TCP 443 (用于 VLESS-Reality)
- UDP 4443 (用于 Hysteria 2)
第一步:开启 BBR 拥塞控制
BBR 是谷歌开发的 TCP 拥塞控制算法。开启后可显著提升 VLESS 这种基于 TCP 协议节点的传输速率。
登录 VPS 后,执行以下命令:
# 移除已有的相关配置并写入新配置
sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf
sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf
echo 'net.core.default_qdisc=fq' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' >> /etc/sysctl.conf
# 使配置生效
sysctl -p
运行后若看到 net.ipv4.tcp_congestion_control = bbr,说明 BBR 已成功启用。
第二步:用 Docker 部署 VLESS-Reality
使用 Xray 官方 Docker 镜像进行部署。
- 编写配置文件:创建
/etc/xray/config.json:{ "log": { "loglevel": "warning" }, "inbounds": [ { "port": 443, "protocol": "vless", "settings": { "clients": [ { "id": "<VLESS_UUID>", "flow": "xtls-rprx-vision" } ], "decryption": "none" }, "streamSettings": { "network": "tcp", "security": "reality", "realitySettings": { "show": false, "dest": "images.apple.com:443", "xver": 0, "serverNames": [ "images.apple.com" ], "privateKey": "<Reality_PrivateKey>", "shortIds": [ "f8f18902" ] } } } ], "outbounds": [ { "protocol": "freedom", "tag": "direct" } ] } - 启动 Xray 容器:
docker run -d \ --name xray \ --restart always \ --network host \ -v /etc/xray/config.json:/etc/xray/config.json \ teddysun/xray:latest
第三步:用 Docker 部署 Hysteria 2
由于我们没有准备独立的域名证书,这里将使用 openssl 生成自签名证书,并在客户端开启跳过证书验证。
- 生成自签名证书:
mkdir -p /etc/hysteria/certs openssl req -x509 -newkey rsa:2048 \ -keyout /etc/hysteria/certs/private.key \ -out /etc/hysteria/certs/cert.crt \ -sha256 -days 3650 -nodes \ -subj "/CN=images.apple.com" - 编写配置文件:创建
/etc/hysteria.yaml:listen: :4443 tls: cert: /etc/hysteria/certs/cert.crt key: /etc/hysteria/certs/private.key auth: type: password password: <Hy2_Password> masquerade: type: proxy proxy: url: https://images.apple.com/ rewriteHost: true - 启动 Hysteria 2 容器:
docker run -d \ --name hysteria \ --restart always \ --network host \ -v /etc/hysteria.yaml:/etc/hysteria.yaml \ -v /etc/hysteria/certs:/etc/hysteria/certs \ tobyxdd/hysteria:latest \ server -c /etc/hysteria.yaml
第四步:Clash 客户端配置
在支持 Mihomo / Clash Meta 内核的客户端中,可在 proxies 下添加以下节点:
proxies:
# VLESS-Reality 节点 (TCP)
- { name: "🇺🇸美国自建-VLESS-Reality", type: vless, server: <YourIP>, port: 443, uuid: <VLESS_UUID>, udp: true, flow: xtls-rprx-vision, tls: true, skip-cert-verify: false, client-fingerprint: chrome, servername: images.apple.com, reality-opts: { public-key: "<Reality_PublicKey>", short-id: "f8f18902" } }
# Hysteria 2 节点 (UDP)
- { name: "🇺🇸美国自建-Hysteria2", type: hysteria2, server: <YourIP>, port: 4443, password: <Hy2_Password>, sni: images.apple.com, skip-cert-verify: true }
运维常用命令
在服务器上,你可以使用以下 Docker 指令管理这两个容器:
# 查看运行中的节点容器
docker ps
# 查看连接日志
docker logs -f xray
docker logs -f hysteria
# 重启或卸载服务
docker restart xray hysteria
docker rm -f xray hysteria
Last modified on 2026-05-31