From b483e3397a55952cd0bc05c15061da42f7634300 Mon Sep 17 00:00:00 2001 From: BlueRose <378100977@qq.com> Date: Sun, 7 Jun 2026 13:24:09 +0800 Subject: [PATCH] vault backup: 2026-06-07 13:24:09 --- 07-Other/AI/科学上网&CodeX/未命名.md | 297 +++++++++++++++++++++++++++ 1 file changed, 297 insertions(+) create mode 100644 07-Other/AI/科学上网&CodeX/未命名.md diff --git a/07-Other/AI/科学上网&CodeX/未命名.md b/07-Other/AI/科学上网&CodeX/未命名.md new file mode 100644 index 0000000..d22f61b --- /dev/null +++ b/07-Other/AI/科学上网&CodeX/未命名.md @@ -0,0 +1,297 @@ +--- +tags: + - networking + - vps + - xray + - reality + - cloudflare + - warp + - openai +created: 2026-06-07 +--- + +# 科学上网:XRay REALITY + Cloudflare WARP 部署方案 + +## 一、整体架构 + +``` +本机 (v2rayN) + │ VLESS + REALITY over TCP + ▼ +VPS :50000 (teddysun/xray Docker · host network) + │ + ├── OpenAI / ChatGPT 域名 + │ ▼ + │ 127.0.0.1:40000 (Cloudflare WARP · proxy 模式 · SOCKS5) + │ ▼ + │ Cloudflare 清洁 IP → ChatGPT / OpenAI + │ + └── 其他流量 → 直连出站 (freedom) + ├── geoip:cn → blackhole(阻断) +``` + +**关键设计原则:** +- XRay 以 `network_mode: host` 运行,直接访问宿主机 127.0.0.1:40000 +- WARP 只接管 OpenAI 相关域名,其余流量直连,不影响速度 +- REALITY 伪装为真实 TLS 网站,无需证书,极难被检测 + +--- + +## 二、REALITY 协议原理 + +REALITY 是 Xray-core 独有的传输层安全协议,基于 TLS 1.3。 + +| 特性 | 说明 | +|------|------| +| **无需证书** | 借用真实网站(如 lovelive-anime.jp)的 TLS 握手 | +| **防主动探测** | 没有 privateKey 的探测者只会得到真实网站的响应 | +| **x25519 密钥对** | privateKey 存服务端,publicKey 给客户端 | +| **shortId** | 额外身份验证,8字节随机 hex | +| **flow** | `xtls-rprx-vision` — 支持 TLS-in-TLS 的视觉流控 | + +### 握手流程 +``` +客户端 ──── ClientHello (SNI=lovelive-anime.jp) ────► 服务端 + [含 shortId + publicKey 派生的随机数] + +服务端识别到合法客户端 → 建立加密隧道 +服务端识别到未知探测者 → 转发到 lovelive-anime.jp:443(真实证书) +``` + +--- + +## 三、一键部署脚本 + +**脚本位置:** `/home/ubuntu/Reality_Docker_Install_AIModify.sh` + +### 脚本功能流程 + +``` +1. 获取公网 IP(可选输入自定义域名) +2. 询问端口(默认 50000) +3. 检测并安装 Docker / docker-compose / qrencode +4. 安装 Cloudflare WARP(官方包,apt 安装) +5. 注册 WARP 账户 → proxy 模式 → 连接 +6. 生成 docker-compose.yml(network_mode: host) +7. 生成 REALITY x25519 密钥对 + UUID +8. 生成 config.json(含 WARP 出站 + OpenAI 分流规则) +9. docker compose up -d 启动 xray +10. 输出 VLESS 链接 + 二维码 + 维护命令 +``` + +### 历史 Bug 记录 + +**Bug:privateKey 始终为空(2026-06-07 修复)** + +```bash +# 错误写法($3 越界,PrivateKey 行只有两个字段) +privateKey=$(echo "$output" | awk 'NR==2 {print $3}') + +# 正确写法 +privateKey=$(echo "$output" | grep "^PrivateKey:" | awk '{print $2}') +``` + +`xray x25519` 输出格式: +``` +PrivateKey: ← 2个字段,应取 $2 +Password (PublicKey): ← 3个字段,取 $3 正确 +``` + +--- + +## 四、Cloudflare WARP 配置 + +### 安装方式(Ubuntu 22.04 / 24.04) + +```bash +# 添加 GPG 密钥 +curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg \ + | gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg + +# 添加仓库(noble = Ubuntu 24.04) +echo "deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] \ + https://pkg.cloudflareclient.com/ noble main" \ + | tee /etc/apt/sources.list.d/cloudflare-client.list + +apt update && apt install -y cloudflare-warp +``` + +### 初始化配置 + +```bash +systemctl enable --now warp-svc # 启动守护进程 +warp-cli --accept-tos registration new # 注册免费账户 +warp-cli --accept-tos mode proxy # 切换为 SOCKS5 proxy 模式 +warp-cli --accept-tos connect # 连接 +``` + +### WARP 工作模式对比 + +| 模式 | 说明 | 本方案选用 | +|------|------|-----------| +| `warp` | 全局 WireGuard,替换默认路由 | ❌ 会断 SSH | +| `proxy` | SOCKS5 on 127.0.0.1:40000 | ✅ 安全,按需使用 | +| `tunnel` | 仅 DNS 保护 | ❌ 不转发流量 | + +### 常用维护命令 + +```bash +warp-cli --accept-tos status # 查看状态 +warp-cli --accept-tos disconnect # 断开 +warp-cli --accept-tos connect # 重连 +curl --socks5 127.0.0.1:40000 ipinfo.io # 验证出口 IP +``` + +--- + +## 五、OpenAI / ChatGPT 分流逻辑 + +### XRay 路由规则(config.json) + +```json +"routing": { + "domainStrategy": "IPIfNonMatch", + "rules": [ + { + "type": "field", + "domain": [ + "geosite:openai", + "domain:openai.com", + "domain:chatgpt.com", + "domain:oaistatic.com", + "domain:oaiusercontent.com", + "domain:ai.com", + "domain:sora.com" + ], + "outboundTag": "warp" + }, + { + "type": "field", + "ip": ["geoip:cn"], + "outboundTag": "block" + } + ] +} +``` + +### WARP 出站配置 + +```json +{ + "protocol": "socks", + "tag": "warp", + "settings": { + "servers": [{"address": "127.0.0.1", "port": 40000}] + } +} +``` + +### docker-compose.yml(host 网络模式) + +```yaml +services: + xray: + container_name: xray + image: teddysun/xray + network_mode: host # 关键:容器共享宿主机网络,可访问 127.0.0.1:40000 + volumes: + - /root/xray/config:/etc/xray/ + restart: always +``` + +> **为什么必须用 `network_mode: host`?** +> Docker bridge 网络下,容器内的 127.0.0.1 指向容器自身,无法访问宿主机上运行的 WARP SOCKS5 代理。 +> host 模式下容器与宿主机共享网络命名空间,127.0.0.1 即宿主机本地地址。 + +### 规则匹配优先级 + +``` +OpenAI 域名规则(第1条)→ warp 出站 → WARP SOCKS5 → Cloudflare IP → OpenAI +CN IP 规则(第2条) → block 出站 → 丢弃 +其余流量(默认) → direct 出站 → 直连 +``` + +--- + +## 六、v2rayN 客户端配置 + +### 节点参数 + +| 参数 | 值 | +|------|----| +| 协议 | VLESS | +| 地址 | VPS 公网 IP 或域名 | +| 端口 | 50000(可自定义) | +| UUID | 部署时自动生成 | +| Flow | `xtls-rprx-vision` | +| 传输 | TCP | +| 安全 | reality | +| SNI | `www.lovelive-anime.jp` | +| Fingerprint | `chrome` | +| PublicKey | 部署时自动生成(输出在终端) | +| ShortId | 部署时自动生成 | + +### 常见报错 + +**`REALITY: received real certificate (potential MITM or redirection)`** + +原因:客户端 `publicKey` 与服务端 `privateKey` 不匹配。服务端把客户端当陌生人,转发到 lovelive-anime.jp,客户端收到真实证书后报错。 + +解决:更新客户端配置中的 `publicKey` 为服务端当前生成的值。 + +--- + +## 七、当前 VPS 配置(43.161.194.203) + +``` +协议 : VLESS + REALITY +端口 : 50000 +UUID : 7c8bfb9f-c927-44c5-9e79-75bc4312cb6f +SNI : www.lovelive-anime.jp +PublicKey : S6810-8nzf8hPnsmaPPN8elBKm5kQ5X2aHIAHr-fZRY +ShortId : 784799bde6894a7e +WARP IP : 104.28.215.70(Cloudflare) +``` + +VLESS 链接: +``` +vless://7c8bfb9f-c927-44c5-9e79-75bc4312cb6f@43.161.194.203:50000?headerType=none&type=tcp&encryption=none&fp=chrome&pbk=S6810-8nzf8hPnsmaPPN8elBKm5kQ5X2aHIAHr-fZRY&sid=784799bde6894a7e&spx=%2F&flow=xtls-rprx-vision&security=reality&sni=www.lovelive-anime.jp#xray-reality +``` + +--- + +## 八、排查与维护 + +### 查看实时日志 + +```bash +# 所有日志 +sudo docker logs -f xray + +# 只看 warp/openai 相关 +sudo docker logs --tail 100 xray 2>&1 | grep -iE "warp|openai|chatgpt|socks" + +# 验证 WARP 出口 +curl --socks5 127.0.0.1:40000 ipinfo.io +``` + +### 验证 OpenAI 分流 + +```bash +# 通过 WARP 代理访问 OpenAI,期望返回 HTTP 308 或 200 +curl -v -o /dev/null --socks5 127.0.0.1:40000 https://chat.openai.com 2>&1 | grep "< HTTP" +``` + +### 服务重启 + +```bash +cd /root/xray +sudo docker compose restart # 重启 xray +sudo warp-cli --accept-tos connect # 重连 WARP +``` + +### 重新部署(全新生成密钥) + +```bash +sudo bash /home/ubuntu/Reality_Docker_Install_AIModify.sh +```