把 VPS 探针面板放到 Cloudflare Workers:CF-Server-Monitor 部署记录

1233 字
6 分钟
把 VPS 探针面板放到 Cloudflare Workers:CF-Server-Monitor 部署记录

我手上的 VPS 不算多,但分散在不同商家和地区,偶尔还是要看一下在线状态、负载和流量。传统探针一般需要单独准备一台主控服务器,有些还把 WebSSH、命令执行和文件管理全塞进面板里。功能很多,权限也很大。

最近看到 CF-Server-Monitor,它把面板和数据接口放在 Cloudflare Workers 上,监控端只需要在 VPS 上运行一段脚本。客户端负责采集和上报数据,没有 WebSSH,也不能从面板向 VPS 下发任意命令。对我来说,这种边界反而更合适:探针就老老实实做探针。

它和普通探针有什么不同#

CF-Server-Monitor 的服务端主要用了 Cloudflare Workers、D1 和 Durable Objects。自己不需要再准备一台 VPS 跑面板,部署完成后直接访问 Workers 地址即可。

客户端会定时上报这些信息:

  • CPU、内存、Swap、磁盘和系统负载
  • 上传、下载速度以及月度流量
  • 系统、架构、CPU 和 GPU 信息
  • 进程数、TCP/UDP 连接数
  • IPv4、IPv6 地址
  • 到电信、联通、移动等测试节点的延迟和丢包

这里所说的“没有远程控制”,是指它没有远程 Shell、WebSSH 和任意命令执行。新版面板可以调整上报间隔、Ping 模式、流量重置日等有限参数,但这些都是客户端预先定义好的配置项,不是把一段命令传过去执行。

Fork 后部署到 Cloudflare#

我用的是项目推荐的 GitHub 部署方式。先打开项目仓库:

https://github.com/huilang-me/CF-Server-Monitor

Fork 到自己的 GitHub 账号,然后进入 Cloudflare 控制台:

  1. 打开 Workers & Pages
  2. 选择 Create application
  3. 选择 Continue with GitHub,连接刚才 Fork 的仓库。
  4. 项目名可以填写 cf-server-monitor
  5. Build command 填写 npm run build:frontend
  6. Deploy command 填写 npx wrangler deploy --keep-vars

项目的 wrangler.toml 已经声明了 D1 绑定 DB 和 Durable Object 绑定 METRICS_BROADCASTER。部署前要确认 Cloudflare 账号里已经创建 D1 数据库,并把实际的数据库 ID 填入配置;数据库名称默认是 server-monitor-db。Durable Object 则由 Wrangler 按配置部署。

第一次部署后,再到 Worker 的 Settings → Variables and Secrets 添加:

API_SECRET=换成一段足够长的随机字符串

API_SECRET 是必填项,用于探针认证,同时也是后台的默认密码。后台默认用户名是 admin,也可以再增加:

API_USER_NAME=你自己的后台用户名

配置保存后重新部署一次,然后访问:

https://你的项目.你的子域.workers.dev/admin

能正常进入后台,服务端就算搭好了。如果国内网络访问默认的 workers.dev 不稳定,可以再给 Worker 绑定自己的域名。

给 VPS 安装客户端#

先在后台添加一台服务器,面板会为它生成 SERVER_ID、密钥和对应的安装命令。Linux 使用 systemd 时,命令大致如下:

Terminal window
curl -sL https://你的项目.你的子域.workers.dev/install.sh | bash -s install \
-id=<SERVER_ID> \
-secret=<SECRET> \
-url=<WORKER_URL>

执行完成后,脚本会安装并启动 systemd 服务。过一会刷新面板,就能看到这台 VPS 的状态。

项目也提供了 Alpine、OpenWrt、macOS 和 Windows 版本的安装脚本。实际使用时不要自己照抄上面的占位符,直接复制后台为对应服务器生成的命令,少填错几个参数。

虽然安装很方便,但 curl | bash 本质上是下载脚本后直接执行。我会先打开自己 Worker 返回的 install.sh 看一遍,再到 VPS 上运行。另外,安装命令里带有服务器密钥,不要贴到公开日志、聊天记录或工单里。

使用时需要注意的地方#

这个项目目前默认每 60 秒上报一次。间隔越短,Workers 请求和 D1 写入越多,没必要为了面板上的曲线更丝滑,把免费额度白白消耗掉。

历史数据目前只保留 7 天,它更适合看 VPS 是否在线、当前负载和近期流量,不是长期监控和日志分析系统。

还有一点我比较认同:探针默认不会自动升级。服务端更新可以同步 Fork 后重新部署,VPS 上的客户端则需要自己重新执行安装或升级命令。这样麻烦一点,但至少不会在我不知情的时候自动替换服务器上正在运行的脚本。

CF-Server-Monitor 不是一个 VPS 主控面板,它做的事情很明确:客户端采集状态,单向上报给放在 Cloudflare 上的面板。没有远程终端,也没有顺手再塞进一堆管理功能。对于只是想看几台机器是否正常的人来说,这样已经够用了。

最后放一下我自己的服务器探针页面:status.qiui.org。陆陆续续养了不少小鸡,放在一个页面里看着还挺有成就感。

以上。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

把 VPS 探针面板放到 Cloudflare Workers:CF-Server-Monitor 部署记录
https://blog.qiui.net/posts/cf-server-monitor/
作者
Qiui
发布于
2026-08-02
许可协议
CC BY-NC-SA 4.0

评论区

文章目录