Files
MemRelay/projects/edd08c64-97c3-47f2-9d10-224833752a50/Cloudflare Worker proxy-worker 部署完成并通过 WebSocket 全链路验证.md
memrelay e0da50bb27 create: Cloudflare Worker proxy-worker 部署完成并通过 WebSocket 全链路验证
MemRelay-Operation: memory-save:cf-worker-vless-sub-20260929-1
MemRelay-Resource: 4d0456e2-c1e6-49c5-b079-a7f7e0fc3654
2026-09-29 11:50:27 +08:00

42 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 即可使用;遇节点不可用直接更新订阅。