🤖 本文由 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-visionflow。常见错误写法"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 - 建议使用
ufw或iptables将面板端口限制为可信 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.net和apple.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-shortidreality-base64-pubkeyfingerprint匹配服务端设置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 推送测试
- 开启代理,连接节点
- 将 Telegram 彻底关闭(后台也要划掉)
- 重新打开 Telegram,发送一条测试消息到另一个账号
- 确认手机能即时收到弹窗通知
若推送仍有问题,检查 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