Files
server-deploy/vps-xray/vps-xray-optimized.md

12 KiB
Raw Blame History

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 运行:

#!/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 "=========================================================="

二、客户端配置

方式 1VLESS 分享链接(推荐)

脚本运行完成后会输出一条 vless:// 链接,直接复制粘贴到以下客户端即可:

平台 推荐客户端
Windows v2rayN6.x+
macOS V2BOX / NekoRay
iOS Shadowrocket / Streisand
Android v2rayNG

方式 2Clash Meta (mihomo) 配置

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

方式 3Sing-Box 配置(新一代客户端)

{
  "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:// 链接

四、运维命令速查

# 查看运行状态
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 后重新部署。