Cloudflare 账号一多,来回切换登录能把人折腾死。ym-cf-panel 就是为这个场景做的:把你名下多个 Cloudflare 账号装进一个面板,首页一眼看全每个账号的用量和免费额度进度条,点进去还能直接改 DNS、管 KV/D1、看部署、清缓存。这篇讲清它有什么功能、怎么一步步部署出你自己的一个、和原站有什么区别、出问题去哪查去哪改。
一、为什么做它
用 Cloudflare 久了,账号很容易越攒越多:一个放博客、一个放工具站,再帮朋友管一个……Cloudflare 官方后台一次只能登录一个账号,想看另一个账号的用量,就得退出、重登、过验证,一圈下来几分钟没了。更麻烦的是免费额度这件事:Workers、KV、D1、R2 各有各的每日/每月免费上限,分散在官方后台的不同页面里,平时没人会挨个点进去看,等发现超了往往已经晚了。
ym-cf-panel 的思路很简单:把多个账号聚合到一页。你给每个账号发一个 API 令牌填进面板,面板在服务端替你去调 Cloudflare 官方接口,把用量、额度、资源清单拉回来汇总展示;需要动手改的时候,也不用再切回官方后台,常用的管理操作面板里直接就能做。整个面板部署在你自己的 Cloudflare Pages 上,全程免费,数据只经过你自己的账号。
二、功能全清单
功能分两大块:看(监控,只读就够)和改(管理,需要多给一点权限),外加一些顺手的小设计。
看的部分(监控)
- 多账号汇总:任意多个 Cloudflare 账号,首页一张卡一个账号,顶部还有全账号汇总;每个账号用自己的令牌,互不影响。
- 五大产品用量:Workers 请求/错误/子请求、Pages 函数请求(面板会自动把 Pages 的函数调用从脚本统计里拆出来单列)、KV 读/写/删/列、D1 行读/写与查询数、R2 的 A/B 类操作与存储量。
- 免费额度进度条:三色状态(绿→黄→红)。今日视图对照每日免费额度(Workers 10 万/天、KV 读 10 万/写 1000、D1 行读 500 万/写 10 万),30 天视图对照 R2 月额度(A 类 100 万、B 类 1000 万、存储 10 GB),快超没超扫一眼就知道。
- 站点流量分析:总请求、总流量、来源国家 Top、状态码分布、热门路径、缓存命中率,还能按域名拆开看。
- 请求趋势 + 用量突刺标记:今日按小时、7/30 天按天画趋势;最近一期请求量达到此前平均 2 倍以上时,详情页会标出「用量突刺」,被刷了能第一时间发现。
- 资源清单:域名、Workers 脚本、Pages 项目、D1 数据库、KV 命名空间、R2 存储桶,一屏列全。
- 令牌自检:账号管理里一键验证全部令牌,并逐项探测各数据源,缺哪项权限一眼可见。
- 用量报告导出:详情页一键导出该账号当前视图的 JSON 报告,留档或发给别人看都方便。
- 顶部可切 今日 / 7 天 / 30 天 三种视图;数据在服务端缓存 2 分钟,也可以点刷新按钮强制更新。
改的部分(管理,登录管理员后使用,令牌要带对应的 Edit 权限)
详情页下方有十二个管理页签,常用的都在里面:
- DNS 记录:增删改、代理开关、批量删除、BIND 格式导入/导出,还有 SPF / DMARC 常用预设一键填入。
- 域名设置:强制 HTTPS、TLS 1.3、HTTP/2/3、最低 TLS 版本、安全级别(含「正在遭受攻击」模式)、开发模式、Brotli、机器人战斗模式等 23 项开关,加上 DNSSEC 和 SSL 证书管理(通用 SSL 开关、证书包与到期日、自定义证书上传/删除)。
- 规则:各类规则集逐条启停;WAF 自定义规则可新建/编辑/删除(表达式 + 拦截/质询/记录动作);页面规则(Page Rules)增删改。
- 邮件转发:邮件路由启停、转发规则增删、catch-all 状态、账号级目标地址列表。
- KV:按命名空间浏览键、改值、删键、加键;命名空间新建/改名/删除;整个命名空间还能导出/导入 JSON,搬家备份很方便。
- D1:SQL 控制台(看表、执行、结果表格)+ 新建/删除数据库、导出 SQL、时间旅行恢复(Time Travel,误删数据能恢复到过去的时间点)。
- 部署:Pages 部署回滚/重试、项目信息查看、新建/删除项目、绑/解绑自定义域名;Workers 版本部署、绑定与定时触发查看、查看/上传代码、workers.dev 开关、域名路由增删、删除脚本、实时日志快照。
- 隧道(Tunnel):列表与连接状态、新建(令牌只显示一次)、公共主机名规则编辑、一键生成 CNAME、删除。
- R2:存储桶新建/删除,外加桶内文件管理(填一次 S3 密钥,就能浏览/上传/下载/删除桶里的对象)。
- 清缓存:整站清除或按网址清除。
- 账号:成员列表/邀请/移除、账号改名、账单资料、Cloudflare 官方审计日志、Web Analytics 站点、账号级 API 令牌新建/删除。
- 产品:Zero Trust Access 应用与服务令牌、Queues 队列、负载均衡(含源池/健康检查查看)、注册商域名(自动续费/转移锁)、Stream 视频、Images 图片。
- 操作日志:在面板里做过的修改自动留痕(账号管理里查看,最近 100 条),谁在什么时候改了什么有据可查。删除类操作都要点两次确认,防手滑。
其他小设计
- 深/浅/跟随系统三种主题,移动端有适配,手机上也能用。
- 无任何外部 CDN 依赖,国内网络打开也快。
- 可选「未登录公开今日汇总」:只显示各产品今日总数,不含账号名与明细,默认关闭。


三、特点与优点
- 令牌只存你自己的 KV:你添加的账号令牌保存在你自己部署的 KV 里,只由服务端转发到 Cloudflare 官方接口,浏览器端永远拿不到令牌原文(列表里只显示末 4 位)。
- 后台是真登录,不是前端假密码:管理员密码以盐值哈希存储,会话用 HttpOnly Cookie;Pages 项目的环境变量在面板里也只显示名字、永不显示值。
- 部署在自己账号里:面板本体就是一个 Pages 项目,跑在你自己的 Cloudflare 账号下,不经过任何第三方服务器,仓库里只有代码,不包含任何人的账号数据。
- 只读就能用全监控:只看用量的话,令牌全给只读权限即可,能看不能改,心里踏实;想动手管理,再按需补对应的 Edit 权限(见部署一节的权限清单,缺哪项面板会直接告诉你)。
- 手机可用:出门在外想看一眼额度、清一下缓存,手机浏览器打开面板就能办,不用等回到电脑前开官方后台。
- 全程免费:Pages + KV 都在免费额度里跑,面板本身不产生额外费用。
四、一步一步部署
推荐用「Pages 连接 GitHub」的方式:部署完之后,代码更新能自动上线(原因看第五节)。全程在浏览器里点点点,不用写代码。
第 1 步:Fork 仓库
打开仓库页,点右上角 Fork → 选自己的账号 → Create fork,得到一份你自己的代码副本。

第 2 步:先建 KV 命名空间
Cloudflare 控制台 → 存储和数据库 → KV → 创建命名空间,名字随意,比如 cf-panel-data。这个 KV 以后用来存你添加的账号令牌和面板设置,是面板的「数据库」,先建好,下一步要用。
第 3 步:建 Pages 项目并连接 Git
Cloudflare 控制台 → Workers 和 Pages → 创建 → Pages → 连接到 Git → 选你刚 Fork 的仓库;框架预设选「无」,构建命令与输出目录留空,保存并部署。
第 4 步:绑定 KV(最关键,别漏)
Pages 项目 → 设置 → 绑定 → 添加 → KV 命名空间:变量名称必须填 PANEL_KV(一个字都不能差),选第 2 步建的命名空间;保存后重新部署一次,绑定才生效。忘了这一步,打开面板会提示初始化失败(第六节有对应处理办法)。
第 5 步:设置管理员,添加你的第一个 CF 账号
打开部署好的 *.pages.dev 域名,点右上角「设置管理员」,设好后台账号密码(自己记牢,这是进面板的门)。然后进「账号管理 → + 添加账号」,填三样东西:
- 名称:随便起,自己认得出就行;
- Account ID:到 Cloudflare 控制台首页右侧复制,要管哪个账号就填哪个账号的;
- API 令牌:按下方的权限清单新建一个再粘贴进来,保存时面板会自动验证令牌是否有效。
令牌权限清单(最小权限原则):在 Cloudflare 的 API 令牌页 →「创建令牌」→「自定义令牌」。监控必需的只有一项:
| 用途 | 权限 | 必要性 |
|---|---|---|
| 用量与流量分析 | Account → Analytics → Read | 必需,所有用量数据都靠它 |
| 域名清单 | Zone → Zone → Read | 可选 |
| 域名流量 | Zone → Analytics → Read | 可选 |
| Workers 清单 | Account → Workers Scripts → Read | 可选 |
| Pages 清单 | Account → Cloudflare Pages → Read | 可选 |
| D1 清单 | Account → D1 → Read | 可选 |
| KV 清单 | Account → Workers KV Storage → Read | 可选 |
| R2 清单 | Account → Workers R2 Storage → Read | 可选 |
「帐户资源」范围选你要监控的那个账号。上表全部是只读权限,能看不能改——先这样建,用顺手了、想在面板里动手改 DNS/设置/KV 数据时,再按仓库 README 的权限说明给令牌补对应的 Edit 权限(只勾你要用的那几项)。不要图省事给令牌开一堆用不上的权限:令牌权限越大,万一泄露时损失越大;缺哪项权限,面板对应区块会显示拉取失败原因,照着补就行,不用重新部署。
有几个账号,就重复几次这个流程(也可以建一个包含多个账号的令牌,添加账号时重复使用)。
第 6 步:部署自查清单
- [ ] 打开面板域名,能看到设置管理员/登录入口,没有「初始化失败」提示
- [ ] 管理员账号密码设置完成并能正常登录
- [ ] 添加的第一个账号出现在首页,账号卡上有数字、额度进度条能显示
- [ ] 点进账号详情,资源清单(域名/Pages/KV 等)能列出来;个别区块报错先对照权限清单看是不是缺权限
- [ ] 在「账号管理 → 令牌自检」跑一遍,确认令牌各项探测正常
- [ ] 手机浏览器打开面板域名,确认页面能正常看、能操作
五、和原站的区别:Fork 部署后是什么样
很多人会问:我 Fork 部署出来的,和作者正在用的那个,是不是一回事?代码是同一份,但有几点本质区别,新手先看懂再部署,能少走很多弯路。
① 你 Fork 出来的是一个「空面板」,这正是隐私设计。
面板的代码里不带任何账号数据。作者管理的那些账号、令牌,全都存在作者自己部署的 KV 里,只属于作者那一份部署,永远不会随代码走——Fork 只能拿到代码,拿不到任何人的 KV 数据。所以你部署完打开,里面是空的,你添加自己的 CF 账号令牌之后,管的就是你自己的账号。反过来也一样:你面板里存的令牌只在你自己的 KV 里,别人的 Fork 也看不到。
② 它没有「数据自动更新」这回事,数据是点开现拉的。
这个面板没有定时任务:它不在后台默默同步,而是你每次打开面板时,服务端当场去调 Cloudflare 官方 API 把最新数据拉回来(服务端缓存 2 分钟,官方分析数据本身也有几分钟延迟)。所以不存在「别人的能自动更新、我的不能」的问题——谁的面板都是打开现拉,天生就是最新的。
③ 代码升级是另一回事:看你用的哪种部署方式。
- 用第四节推荐的 Pages 连接 Git 方式:你在自己的 Fork 里改了代码一推送(push),Pages 就自动重新部署上线;想跟上作者的新版本,在 GitHub 打开你的 Fork 点 Sync fork → Update branch 同步一下,Pages 同样自动部署。这就是「代码自动更新」的来源——靠的是 Git 连接,不是面板内置了什么更新程序。
- 用仓库 README 里的方式二(下载压缩包直接上传 Pages):没有 Git 连接,就没有自动更新,升级要重新下载新版压缩包再上传部署一遍。想要省心,一开始就选方式一。
- 升级只换代码,不动数据:你的账号、令牌、设置都在 KV 里,升级不会丢;也千万不要在升级时删除 KV 命名空间或改
PANEL_KV绑定名。
④ 这是 GitHub 的通用规则:Fork 不复制这些东西。
Fork 只复制代码仓库本身,不会复制原仓库的 Secrets(加密密钥),也不会复制任何云端资源——KV 命名空间、Pages 项目都要你在自己的 Cloudflare 账号里亲手建(就是部署第 2、3、4 步在做的事)。所以「为什么我 Fork 完不能直接用、还要自己建 KV、自己填令牌」——不是缺了什么,是本来就该这样:那些东西装的是各自的账号数据,不可能也不应该跟着代码走。
⑤ 令牌权限照着清单给,别多给。
再强调一遍第四节的话:只看监控,全只读权限足够;管理功能用到哪项再补哪项 Edit。原站和 Fork 在这一点上没有任何区别——面板能动多大范围,完全取决于你给令牌多少权限。
六、出问题怎么办:先查哪、在哪看、在哪改
面板的故障大多能自己定位,按这个顺序查:
先看三个地方:① Cloudflare 控制台里 Pages 项目的「部署」页,看最近一次部署是不是成功;② 面板里报错区块/提示的原文(它会写明拉取失败原因或 Cloudflare 返回的错误信息);③ 仓库 README 的「常见问题」一节,本节的故障表就是按它整理的。改代码/改配置的位置基本只有两处:令牌在面板「账号管理」里换,KV 绑定在 Pages 项目「设置 → 绑定」里改,改完记得重新部署一次。
| 现象 | 多半是什么原因 | 怎么处理(在哪改) |
|---|---|---|
| 打开面板提示初始化失败 | KV 没绑,或绑定变量名不是 PANEL_KV | Pages 项目 → 设置 → 绑定,检查/补上 KV 绑定(变量名 PANEL_KV),保存后重新部署 |
| 某个账号整卡加载失败 | 令牌失效,或 Account ID 填错 | 在面板「账号管理」里编辑该账号,重新粘贴令牌(保存时自动验证);顺便核对 Account ID 与控制台首页的一致 |
| 只有个别区块报错 / 资源清单为空 | 令牌缺对应产品的只读权限 | 照第四节权限清单补权限,或重建令牌后在账号编辑里换上新令牌,不用重新部署 |
| 面板打不开 / 打开是旧版本 | Pages 部署失败或没部署成功 | 去 Pages 项目「部署」页看最近记录;失败就点重试;刚升级坏的,可在部署页把上一个正常版本「回滚到此部署」 |
| 数字看着不准 / 额度条对不上 | 口径问题,不是故障(见下) | 对照仓库 README「免费额度参考」一节:用量来自官方分析接口,是采样统计,与账单口径可能有细微差异;进度条只在「今日」视图对照日额度、R2 只在「30 天」视图对照月额度;数据有 2 分钟缓存 + 官方延迟,点刷新再看 |
| 7 天视图没有额度进度条 | 正常设计 | 每日额度按天看才准确,所以进度条只出现在「今日」视图(R2 是月额度,只在「30 天」视图) |
| Pages 函数请求去哪了 | 统计口径 | Pages 的函数调用在官方统计里属于 pages-worker--… 脚本,面板会自动拆出来单列;纯静态访问不计入 Workers 请求,在「站点流量」里看 |
| 怀疑令牌泄露 | —— | 立刻去 Cloudflare 后台的 API 令牌页把该令牌吊销,按权限清单重建一个,再到面板「账号管理」里把该账号的令牌换成新的 |
还有一个通用自检入口:「账号管理 → 令牌自检」,它会逐个账号验证令牌并探测六大数据源,哪个账号、缺哪项权限,在这里一眼定位,比挨个区块猜要快。
七、隐私与安全
- 仓库是纯代码:不包含任何人的账号、令牌或域名数据;仓库里的预览图与教程用的都是演示数据。你 Fork 走的也只是这份代码。
- 令牌存哪:你添加的账号令牌只保存在你自己部署的 KV 中,只由服务端转发到 Cloudflare 官方接口
api.cloudflare.com,不经过任何第三方;浏览器端永远拿不到令牌原文,列表里只显示末 4 位。 - 管理员密码:以盐值 SHA-256 哈希存储,会话用 HttpOnly Cookie,不是那种写在前端代码里的「假密码」。
- 公开汇总默认关闭:可选的「未登录公开今日汇总」默认是关的,不开启就不存在未登录能看到的数据;开启也只显示各产品今日总数,不含账号名与明细。
- 两个使用建议:给面板绑定自己的域名,并开启 Cloudflare Access 或保持管理员密码强度,避免后台暴露在公网被扫;令牌按最小权限原则发放(只读优先),怀疑泄露就吊销重建(见第六节故障表)。
八、地址汇总
- 本站仓库:github.com/YiMing918/ym-cf-panel(完整部署图教程、令牌权限全表、免费额度表、升级方法都在仓库 README 里,故障排查看 README「常见问题」)
最后一句总结:Fork 部署你得到的是一台属于你自己的空面板——代码全自动更新靠 Pages 的 Git 连接,数据靠打开现拉官方接口,账号和令牌只进你自己的 KV。照着第四节走完,你的面板就正式上岗了。
还没有评论,来抢沙发。