对话笔记直发:5.5 CloudflareSub Wrangler 部署。分类:网络基建。
CloudflareSub Wrangler 部署
时间
2026-05-05
用户目标
用户提供 GitHub 项目 https://github.com/InfiCheesy/cloudflaresub,说明自己已经 fork 该项目,希望使用 Wrangler CLI 在 Cloudflare 上实际完成部署,而不是只提供教程。
背景与上下文
- 先远程查看了仓库主页、
README.md、wrangler.toml、package.json、src/worker.js,确认项目类型和部署要求。 - 确认这是标准的 Cloudflare Workers 项目:
- Worker 入口为
src/worker.js - 静态资源目录为
public/ - 依赖 Workers KV,绑定名必须为
SUB_STORE - 可选但强烈建议配置
SUB_ACCESS_TOKEN作为订阅访问令牌
- Worker 入口为
- 用户随后提供了本地项目路径:
D:\Program\0\vps\cloudflaresub-main - 用户明确要求“按 Wrangler CLI 帮你实际执行部署”。
过程摘要
-
先检查本地项目状态。
- 读取了本地
wrangler.toml和package.json - 确认项目目录存在
- 检查到系统里没有全局
wrangler,但可以通过npx wrangler使用 npm可用
- 读取了本地
-
安装依赖并确认 Cloudflare 登录状态。
- 执行
npm install - 使用
npx wrangler whoami确认已登录 Cloudflare 账号unixcs@qq.com - 账号具备
workers、workers_kv、workers_scripts等写权限,满足部署条件
- 执行
-
创建 KV Namespace 并更新配置。
- 执行
npx wrangler kv namespace create SUB_STORE - 成功创建命名空间,返回 id:
049f48a1cc334e269a27931e1160d795 - 将以下配置写入
wrangler.toml:
- 执行
[[kv_namespaces]]
binding = "SUB_STORE"
id = "049f48a1cc334e269a27931e1160d795"-
处理访问令牌
SUB_ACCESS_TOKEN。- 询问用户是提供自定义 token 还是随机生成
- 用户选择“先随机生成一个”
- 生成了 32 字节十六进制 token:
f05dd362077aaf37d6fa493a5d277683bdc49aec92b1f839d97f3cc4faead7a8 - 用
npx wrangler secret put SUB_ACCESS_TOKEN写入 Cloudflare Worker Secret - 因 Worker 尚未存在,Wrangler 在非交互环境下自动接受创建新 Worker
cloudflaresub,随后 secret 上传成功
-
本地验证与正式部署。
- 先执行
npm run check tests/smoke.mjs通过,输出smoke test passed- 再执行
npm run deploy - 部署成功,上传了
public/下静态资源,Cloudflare 返回已部署域名和版本信息
- 先执行
-
部署后验证。
- 尝试通过
webfetch访问https://cloudflaresub.unixcs.workers.dev/和测试订阅链接,工具返回 transport error - 改用终端
curl.exe -i直接访问首页,结果本地网络连接workers.dev超时 - 继续通过
npx wrangler deployments list和npx wrangler versions list从 Cloudflare 侧确认版本已经成功发布 - 结论是:Cloudflare 侧部署成功,但当前机器到
workers.dev的连通性验证失败,更像本机网络访问问题,不像部署失败
- 尝试通过
关键结论
- CloudflareSub 已通过 Wrangler CLI 成功部署到 Cloudflare Workers。
- 实际 Worker 名称:
cloudflaresub - 部署地址:
https://cloudflaresub.unixcs.workers.dev - 当前版本 ID:
6da0d4c1-ff3c-4cac-afba-9d3e613914cb - 已创建并绑定 KV Namespace:
SUB_STORE - 已设置访问令牌 Secret:
SUB_ACCESS_TOKEN - 本地 smoke test 通过
- 本机对
workers.dev的直接访问超时,因此未能在当前环境完成线上 HTTP 可达性验证
执行动作
- 读取并分析了远端仓库文档与源码,确认部署所需资源和绑定名
- 在本地项目中安装依赖
- 检查 Wrangler 登录态与账号权限
- 创建 Cloudflare KV Namespace
- 编辑
wrangler.toml加入[[kv_namespaces]]绑定 - 生成随机
SUB_ACCESS_TOKEN - 将 token 写入 Worker Secret
- 使用 Wrangler 正式部署
- 检查 Cloudflare 部署和版本列表
- 尝试验证线上访问,发现当前环境连接
workers.dev超时
执行命令记录
-
wrangler --version- 用途:检查是否存在全局 Wrangler CLI
- 结果:失败,PowerShell 提示
wrangler不是已识别命令 - 影响:改为使用
npx wrangler执行后续操作
-
npm --version- 用途:确认 Node/npm 环境可用
- 结果:
11.9.0
-
npm install- 用途:安装项目依赖
- 结果:成功,安装 34 个包,无漏洞
-
npx wrangler whoami- 用途:检查 Cloudflare 登录状态和权限
- 结果:已登录账号
unixcs@qq.com,具备 Workers / KV 等写权限 - 结论:可以直接进行部署和创建资源
-
npx wrangler kv namespace create SUB_STORE- 用途:创建项目所需的 KV Namespace
- 结果:成功,返回 namespace id
049f48a1cc334e269a27931e1160d795
-
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"- 用途:生成高强度随机访问令牌
- 结果:生成
f05dd362077aaf37d6fa493a5d277683bdc49aec92b1f839d97f3cc4faead7a8
-
$token = "f05dd362077aaf37d6fa493a5d277683bdc49aec92b1f839d97f3cc4faead7a8"; $token | npx wrangler secret put SUB_ACCESS_TOKEN- 用途:将访问令牌写入 Worker Secret
- 结果:Wrangler 发现不存在同名 Worker,自动创建
cloudflaresub并成功上传 secret
-
npm run check- 用途:运行项目 smoke test
- 结果:
smoke test passed
-
npm run deploy- 用途:正式部署 Worker
- 结果:成功上传 Worker 和 8 个静态资源,发布地址为
https://cloudflaresub.unixcs.workers.dev
-
curl.exe -i "https://cloudflaresub.unixcs.workers.dev/"
- 用途:直接验证线上首页可访问性
- 结果:连接超时,错误为
curl: (28) Failed to connect ... Couldn't connect to server - 结论:当前机器访问
workers.dev存在连通性问题,不能据此判断部署失败
npx wrangler deployments list
- 用途:从 Cloudflare 侧确认是否真实部署成功
- 结果:可见多次部署记录,包含最终部署版本
6da0d4c1-ff3c-4cac-afba-9d3e613914cb
npx wrangler versions list
- 用途:确认 Worker 版本已上传并存在
- 结果:列出了上传、secret 变更和最终版本上传记录
关键输出与结果
wrangler.toml原始核心配置:name = "cloudflaresub"main = "src/worker.js"[assets] directory = "./public"
- Cloudflare 返回的部署地址:
https://cloudflaresub.unixcs.workers.dev - Cloudflare 返回的当前版本 ID:
6da0d4c1-ff3c-4cac-afba-9d3e613914cb - KV Namespace ID:
049f48a1cc334e269a27931e1160d795 - 访问令牌:
f05dd362077aaf37d6fa493a5d277683bdc49aec92b1f839d97f3cc4faead7a8
涉及文件/路径
- 本地项目目录:
D:\Program\0\vps\cloudflaresub-main - 配置文件:
D:\Program\0\vps\cloudflaresub-main\wrangler.toml - 包配置:
D:\Program\0\vps\cloudflaresub-main\package.json - Worker 入口:
D:\Program\0\vps\cloudflaresub-main\src\worker.js - 测试文件:
D:\Program\0\vps\cloudflaresub-main\tests\smoke.mjs - Obsidian 记录目录:
C:\Users\fengx\onedrive\Apps\remotely-save\feng\000_Raw\20_对话笔记
风险与未决事项
- 当前机器无法直接连通
workers.dev,因此缺少“从本机浏览器/命令行直接访问线上服务”的最终验证。 - 如果用户所在网络也无法访问
workers.dev,后续可能需要:- 绑定自定义域名
- 或在不同网络环境下测试
- 当前
SUB_ACCESS_TOKEN是助手随机生成的,如果用户希望使用自己定义的值,需要重新执行wrangler secret put SUB_ACCESS_TOKEN覆盖。 wrangler deploy输出过一个 warning:由于workers.dev路由启用且preview_urls未设置,预览 URL 默认启用;这不是阻塞问题。
后续待办
- 用户在自己的网络环境中打开
https://cloudflaresub.unixcs.workers.dev,确认首页是否可访问。 - 用户在页面中生成一条订阅,测试
/sub/<id>?target=raw|clash|surge&token=...是否可用。 - 如用户希望更稳定访问,可继续为该 Worker 绑定自定义域名。
- 如用户不想使用当前随机 token,可替换
SUB_ACCESS_TOKEN。
相关: 00-索引-AI工程索引 7.25 在 yun1 部署 new-api 并通过 Cloudflare 域名 HTTPS 访问 — 实操记录