--- title: Cloudflare Worker proxy-worker 部署完成并通过 WebSocket 全链路验证 type: checkpoint permalink: main/projects/edd08c64-97c3-47f2-9d10-224833752a50/cloudflare-worker-proxy-worker-部署完成并通过-web-socket-全链路验证 stable_id: 4d0456e2-c1e6-49c5-b079-a7f7e0fc3654 scope: project memory_type: checkpoint project_id: edd08c64-97c3-47f2-9d10-224833752a50 usage_profile_id: 0c9feb46-d06e-43cd-9ef0-c5813c84a998 status: active revision: 1 request_id: cf-worker-vless-sub-20260929-1 created_at: '2026-09-29T03:50:25.223843+00:00' updated_at: '2026-09-29T03:50:25.223843+00:00' tags: - cloudflare - worker - wrangler - vless - websocket - deploy - idn --- 目标:为论坛福利节点(CF 入口 + WARP 出口的 VLESS-WS 节点)部署中转 Cloudflare Worker 并验证订阅链路。 做了什么: 1. 工作区 E:\code\Cloudflare Worker 创建项目:src/index.js(按教程原样转发所有请求到 http://2602-f9f3-0-2--749.sslip.io:54630/sub)、wrangler.toml(name=proxy-worker)、package.json、.gitignore。 2. npm install 后需 `npm install-scripts approve esbuild workerd`(新 npm allowScripts 策略拦截安装脚本),wrangler 4.143.0 就绪。 3. `wrangler login` OAuth 交互式登录成功(guaotiantang@gmail.com / Nixevol / 账号 ID a9639fc53c11f2cc300d54c0f7b28d94)。 4. `wrangler deploy` 成功:https://proxy-worker.nixevol.workers.dev(版本 ee6ebf12-6cdc-4164-93c9-3b927d55e674)。 验证结果: - 普通 HTTP 探测 Worker 返回 400/404 "handshake error: bad Upgrade header"——这是 VLESS over WebSocket 后端的正常拒绝,不是部署故障。 - 订阅服务 β.nyc.mn 的正确 punycode 是 xn--nxa.nyc.mn(β=U+03B2;手写 xn--zca 是错的,会 NXDOMAIN)。用 node:url 的 domainToASCII 计算。 - 订阅 URL:https://xn--nxa.nyc.mn/?host=proxy-worker.nixevol.workers.dev 返回 200 + base64 订阅,解码得 7 个 VLESS 节点(端口 80/8080/8880/2052/2082/2086/2095,域名 *.cf.090227.xyz,host=proxy-worker.nixevol.workers.dev,ws path 各不相同)。 - 用 Node 原生 WebSocket 连 ws://proxy-worker.nixevol.workers.dev/woewvqw6dy1w(订阅中 80 端口节点的 path)握手成功,证明 CF 边缘→Worker→VLESS 后端整条链路连通。 坑与经验: - 本机 Clash 类代理 TUN/fake-IP 模式(DNS 返回 198.18.0.0/15,HTTP 代理端口 7897),部分域名 curl/schannel/Node 直连 TLS 握手失败;对 IDN 域名一律用 Node domainToASCII 算 punycode,不要手写。 - Worker 报 400/404 不一定是部署失败,先看响应体文本区分错误来源(后端服务会带自己的错误文案)。 - 后续:用户在客户端导入订阅 https://xn--nxa.nyc.mn/?host=proxy-worker.nixevol.workers.dev 即可使用;遇节点不可用直接更新订阅。