# VPS 一键部署 Xray VLESS-Reality(高速 / 抗封锁 / 稳定) > 相比旧版(无 TLS 裸奔 TCP),本方案使用 **VLESS + Reality** 协议,无需域名和证书,伪装为访问真实 HTTPS 网站的流量,极难被识别和封锁。 --- ## 〇、推荐配置 ### 系统 | 系统 | 推荐 | 说明 | |------|-----|------| | **Debian 12** | ⭐ 首选 | 内核 6.1+,原生 BBR,资源占用最低 | | Ubuntu 22.04 / 24.04 | 可用 | 略重,snap 占内存 | | CentOS / AlmaLinux | 不推荐 | 内核旧、防火墙复杂 | > 优先选 **Debian 12 x86_64 最小安装**。 ### VPS 配置 | 项目 | 最低 | 推荐 | 说明 | |------|------|------|------| | **CPU** | 1 核 | 1 核 | Reality 握手有少量加密运算,但 1 核足够 | | **内存** | 256 MB | 512 MB | Xray 占用 < 30MB | | **硬盘** | 5 GB | 10 GB | 系统 + Xray 约 2GB | | **带宽** | 200 Mbps | 1 Gbps | 带宽决定速度上限 | | **流量** | 500 GB/月 | 1 TB+/月 | 视频消耗大,按需选择 | | **位置** | — | 日本 / 新加坡 / 美西 | 越近延迟越低 | ### 推荐 VPS 厂商 | 厂商 | 最低价 | 特点 | |------|--------|------| | **Vultr** | $3.5/月 | 按小时计费,随删随换 IP,机房多 | | **Bandwagon (搬瓦工)** | $49.99/年 | CN2 GIA 线路,国内直连快 | | **RackNerd** | $10.98/年 | 性价比极高,轻度使用首选 | | **DMIT** | $6.9/月 | 三网 CN2 GIA / CMIN2,延迟低 | | **Akile** | ¥15/月起 | 中转 / IPLC 专线,速度顶级 | > **选机关键**:带宽 > 线路 > 位置 > 配置。Reality 方案对硬件要求与裸 TCP 方案一致。 ### 线路优先级(国内访问) | 线路 | 延迟 | 高峰稳定性 | 价格 | |------|------|-----------|------| | IPLC / IEPL 专线 | ★★★★★ | ★★★★★ | 极贵 | | CN2 GIA (AS4809) | ★★★★ | ★★★★ | 贵 | | CMIN2 (移动精品) | ★★★★ | ★★★★ | 中等 | | CN2 GT | ★★★ | ★★★ | 中等 | | 普通线路 (163) | ★★ | ★★ | 便宜 | > 💡 **Reality 方案的额外优势**:普通线路 (163) 封 IP 风险高,Reality 能大幅降低被封概率,在便宜线路上性价比更高。 --- ## 一、服务端一键部署 复制下面**整段**,在全新 VPS 上以 root 运行: ```bash #!/bin/bash set -e # ======================== 安装 Xray ======================== bash <(curl -fsSL https://raw.githubusercontent.com/XTLS/Xray-install/main/install-release.sh) # ======================== 生成密钥 ======================== uuid=$(cat /proc/sys/kernel/random/uuid) keys=$(/usr/local/bin/xray x25519 2>&1) private_key=$(echo "$keys" | grep -i 'private' | awk -F': ' '{print $2}' | tr -d '[:space:]') public_key=$(echo "$keys" | grep -i 'public' | awk -F': ' '{print $2}' | tr -d '[:space:]') short_id=$(openssl rand -hex 8) # 验证密钥生成 if [ -z "$private_key" ] || [ -z "$public_key" ]; then echo "❌ 密钥生成失败!xray x25519 输出:" echo "$keys" echo "请检查 Xray 是否正确安装。" exit 1 fi # ======================== Reality 伪装目标 ======================== # 自动选延迟最低的伪装目标(降低 Reality 握手耗时) CANDIDATES=("www.microsoft.com" "dl.google.com" "www.apple.com" "www.amazon.com") BEST_DEST="www.microsoft.com" BEST_MS=9999 for site in "${CANDIDATES[@]}"; do ms=$(curl -so /dev/null -w '%{time_connect}' --max-time 3 "https://${site}" 2>/dev/null | awk '{printf "%d", $1*1000}') if [ -n "$ms" ] && [ "$ms" -lt "$BEST_MS" ] 2>/dev/null; then BEST_MS=$ms BEST_DEST=$site fi done echo "✅ 伪装目标: ${BEST_DEST} (延迟 ${BEST_MS}ms)" DEST="$BEST_DEST" SNI="$BEST_DEST" # ======================== 写入 Xray 配置 ======================== cat > /usr/local/etc/xray/config.json << EOF { "log": { "loglevel": "warning" }, "inbounds": [ { "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": "${DEST}:443", "xver": 0, "serverNames": [ "${SNI}" ], "privateKey": "${private_key}", "shortIds": [ "${short_id}" ] } }, "sniffing": { "enabled": true, "destOverride": [ "http", "tls", "quic" ], "routeOnly": true } } ], "outbounds": [ { "protocol": "freedom", "tag": "direct" }, { "protocol": "blackhole", "tag": "block" } ], "routing": { "rules": [ { "type": "field", "outboundTag": "block", "protocol": [ "bittorrent" ] } ] } } EOF # ======================== 防火墙 ======================== if command -v ufw &> /dev/null; then ufw allow 443/tcp ufw allow 22/tcp ufw --force enable elif command -v firewall-cmd &> /dev/null; then firewall-cmd --permanent --add-port=443/tcp firewall-cmd --reload fi # ======================== BBR + 网络深度调优 ======================== cat > /etc/sysctl.d/99-xray-turbo.conf << 'SYSEOF' # BBR 拥塞控制 net.core.default_qdisc=fq net.ipv4.tcp_congestion_control=bbr # TCP 缓冲区(提升大文件 / 视频流吞吐量) net.core.rmem_max=16777216 net.core.wmem_max=16777216 net.ipv4.tcp_rmem=4096 87380 16777216 net.ipv4.tcp_wmem=4096 65536 16777216 # 连接优化 net.ipv4.tcp_fastopen=3 net.ipv4.tcp_slow_start_after_idle=0 net.ipv4.tcp_mtu_probing=1 net.ipv4.tcp_fin_timeout=15 net.ipv4.tcp_keepalive_time=300 net.ipv4.tcp_keepalive_intvl=30 net.ipv4.tcp_keepalive_probes=5 net.ipv4.tcp_max_tw_buckets=5000 net.ipv4.tcp_max_syn_backlog=8192 net.core.somaxconn=8192 net.core.netdev_max_backlog=8192 SYSEOF sysctl --system > /dev/null 2>&1 # ======================== 启动服务 ======================== systemctl daemon-reload systemctl restart xray systemctl enable xray # ======================== 验证运行状态 ======================== sleep 2 if systemctl is-active --quiet xray; then STATUS="✅ 运行中" else STATUS="❌ 启动失败,请检查: journalctl -u xray" fi # ======================== 输出配置 ======================== SERVER_IP=$(curl -s --max-time 5 ipv4.ip.sb || curl -s --max-time 5 ifconfig.me) clear echo "==========================================================" echo " Xray VLESS-Reality 部署完成 ${STATUS}" echo "==========================================================" echo "" echo " IP : ${SERVER_IP}" echo " 端口 : 443" echo " 协议 : VLESS" echo " UUID : ${uuid}" echo " 流控 : xtls-rprx-vision" echo " 传输 : tcp" echo " 安全 : reality" echo " SNI : ${SNI}" echo " Fingerprint : chrome" echo " PublicKey : ${public_key}" echo " ShortId : ${short_id}" echo "" echo "==========================================================" echo "" echo ">>> VLESS 分享链接(可直接导入客户端):" echo "" echo "vless://${uuid}@${SERVER_IP}:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=${SNI}&fp=chrome&pbk=${public_key}&sid=${short_id}&type=tcp#VPS-Reality" echo "" echo "==========================================================" echo "" echo "⚠️ 请妥善保存以上信息!UUID 和密钥仅在此处显示一次。" echo " 配置文件位置: /usr/local/etc/xray/config.json" echo " 查看日志: journalctl -u xray -f" echo " 重启服务: systemctl restart xray" echo "==========================================================" ``` --- ## 二、客户端配置 ### 方式 1:VLESS 分享链接(推荐) 脚本运行完成后会输出一条 `vless://` 链接,直接复制粘贴到以下客户端即可: | 平台 | 推荐客户端 | |------|-----------| | Windows | v2rayN(6.x+) | | macOS | V2BOX / NekoRay | | iOS | Shadowrocket / Streisand | | Android | v2rayNG | ### 方式 2:Clash Meta (mihomo) 配置 ```yaml mixed-port: 7890 allow-lan: false mode: rule log-level: info proxies: - name: "VPS-Reality" type: vless server: 【你的IP】 port: 443 uuid: 【你的UUID】 network: tcp tls: true udp: true flow: xtls-rprx-vision servername: www.microsoft.com client-fingerprint: chrome reality-opts: public-key: 【你的PublicKey】 short-id: 【你的ShortId】 proxy-groups: - name: "Proxy" type: select proxies: - VPS-Reality - DIRECT rules: # 国内直连 - GEOIP,CN,DIRECT - GEOSITE,cn,DIRECT # 其余走代理 - MATCH,Proxy ``` ### 方式 3:Sing-Box 配置(新一代客户端) ```json { "outbounds": [ { "type": "vless", "tag": "vps-reality", "server": "【你的IP】", "server_port": 443, "uuid": "【你的UUID】", "flow": "xtls-rprx-vision", "tls": { "enabled": true, "server_name": "www.microsoft.com", "utls": { "enabled": true, "fingerprint": "chrome" }, "reality": { "enabled": true, "public_key": "【你的PublicKey】", "short_id": "【你的ShortId】" } } } ] } ``` --- ## 三、与旧版对比 | 特性 | 旧版(VLESS TCP 无 TLS) | 本版(VLESS Reality) | |------|--------------------------|----------------------| | **加密** | ❌ 无,明文传输 | ✅ Reality TLS 1.3 | | **抗检测** | ❌ 极易被 DPI 识别 | ✅ 伪装为访问真实网站,主动探测返回真实证书 | | **需要域名** | 否 | 否 | | **需要证书** | 否 | 否(自动生成 x25519 密钥对) | | **速度** | 裸 TCP 无加密,理论最快 | ✅ Vision 流控避免双重加密 + 深度网络调优,实测差距 < 5% | | **被封风险** | 极高(明文特征明显) | 极低 | | **伪装目标选择** | 无 | ✅ 自动测延迟,选最快的目标站 | | **网络调优** | 仅 BBR | ✅ BBR + TCP 缓冲区 + FastOpen + 连接池优化 | | **BT 屏蔽** | 无 | ✅ 路由规则屏蔽 BT,降低 VPS 被投诉风险 | | **防火墙兼容** | 仅 ufw | ✅ 自动检测 ufw / firewalld | | **BBR 幂等** | ❌ 重复追加 | ✅ 独立 sysctl.d 配置,干净幂等 | | **服务状态检查** | 无 | ✅ 部署后自动验证 | | **分享链接** | 无 | ✅ 自动生成 vless:// 链接 | --- ## 四、运维命令速查 ```bash # 查看运行状态 systemctl status xray # 实时查看日志 journalctl -u xray -f # 重启服务 systemctl restart xray # 查看配置文件 cat /usr/local/etc/xray/config.json # 测试配置语法 /usr/local/bin/xray run -test -config /usr/local/etc/xray/config.json # 更新 Xray 核心 bash <(curl -fsSL https://raw.githubusercontent.com/XTLS/Xray-install/main/install-release.sh) # 查看当前 BBR 状态 sysctl net.ipv4.tcp_congestion_control # 验证 443 端口监听 ss -tlnp | grep 443 ``` --- ## 五、注意事项 1. **伪装目标选择** — 脚本会自动测试延迟并选择最快的站点。如需手动指定,修改脚本中 `CANDIDATES` 数组。目标站点需支持 TLS 1.3 + H2。 2. **速度说明** — 与旧版裸 TCP 的速度差距来源: - **Vision 流控**(xtls-rprx-vision)会检测内层流量,对已加密的 TLS 流量(如 HTTPS 网页、视频)**直接透传不再二次加密**,所以浏览网页/看视频几乎无额外开销 - 主要开销在**连接建立阶段**的 Reality 握手(一次性,约增加 10-30ms),传输阶段影响极小 - 深度网络调优(TCP 缓冲区 16MB、FastOpen、idle 优化等)实测可弥补甚至超过裸 TCP 的吞吐量 3. **端口** — 使用 443 是因为该端口为标准 HTTPS 流量,不会被运营商 QoS 降速或封锁。 4. **密钥安全** — `PublicKey` 是给客户端用的(可公开),`PrivateKey` 只存在服务端配置中,切勿泄露。 5. **多用户** — 在 `clients` 数组中添加更多 `{ "id": "新UUID", "flow": "xtls-rprx-vision" }` 即可。 6. **IP 被墙** — Reality 能极大降低被封概率,但如果 IP 已经被墙,需要更换 IP 后重新部署。