抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >
海灵总结

海灵提示:这篇文章记录了一次把 BPB Worker Panel 部署到 Cloudflare Workers 的过程。主要内容包括项目选择、Wrangler 构建发布、KV 绑定、环境变量配置、自定义域名绑定、Clash 订阅优化,以及 Normal、Warp、Warp Pro 等订阅类型的区别。文中不会公开真实 API Token、UUID、订阅路径等敏感信息,只保留可复现的操作思路。

前言

这次记录的是把 bia-pain-bache/BPB-Worker-Panel 部署到 Cloudflare Workers 的过程。

这个项目本质上不是一个普通网站,而是一个运行在 Cloudflare 边缘网络上的代理配置面板。它可以生成 VLESSTrojanWARP/WireGuard 等配置,并且提供适配 Clash/MihomoSing-boxXray 等客户端的订阅链接。

我这次的目标比较明确:

  1. 把项目部署到自己的 Cloudflare 账号。
  2. 绑定自己的域名。
  3. 配置成适合 Clash Verge / Mihomo / FLClash 使用的状态。
  4. 尽量保持原项目代码不改,只通过官方配置项完成部署。
  5. 不把 Cloudflare API TokenUUIDTrojan Password、订阅私有路径等敏感信息写进文章。

准备

需要提前准备这些东西:

  • 一个 Cloudflare 账号。
  • Cloudflare 的 Account ID
  • 一个最小权限的 Cloudflare API Token,用来操作 Workers、KV 和当前域名的 Worker 路由。
  • 一个已经接入 Cloudflare 的域名。
  • 本地安装 Node.jsnpmWrangler

项目地址:

https://github.com/bia-pain-bache/BPB-Worker-Panel

这次使用的是 BPB Panel v4.2.3

海灵把 BPB Worker Panel 的部署步骤接成一条可验证的码头链路

拉取和构建项目

先拉取项目:

git clone https://github.com/bia-pain-bache/BPB-Worker-Panel.git
cd BPB-Worker-Panel

安装依赖:

npm install

构建 Worker 文件:

npm run build

构建完成后会生成:

dist/worker.js
dist/worker.zip

这里实际部署用的是 dist/worker.js

创建 KV Namespace

BPB 面板需要用 Cloudflare KV 保存面板密码、配置项、WARP 账号等数据。

创建 KV:

npx wrangler kv namespace create "你的-kv-名称" --binding kv

注意绑定名必须叫:

kv

这是项目源码里固定读取的绑定名。如果绑定成别的名字,面板会提示 KV 没有正确配置。

Wrangler 配置

项目没有默认附带 wrangler.toml,可以自己写一个最小配置:

name = "你的-worker-name"
main = "dist/worker.js"
compatibility_date = "2026-07-07"
workers_dev = true

[[kv_namespaces]]
binding = "kv"
id = "你的 KV Namespace ID"

这里有两个注意点:

  1. Worker 名称不要包含太明显的敏感关键词。
  2. compatibility_date 可以按部署当天日期写。

配置环境变量

BPB 至少需要这几个运行时变量:

UUID=<VLESS UUID>
TR_PASS=<Trojan Password>
SUB_PATH=<订阅路径>

其中:

  • UUID:VLESS 使用的用户 ID。
  • TR_PASS:Trojan 使用的密码。
  • SUB_PATH:订阅链接路径,建议随机生成,不要使用太容易猜到的字符串。

可以用脚本随机生成,也可以在面板的 /secrets 页面生成。

发布时可以使用 --secrets-file

npx wrangler deploy \
--config wrangler.toml \
--no-bundle \
--secrets-file secrets.json \
--keep-vars

secrets.json 的结构类似:

{
"UUID": "随机 UUID",
"TR_PASS": "随机密码",
"SUB_PATH": "随机订阅路径"
}

部署完成后,记得删除本地临时 secret 文件。

绑定自定义域名

如果域名已经在同一个 Cloudflare 账号下,可以直接给 Worker 添加自定义域名:

npx wrangler deploy \
--config wrangler.toml \
--no-bundle \
--keep-vars \
--domain "你的域名"

绑定成功后,面板地址大概是:

https://你的域名/panel

第一次打开 /panel 会要求设置面板登录密码。这个密码会保存到 KV。

面板里的主要订阅类型

BPB 面板里主要有 5 类订阅:

海灵把 BPB 的五类订阅分拣成主力、备用和不推荐日常使用的几组

Normal

这是最推荐日常使用的订阅。

它会生成普通的 VLESS / Trojan 节点,并且会应用面板里的 DNS、路由、端口、协议等配置。

Clash/Mihomo 来说,日常主力可以先用这个。

订阅格式大概是:

https://你的域名/sub/normal/<SUB_PATH>?app=clash

Fragment

Fragment 是面向 Xraysing-box 这类客户端的分片配置,用来改善某些网络环境下的连通性。

如果主要使用 Clash,这一类一般不是重点。

Raw without settings

Raw 是原始配置,不会带上面板里的大部分 DNS、路由、规则优化。

新手不建议优先使用。

Warp

Warp 是 Cloudflare WARP / WireGuard 相关配置。

它和普通 VLESS / Trojan 不是一类东西。可以作为备用方案,但最好配合本机网络环境扫描 WARP Endpoint。

订阅格式大概是:

https://你的域名/sub/warp/<SUB_PATH>?app=clash

Warp PRO

Warp Pro 是带噪声参数的 WARP 配置。它适合 WARP 被干扰时尝试,但不是一定比普通 Warp 更好。

订阅格式大概是:

https://你的域名/sub/warp-pro/<SUB_PATH>?app=clash

Clash 配置思路

我最后按“稳定优先、少折腾”的思路配置:

  • 国内网站直连。
  • 国内 DNS 使用 223.5.5.5
  • 国外远程解析使用 Google DoH。
  • 关闭 ECHTFOFake DNS、自定义 CDN、链式代理等容易引入兼容问题的高级项。
  • 开启 VLESSTrojan
  • 保留 Cloudflare TLS 常见端口。

一开始只保留 443,订阅里只有 8 个节点。后来把 TLS 端口扩展为:

443
8443
2053
2083
2087
2096

节点数量从 8 个扩展到 48 个。

这里没有乱填 Clean IP,因为 Clean IP 和当前运营商、地区、网络环境关系很大。没测就乱填,可能节点变多了,但可用性反而变差。

WARP 的状态

WARP 和 Warp Pro 订阅可以正常返回 Clash 配置,但这只能说明配置生成没问题。

真正要把 WARP 调到比较好的状态,需要断开当前代理后,在本机网络环境下扫描 Endpoint,再把扫描结果填回面板的 Warp General -> Endpoints

官方推荐的扫描器是:

https://github.com/bia-pain-bache/BPB-Warp-Scanner

它会测试真实延迟和丢包情况,比随便复制 Endpoint 靠谱。

和 edgetunnel 的简单对比

部署时也看了一下 cmliu/edgetunnel

简单来说:

  • BPB Worker Panel 更像高级全家桶,功能多,支持 WARP、Warp Pro、Fragment、DoH、路由规则等。
  • edgetunnel 更偏中文友好和轻量,适合快速部署、少看英文配置。

如果只是想要一个中文面板,edgetunnel 可能更舒服。

如果愿意把复杂配置交给面板,后续还想用 WARP、Fragment、详细路由规则,BPB Worker Panel 功能更完整。

遇到的坑

1. Worker 变量不能丢

重新部署或绑定域名时,需要确认 UUIDTR_PASSSUB_PATH 仍然存在。

如果部署输出里没有这些变量,就可能出现面板或订阅不可用的问题。

2. KV binding 必须叫 kv

这个项目读取的是 env.kv,所以绑定名必须是小写:

kv

3. 使用最小权限 API Token

部署和后续维护建议单独创建一个 Cloudflare API Token,只给这个 Worker 需要的权限。

这次需要的权限大致分两层:

  • 账号层:Workers Scripts 读写、Workers KV Storage 读写。
  • 域名层:当前 Zone 的读取权限,以及 Workers Routes 读写权限。

Token 的资源范围也尽量收窄:账号只选当前 Cloudflare Account,Zone 只选绑定 Worker 的那个域名。

这个 Token 只用于本地 Wrangler 部署、更新 Worker、读写绑定的 KV 和维护 Worker 路由,不需要写进 Worker 运行时变量里,也不要提交到仓库或文章中。

4. 订阅地址不要公开

订阅地址里包含 SUB_PATH,相当于配置入口。

公开文章里只写格式,不写真实路径。

总结

这次最终结果是:

  • Worker 部署成功。
  • KV 绑定正常。
  • 自定义域名绑定成功。
  • 面板可以通过 /panel 登录。
  • Clash Normal 订阅可用,并扩展到了 48 个节点。
  • Warp / Warp Pro 订阅可以正常生成,但还需要按当前网络扫描 Endpoint 才能进一步优化。

目前我的建议是:

  1. Normal 当主力订阅。
  2. WarpWarp Pro 当备用订阅。
  3. Raw 暂时不用。
  4. Fragment 主要留给 Xray / sing-box 客户端。
  5. 后续如果觉得 WARP 慢,再单独跑 Endpoint 扫描。

这类部署最重要的不是一开始把所有高级选项都打开,而是先让基础订阅稳定可用,再逐步加优化项。

评论




站点访问量 Loading… 站点访客数 Loading…