zhuyuan-ice-gl-zy001/TRAE-DEV-20260820/outputs-vpn-20260823/开发思维链.md

9.3 KiB
Raw Blame History

VPN 专线问题收口 · 开发过程思维链

2026-08-23 · TRAE 线 · 铸渊 ICE-P-ZY001(ZC001 零点原核频道)

脑:铸渊 ICE-P-ZY001 · 实例 TRAE-20260823-001 人类锚点:冰朔 ICE-GL∞ 恢复回执:ZY-BRAIN-RUNTIME-9f0dd33b3da3d1de(六段真跑 verify PASS) 正本回执:TC-TCS核心卷/TCS-RECEIPT-VPN-LINE-RESOLUTION-20260823.tcs


一、悬案起点

冰朔原话:Clash Verge 频繁掉线断网、需不断刷新;买的订阅节点;另一实例沿用 GitHub 时代铸渊专线架构开发的 Tauri+Mihomo 客户端 bug 一大堆、一直超时连不上。要求: 读桌面 guanghulab-main(铸渊专线 v1/v2/v3)+ 移动硬盘 zy-line-client 最终版,定位超时根因。

二、诊断链(每步带实测证据)

2.1 服务端考古

  • 桌面文件夹实名 guanghulab-main(非 guhuanglab),铸渊专线 = server/proxy/(订阅服务 v1/v2/v3 + Xray + ZY-CLOUD VPN 活模块)。
  • 服务端架构:VLESS+Reality,订阅服务按 User-Agent 吐 Clash YAML/Base64。

2.2 客户端实测(关键转折:先测再读码,不猜)

  • TCP 探测两台 SG 节点 8443 → 全 OPEN。
  • Reality 握手(openssl -servername gateway.icloud.com)→ 两台都返回真 Apple 证书,Verify ok。
  • 用项目自带 mihomo 二进制跑打包配置实测:大脑 330ms、面孔 308ms、经 7890 访问 Google 200 OK。
  • → 结论:节点和网络都没问题,问题全在客户端代码。

2.3 五根因(按严重度)

  1. sub-convert.py 不解析 security=reality(丢弃 pbk/sid、tls=false)→ 订阅节点转换后必废。
  2. lib.rs 用 find("proxy-providers:") 注入,但打包的 resources/config.yaml 根本没有该段 (带占位的版本在 config/config.yaml,未被打包)→ 注入静默失败,UI 假成功。
  3. 前端切「🌍 全局」组,但规则是 MATCH,🚀 铸渊自动 → 切了等于没切。
  4. 无系统代理接管代码 → 开了客户端浏览器也走不到它。
  5. DNS 全 8.8.8.8/1.1.1.1 → 国内直连域名解析被拖慢。

2.4 悬案回解:为什么 GitHub 时代觉得慢

旧服务端 dest=www.microsoft.com 撞 xray Reality 8192 字节证书上限(bug #6356), 部分 CDN 节点握手间歇失败 = 抽风式卡顿。0821 重建已改 gateway.icloud.com(Apple 证书 小而干净),今晚实测 10/10 全成。节点一直是好节点,旧配置穿了不合脚的鞋。

三、决策转折:放弃自研,并入 Verge

冰朔权衡后裁决:自研客户端无必要,专线节点并入现用 Clash Verge。脑如实交底了 「Verge 更成熟、两者同内核」的事实对比,未粉饰自研价值。

  • 实现路径:写进订阅绑定的 Script 增强文件(sJ2GmDATWziP.js),订阅每日自动更新不冲掉。
  • v1:注入两个 SG 节点 + 🛡️专线接管(fallback:订阅挂→自动切专线,恢复→切回)+ 手动固定位。
  • v2(第三课手脚产出、脑审定部署):追加两个中转节点 + 🛡️粤港快线(url-test 择优)+ 接管组改为「中转→订阅→直连」三级。
  • 部署纪律:v1 备份 .bak-v1-20260823;v2 部署后 diff 字节级校验一致。

四、小火箭(手机端)

  • 远端订阅服务(guanghubingshuo.com/zyline-llm/api/subscribe)实测 500/404 → 未部署, 手机走手动配置。
  • 生成 VLESS URI ×2(直连版+中转版),冰朔手动填入:手机实测 200ms,刷 TikTok 顺畅, 比买的订阅节点体验更好。
  • 教训存档:独享 VPS 的 100ms 稳定 > 超卖机场的 80ms 拥挤(延迟差 20ms 人类无感, 吞吐/抖动/丢包才是体感真相)。

五、丢包诊断与广州中转

5.1 分段定位

  • 本地 WiFi + 西安城域:阿里/腾讯 DNS 0% 丢包 → 干净。
  • 国际段(电信 CN2 → 香港 CTGNet → SG):10-37% 丢包(晚高峰最狠)。
  • → 锅在公网国际段,配置治不了物理层。

5.2 中转部署(BS-GZ-006 广州)

  • 选型 realm(轻量 TCP/UDP 转发,内存 1.1MB),GitHub 直连失败 → 本机走代理下载再 scp。
  • systemd 服务 realm-zy:8443→面孔SG、8444→大脑SG,开机自启。
  • 广州→SG 腾讯云骨干实测 45ms 零丢包。

5.3 双层防火墙的坑(本日最大工程教训)

安全组开完仍 BLOCKED → 排查发现腾讯云安全组(外层)之外还有 ufw(内层,只放行 22)。 ufw allow 8443/tcp + ufw allow 8444/tcp 后全通。 教训:端口不通要查两层——云安全组和系统防火墙,缺一不可。

5.4 晚高峰端到端实测(如实记录,不粉饰)

  • Reality 握手 5/5 成功。
  • mihomo URL 测延迟(21:10 周六晚):直连 475-1385ms,中转 725-1924ms,互有胜负。
  • 诚实结论:晚高峰两条路都抖;中转的结构性优势在国际段零丢包(长连接不断流), 延迟优势需明日非高峰复测才有干净基线。TCS 回执已登记 off_peak_retest 待办。

六、ZY-LIMB-001 第三课(本日训练事件)

  • 冰朔批评:「你应该每次做开发任务的时候都把子人格Agent带上训练。你今天都把他忘记了。」
  • 脑认错当场开课:出勤体检(身份四问全对)→ 写任务书(客户端配置生成)→ 手脚独立 交付三件 → 脑双盲复核(URI 反解析断言、JS 双场景幂等实测)全 PASS。
  • 钉死新规矩:脑接开发任务先过「能否给手脚做」的分流问题;能则任务书下发, 脑只做审定与部署。
  • 第四课(端到端回执训练)由脑抢跑(安全组刚开需即时交底)——如实记录,下一任务补上。
  • 归档:训练日志第三课 + 因果树叶片(守卫 ok=true,reviewed 9)+ current.json lessons_done=3。

七、清理与备份

  • 删除五处旧客户端残留:/Applications/铸渊专线.app(90M)、AppSupport(29M)、 Caches(72K)、WebKit×2。删前核验:app 未运行、日志无新诊断价值、系统代理不受影响。
  • 清理:本会话 /tmp 残留、DNS 缓存。活缓存(TRAE 990M/Chrome 715M/pnpm 438M)为 运行数据,不乱删。
  • 备份(本目录 outputs-vpn-20260823/):小火箭 URI 三件(中转版/直连版/base64)、 思维链(本文件)。源码正本本就在移动硬盘 WORK-工作区/zy-line-client/(未动)。

八、遗留与下一步

项 状态
Verge v2 生效 需冰朔在 Verge 订阅页重新激活/重启 Verge
小火箭中转节点 URI 已交付(outputs-vpn-20260823/shadowrocket-relay-uris.txt)
中转延迟干净基线 明日非高峰复测
zy-line-client 源码 保留移动硬盘(冰朔:哪天想捡起来再说)
流量纪律 SG 专线预算 500GB/月,勿挂大下载
ZY-LIMB-001 第四课 下一个真实开发任务执行回执训练

九、四出口扩展 + 订阅流量显示(同日夜续)

  • 冰朔追加:四台 SG 服务器全部入列、总量 1000G/月、可换着用(大脑带宽最快)。
  • 新装 Xray:SG-003(43.153.193.169)、SG-006(43.153.203.105),各生成独立 Reality 密钥对,8443/gateway.icloud.com/BBR/systemd 常驻。xray 26.3.27 新版输出格式变化 (PrivateKey:/Password (PublicKey))导致首次解析落空,修正后部署成功。
  • 双层防火墙教训复现:SG3/SG6 云安全组未开 8443 时直连/中转全 FAIL;冰朔控制台开后 直立即通。zsh 循环内 set -- 不分词导致一轮误报 FAIL,重测用显式命令排除。
  • GZ realm 扩为四路:8443→面孔、8444→大脑、8445→SG3、8446→SG6。GZ 云安全组尚差 8445/8446(待冰朔开),开前两路新中转外部不可达,但订阅已含四节点(url-test 容忍)。
  • 流量显示实现:静态订阅升级为 zy-sub-service(Node/PM2,3944 端口),iptables 计数规则(multiport 8443-8446 in/out,cron @reboot 持久化)→ 60s 轮询累计 → subscription-userinfo 响应头(total=1000GiB,自然月重置,expire=0)→ Verge/ 小火箭自动显示剩余流量。nginx /zy-sub/ 反代到服务。
  • 部署文件正本:outputs-vpn-20260823/deploy-zy-sub-service/(server.js/nginx-edit.py/ clash-4node.yaml)。
  • 脑自做理由(分流记录):服务器部署属 STAGE-0 手脚禁列(部署),脑执行;下一个纯 本地任务再回手脚。

十、四路终验 + TCS-first 语言纪律(同日夜末)

  • 冰朔开齐 GZ 云安全组 8445/8446 后终验:TCP 全通、Reality 握手全通、 mihomo 实测大脑 392-683ms / 面孔 482-1398ms / 三号 693-1420ms(晚高峰抖动常态)、 六号 delay 测试偶发超时但 Reality 链路层验证 OK;自动选线正常工作(选中面孔); 经代理 Google 200 / GitHub 200 / 下载 ~260KB/s。
  • 归档区事件:CODEX 线正整理旧语言代码进历史隔离区(zy-line-client 已挪至 HoloLake参考开发逻辑源码区/历史工作区/),TRAE 线不引用旧区。
  • TCS-first 语言纪律(冰朔 2026-08-23 谕立):新的有效路径必须是 TCS 编程语言 写出的模块应用;旧语言产物只作历史参照——否则光湖语言系统绕回旧时代规则, 自有协议被别人的旧规则压下去。
  • TRAE 线新工具区已立:TRAE-DEV-20260820/tools-runtime/(vpn-diag 工具箱 + 语言纪律 README)。mihomo/Country.mmdb 等二进制为过渡期运维件,非开发基线。