侧边栏壁纸
博主头像
Tech • VPS • Network vlx@tech

行动起来,活在当下

  • 累计撰写 30 篇文章
  • 累计创建 4 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

免费自建服务器监控面板:NodeGet 探针全平台部署保姆级教程(Cloudflare + VPS)

vlongx
2026-06-07 / 0 评论 / 0 点赞 / 28 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

适用版本: 前后端分离架构
难度等级: ★★★☆☆(中等)
预计耗时: 30 ~ 60 分钟
官方网站: https://nodeget.com

🔍 什么是 NodeGet?

如果你有多台 VPS,或者跑着几个小项目,大概率遭遇过这样的场景:服务突然挂了,完全不知道是内存爆了、磁盘满了,还是流量打满了——因为根本没有监控。

NodeGet 就是为了解决这个痛点而生的。它是一款由 NodeSeek 社区 开发者团队开源的服务器监控管理工具,使用 Rust 语言编写,定位是"下一代服务器探针"。

但 NodeGet 不只是一个普通探针。用官方的话说:「探针只是其微不足道的功能之一。」它更像是 Nezha 探针 + 服务器管理面板的结合体,塞入了相当多的进阶功能,同时把 Agent 端的资源占用控制到了同类项目的第一梯队。

核心特性

特性 说明
🦀 Rust 底层 高性能、低占用,Agent 体积与运行时内存均属同类最优水准
🔌 完全前后端分离 后端只提供 API,前端可自由部署到 Cloudflare Pages / GitHub Pages 等静态托管
🔑 细粒度 Token 权限 为公开展示页、Dashboard、API 调用分配不同权限,安全隔离
🌐 Agent 原生多主控 一个 Agent 可同时上报给多个 Server,互不干扰,适合高级玩家
⚙️ JS Worker 可编程 内建 JS 运行时(基于 QuickJS),支持在服务端运行自定义逻辑,扩展性极强
🗃️ KV 数据存储 类 Cloudflare Workers KV 的键值存储系统,支持任意 JSON 数据
🔒 极致网络安全 对外网络请求仅限 Agent↔Server 必要通信,不会向外泄露数据
💾 数据库可选 小规模部署用 SQLite 即可,大规模可接 PostgreSQL

与同类项目的区别

目前常见的探针项目(如 Nezha、Komari)通常是"前后端一体"——前端和后端跑在同一个服务器进程里,前端访问流量会直接打到你的 VPS 上。

NodeGet 的设计不同:公开展示页面是纯静态前端,独立部署到 CDN(如 Cloudflare Pages),通过 WebSocket 直连后端 API。这样做的好处非常明显:

  • 展示页面本身享受全球 CDN 加速,访客体验好
  • VPS 只承受 Agent 上报流量,而不是所有访客流量
  • 前端和后端完全解耦,可以换主题、换面板而不动后端

适合哪些人?

  • 有 1 台或多台 VPS 想集中监控状态的用户
  • 想把监控面板做成公开展示页(status page)分享给他人的站长
  • 喜欢折腾、希望通过 Worker 和插件扩展功能的进阶玩家
  • 对数据隐私有要求、不想把数据托管给第三方平台的用户

如果你目前在用 Nezha 或 Komari,NodeGet 并非要取代它们,完全可以并行运行。

📋 架构概览

用户浏览器
    │
    ▼
Cloudflare Pages(前端 Dashboard)
    │  WebSocket (wss://)
    ▼
Nginx 反向代理(HTTPS 网关)
    │  HTTP (127.0.0.1:2211)
    ▼
NodeGet Server(后端主控,运行于 VPS)
    │
    ▼
NodeGet Agent(各被监控节点)
组件 部署位置 说明
Dashboard(前端) Cloudflare Pages 免费全球 CDN,无需服务器
Server(后端主控) 您的 VPS(Ubuntu) 数据汇聚与存储中心
Agent(探针) 被监控的各台机器 采集并上报监控指标

阶段一:在 Cloudflare Pages 部署前端 Dashboard

此阶段无需 VPS,全程在浏览器中操作。

第 1 步:Fork 前端仓库

  1. 登录您的 GitHub 账号。
  2. 访问官方仓库:NodeSeekDev/NodeGet-board
  3. 点击右上角的 ForkCreate fork,将代码复制到您自己的账号下。

第 2 步:创建 Cloudflare Pages 项目

  1. 登录 Cloudflare 控制台
  2. 点击左侧菜单 Workers 和 Pages
  3. 点击右上角蓝色 创建 按钮。
  4. 在顶部务必切换到 Pages 选项卡(默认是 Workers,容易选错)。
  5. 点击 连接到 Git,授权并选中您刚刚 Fork 的 NodeGet-board 仓库,点击 开始设置

第 3 步:填写构建参数(关键)

参数 填写值
框架预设 Vue
构建命令 pnpm run build
构建输出目录 dist
环境变量名 NODE_VERSION
环境变量值 20

⚠️ 注意: NODE_VERSION=20 这个环境变量必须填写,否则 Cloudflare 会使用旧版 Node.js 导致编译失败。

第 4 步:部署并记录前端地址

点击 保存并部署,等待 1 ~ 2 分钟编译完成后,Cloudflare 会为您分配一个专属域名,例如:

https://nodeget-board.pages.dev

请将此地址复制保存,后续步骤中会用到。

阶段二:在 VPS 上安装后端 Server

系统要求:Ubuntu 20.04 / 22.04 / 24.04 & Deabin 12 /13 ,已开放 2211 端口(或自定义端口)。

第 1 步:执行一键安装脚本

SSH 登录您的服务器,将下方命令中的域名替换为阶段一获取的 Cloudflare 前端地址,然后执行:

dashboard_url=https://nodeget-board.pages.dev \
bash <(curl -sL https://install.nodeget.com) install-server

第 2 步:按照提示逐步回答(避坑指南)

脚本运行过程中会出现以下交互问题,请严格按照下表操作:

交互提示 推荐操作 说明
请输入 WS 监听地址 (默认 0.0.0.0:2211) 直接回车 使用默认端口即可
请输入 Server UUID (默认自动生成) 直接回车 自动生成,安装完成后记录此值
请输入 Postgres 数据库 URL (留空则选择sqlite) 直接回车 使用轻量级 SQLite,无需额外数据库
是否自动生成自签名 TLS 证书 (y/n, 默认n) 输入 n 回车 TLS 由 Nginx 负责,Server 保持纯 HTTP
是否利用 cloudflare tunnel 创建快速预览链接 输入 n 回车 我们使用自己的域名,无需此功能

⚠️ 特别注意: 数据库选项必须直接回车(使用 SQLite),不要粘贴任何 Postgres 连接字符串。TLS 证书选项必须选 n,否则后续 Nginx 配置会出现 SSL 冲突。

第 3 步:验证 Server 运行状态

systemctl status nodeget-server

看到绿色的 active (running) 即代表安装成功。

第 4 步:记录 Server UUID

后续连接前端时需要用到 UUID,可通过以下命令查看:

cat /etc/nodeget-server.toml | grep server_uuid

阶段三:配置 Nginx 反向代理与 HTTPS

此步骤的目的:让前端通过安全的 wss:// 协议与后端建立 WebSocket 连接。
前提: 您需要有一个已解析到本台 VPS IP 的域名(例如 n.example.com)。

第 1 步:安装 Nginx 和 Certbot

sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx

第 2 步:创建 Nginx 配置文件

sudo nano /etc/nginx/sites-available/nodeget

将以下内容粘贴进去,并将 n.example.com 替换为您实际的域名

server {
    listen 80;
    server_name n.example.com;  # 替换为您的后端域名

    location /nodeget/rpc {
        proxy_pass http://127.0.0.1:2211;

        # WebSocket 长连接必备配置
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";

        # 透传客户端真实 IP
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

保存并退出:Ctrl+OEnterCtrl+X

第 3 步:启用配置并申请 HTTPS 证书

# 建立软链接,激活配置
sudo ln -s /etc/nginx/sites-available/nodeget /etc/nginx/sites-enabled/

# 测试配置文件语法
sudo nginx -t

# 重启 Nginx
sudo systemctl restart nginx

# 自动申请并配置 Let's Encrypt 证书
sudo certbot --nginx -d n.example.com

Certbot 申请过程中:

  • 输入您的邮箱地址(用于证书到期提醒)
  • 输入 A 同意服务条款
  • 输入 N 拒绝接收推广邮件

Certbot 会自动修改 Nginx 配置以支持 HTTPS,完成后后端 WebSocket 地址变为:

https://n.example.com/nodeget/rpc

阶段四:连接前后端,完成初始化

  1. 打开浏览器,访问阶段一获取的前端面板地址(例如 https://nodeget-board.pages.dev)。

  2. 页面弹出连接配置对话框,填写以下信息:

    字段 填写值
    主控 URL https://n.example.com/nodeget/rpc(您的后端域名)
    Token 阶段二第 4 步中记录的 server_uuid
  3. 点击 连接,面板成功加载,部署完成!

阶段五:在被监控节点安装 Agent

在需要监控的其他服务器上执行以下命令(将 UUID 替换为您的 server_uuid):

server_url=https://n.example.com/nodeget/rpc \
server_uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
bash <(curl -sL https://install.nodeget.com) install-agent

Agent 安装完成后,节点会自动出现在 Dashboard 中。

阶段六: 主题

主题一

这个主题有些花哨,纳斯达克+航空
Demo 预览: https://wynnget.pages.dev/
Github: https://github.com/0xUnixIO/NodeGet-StatusShow
点击我一键部署

主题二

这个主题比较简约一些,同时后端有一些定制 需要用镜像去统计在线人数
Server的Docker镜像: https://hub.docker.com/repository/docker/nnnnnio/nodeget/general
Demo 预览: https://wyng.pages.dev/
GITHUB地址:https://github.com/0xUnixIO/NGSS
点击我一键部署

主题三

https://github.com/3257085208/NIE-Theme-NodeGet

主题四

https://nodeget-liquidstatusshow.pages.dev/

预览

常见问题排查

Dashboard 显示"连接失败"

  • 检查 Nginx 是否正常运行:sudo systemctl status nginx
  • 检查 Server 是否正常运行:sudo systemctl status nodeget-server
  • 确认防火墙已放行 80/443 端口:sudo ufw allow 80 && sudo ufw allow 443
  • 确认域名 DNS 已正确解析:ping n.example.com

证书申请失败

  • 确认域名已解析到当前 VPS 的 IP 地址
  • 确认 80 端口未被占用:sudo lsof -i :80

Server 启动失败

查看详细日志:

journalctl -u nodeget-server -n 50 --no-pager

证书到期自动续签

Certbot 安装后会自动创建定时任务,可手动测试续签流程:

sudo certbot renew --dry-run

升级与维护

更新 Server 端

bash <(curl -sL https://install.nodeget.com) update-server

更新前端 Dashboard

前往 GitHub 您 Fork 的仓库,点击 Sync fork 同步上游更新,Cloudflare Pages 会自动触发重新构建。

查看 Server 运行日志

journalctl -u nodeget-server -f

安全建议

  • 建议为 Dashboard 配置 Cloudflare Access 或在前端面板设置访问密码,避免面板暴露在公网。
  • 定期检查并更新 NodeGet Server 版本以获取安全修复。
  • 若 VPS 有防火墙,建议只对外开放 80/443 端口,将 2211 端口限制为仅本机访问(127.0.0.1)。
# UFW 防火墙配置示例
sudo ufw allow 22      # SSH
sudo ufw allow 80      # HTTP
sudo ufw allow 443     # HTTPS
sudo ufw deny 2211     # 禁止外部直接访问 NodeGet 原始端口
sudo ufw enable

文档版本:v1.0 | 参考官方:https://nodeget.com

0

评论区