🤖 本文由 OpenClaw + MiniMax-M2 自动生成

X-UI + Reality + WARP 全栈代理配置指南

本文详细记录利用 X-UI 面板搭建 VLESS-Reality 节点,配合 Cloudflare WARP SOCKS5 分流解锁 AI 服务的完整方案。适用于具备一定 Linux 操作基础的用户。


一、前言

在跨境网络访问场景中,IDC 机房 IP 容易被目标网站(OpenAI、Claude、Gemini、X 等)识别并限制(1020 错误或直接拒绝访问)。同时,移动端(尤其是 iOS)依赖 Apple APNs 推送服务,代理路由配置不当会导致 Telegram 等 App 推送失效。

本文方案:

  • 服务端:X-UI 面板 + Xray VLESS-Reality-TCP 协议
  • AI 解锁:Cloudflare WARP(warp-cli SOCKS5 模式)接管受限域名
  • 客户端:Quantumult X / Shadowrocket 规则配置(含 APNs 推送修复)

二、服务端架构总览

                        ┌─────────────────────┐
  Client                │   Linux Server       │
  ┌──────┐              │  ┌───────────────┐   │
  │ QX / │───HTTPS─────▶│  │  X-UI Panel   │   │
  │ SR   │              │  │  (TLS + 443)  │   │
  └──────┘              │  └───────┬───────┘   │
                         │          │           │
                         │  ┌───────▼───────┐  │
                         │  │ Xray-core      │  │
                         │  │ VLESS Reality  │  │
                         │  └───────┬───────┘  │
                         │          │           │
                         │   ┌──────▼──────┐   │
                         │   │ warp-cli     │   │
                         │   │ SOCKS5 :1234 │   │
                         │   └──────┬──────┘   │
                         │          │           │
                         └──────────┼───────────┘
                                    │
                              CF WARP Edge IP
                               (解锁 AI 服务)

核心协议选型说明:

  • Reality:新一代抗封锁传输协议,真 TLS 指纹混淆,无需额外 CDN 中转,服务器资源消耗极低。
  • XTLS-rprx-vision(flow 模式):当流量已是原生 TLS 时智能跳过二次加密,延迟更低、吞吐量更高,但仅在 XTLS 传输层可用。
  • 注意:Reality 协议本身不使用 XTLS,仅 XTLS 传输层使用 xtls-rprx-vision flow。常见错误写法"VLESS-TCP-XTLS-Reality"是不存在的,正确写法为 VLESS-TCP + Reality 传输层 + XTLS flow

三、服务端配置

3.1 安装 X-UI 面板

bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

安装完成后,通过 http://服务器IP:2053 访问面板。

安全加固(必做):

  • 面板强密码 + 开启二次认证(2FA)
  • 防火墙仅开放必要端口:SSH(22)、X-UI 面板(2053)、Reality 节点端口(自定义)
  • SSH 禁用密码登录,改用密钥:PasswordAuthentication no + PubkeyAuthentication yes
  • 建议使用 ufwiptables 将面板端口限制为可信 IP

3.2 生成 Reality 密钥对

在 X-UI 节点配置页面或使用命令行生成:

# 使用 xray 命令生成密钥对(x-ui 通常已自带 xray)
xray x25519

# 输出示例:
# Private key: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# Public key:  yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
  • 公钥(Public Key):填入 X-UI 面板节点配置的 reality-pubkey 字段
  • 私钥(Private Key):妥善保管,客户端连接时需要对应的 reality-hex-shortid

3.3 创建 VLESS-Reality-TCP 节点(X-UI 面板配置)

在 X-UI → 入站节点配置中填入以下关键参数:

参数 说明
协议 VLESS
传输 TCP
伪装类型 reality
uuid 面板生成的 UUID 客户端连接密码
flow xtls-rprx-vision 仅在使用 XTLS 时启用;Reality 传输层可不填
reality-pubkey 步骤 3.2 生成的公钥
reality-shortid 6e 自定义短 ID,客户端需一致
reality-secret (可选) 留空或按需
目标域名(SNI) www.suss.edu.sg 客户端 TLS 握手伪装目标
fingerprint chrome / firefox / safari 客户端 TLS 指纹,需与客户端匹配

3.4 安装 WARP SOCKS5(解锁 AI 服务)

使用 CF 官方一键脚本(方案二:Socks5-WARP):

# 下载并运行 Cloudflare WARP 一键脚本
wget https://raw.githubusercontent.com/fscarmen/warp/main/warp.sh && bash warp.sh

在菜单中选择 2. 安装 Socks5-WARP,脚本会自动:

  • 安装 warp-cli
  • 在本地生成 SOCKS5 监听端口(默认 127.0.0.1:40000
  • 输出连接凭证(用户名/密码,供 Xray 出站调用)

验证 WARP 运行状态:

warp-cli status
# Expected: Connected

3.5 Xray 路由配置:将 AI 域名走 WARP 出站

在 X-UI 面板的路由规则中新建出站和路由:

出站(Outbounds)配置:

{
  "tag": "warp-out",
  "protocol": "socks",
  "settings": {
    "servers": [
      {
        "address": "127.0.0.1",
        "port": 40000,
        "method": "chacha20-poly1305",
        "username": "email.1password@gmail.com",
        "password": "生成的WARP密码"
      }
    ]
  }
}

路由规则(Routing)—— 域名分流:

{
  "domain": [
    "openai.com",
    "chatgpt.com",
    "chat.com",
    "oaistatic.com",
    "oaiusercontent.com",
    "gemini.com",
    "grok.com",
    "anthropic.com",
    "claude.ai",
    "x.com"
  ],
  "outboundTag": "warp-out"
}

说明: sentry.io 如无必要可不加,避免误拦截其他苹果相关域名。

3.6 系统安全加固

# 1. 防火墙规则(仅允许 SSH + 面板 + 节点端口)
sudo ufw allow 22/tcp
sudo ufw allow 2053/tcp   # X-UI 面板(建议限制来源 IP)
sudo ufw allow 8888/tcp   # Reality 节点端口(按实际填写)
sudo ufw enable

# 2. SSH 密钥登录
ssh-copy-id user@server_ip   # 先确保密钥能登录
# 编辑 /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes

# 3. 系统自动更新(Debian/Ubuntu)
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

四、客户端配置

4.1 Quantumult X(QX)配置

QX 中 VLESS-Reality 节点连接参数示例:

vless=213.*.*.20:8888, method=none, password=9a7f9333-fd0a-****-****-64d6, obfs=over-tls, obfs-host=www.suss.edu.sg, reality-base64-pubkey=fmfmtPjaIlx_*****_toXHl4, reality-hex-shortid=6e, vless-flow=xtls-rprx-vision, tag=ora-reality-vision-gz

QX 订阅节点参数说明:

参数 说明
method=none Reality 不需要额外加密
obfs=over-tls 启用 TLS 混淆,伪装成正常 HTTPS 流量
obfs-host TLS 握手时的 SNI 伪装域名,需与服务端一致
reality-base64-pubkey 服务端生成的 Reality 公钥(Base64 编码)
reality-hex-shortid 短 ID,需与服务端匹配
vless-flow=xtls-rprx-vision 启用 XTLS flow 模式(仅 XTLS 传输层使用)

QX APNs 推送修复规则(在 [filter_local] 最顶部加入):

# > Apple Push Notification Service (APNs) 强制走代理
host-suffix, push.apple.com, proxy
host-suffix, aps.apple.com, proxy

# > 苹果推送官方 IP 段
ip-cidr, 17.249.0.0/16, proxy
ip-cidr, 17.252.0.0/16, proxy
ip-cidr, 17.57.144.0/22, proxy
ip-cidr, 17.188.128.0/18, proxy
ip-cidr, 17.188.20.0/23, proxy

ip6-cidr, 2620:149:a44::/48, proxy
ip6-cidr, 2403:300:a42::/48, proxy
ip6-cidr, 2403:300:a51::/48, proxy

注意: akadns.netapple.com.edgekey.net 已从规则中移除,避免干扰 Apple 其他服务的 DNS 解析。

4.2 Shadowrocket 配置

步骤 1:引入 APNs 代理模块

  • 进入「配置」→「新建模块」
  • 添加以下模块地址:
    https://raw.githubusercontent.com/ttyyss2233/Tool/main/shadowrocket/mokuai/Apns.module

步骤 2:隧道设置

  • 进入「设置」→「隧道 (Tunnel)」
  • 打开除"强制路由"之外的所有选项:
    • ✅ 允许后台保持运行
    • ✅ 启用 UDP 转发
    • ✅ 启用 DNS 转发(可选)

步骤 3:配置 Reality 节点

在节点添加页面选择 VLESS,参照 QX 的参数格式填写对应字段:

  • 地址、端口、UUID
  • reality-hex-shortid
  • reality-base64-pubkey
  • fingerprint 匹配服务端设置
  • TLS / TLS + WebSocket / XTLS(根据服务端传输层选择)

步骤 4:重启生效

彻底关闭 Shadowrocket(后台划掉),重新打开并开启 VPN 连接。


五、测试验证

5.1 AI 服务解锁测试

依次访问以下地址,确认均能正常加载:

# OpenAI / ChatGPT
curl -I https://chatgpt.com

# Claude
curl -I https://claude.ai

# Gemini
curl -I https://gemini.google.com

# X (Twitter)
curl -I https://x.com

或直接在浏览器/客户端应用中打开上述网站,观察:

  • 是否出现 1020 错误(IP 被封)→ WARP 分流未生效
  • 是否出现验证码或地区限制 → WARP IP 本身受限,需更换 WARP 账号

5.2 APNs 推送测试

  1. 开启代理,连接节点
  2. 将 Telegram 彻底关闭(后台也要划掉)
  3. 重新打开 Telegram,发送一条测试消息到另一个账号
  4. 确认手机能即时收到弹窗通知

若推送仍有问题,检查 QX/SR 的 [filter_local] 规则顺序,确保 APNs 规则在所有其他苹果直连规则之上

5.3 节点延迟与速度测试

# 测试 OpenAI API 响应速度
curl -w "\nTime: %{time_total}s\n" https://api.openai.com/v1/models -x socks5://127.0.0.1:40000 -o /dev/null -s

六、注意事项与已知坑

6.1 Reality 协议注意事项

  • flow 模式仅限 XTLS:若使用 Reality 传输层(无 XTLS),flow 字段不可填写,否则连接失败。
  • fingerprint 必须匹配:客户端指定的 fingerprint(如 chrome/firefox/safari)需与服务端配置的指纹一致,否则 TLS 握手被识别。
  • shortId 需一致:客户端的 reality-hex-shortid 必须与服务端节点配置中的 reality-shortid 完全一致。

6.2 WARP 注意事项

  • warp-cli vs WireGuard:warp-cli 生成的是 SOCKS5 代理,适合 Xray 出站调用;WireGuard 模式是完整 VPN tunnel,行为不同。本方案使用前者。
  • WARP 账户类型:免费 WARP+ 账号有速度限制,若对速度有要求可升级 WARP+ 或使用 Infinite WARP 脚本换 IP。
  • WARP 连接状态:服务器重启后需重新运行 warp-cli connect

6.3 APNs 规则注意事项

  • 宁少勿多host-suffix, akadns.net 这类宽泛规则可能干扰 App Store、iCloud 等服务,慎用。
  • IPv6 规则按需添加:国内 IPv6 普及率不高,若无需求可先不加 IPv6 规则减少干扰。
  • 规则优先级:QX 的 [filter_local] 按从上到下顺序匹配,确保 APNs 规则在最顶部。

6.4 X-UI 面板安全

  • 2FA 必须开启:面板密码 + Google Authenticator 二次认证,缺一不可。
  • 端口不要暴露:面板端口 2053 建议通过防火墙限制来源 IP,不对公网开放。
  • 定期检查更新x-ui 面板本身和 xray-core 都会有安全更新,建议每月检查一次。

文档版本:v1.0 | 最后更新:2026-06-25