哪吒监控 V1

哪吒监控 V1 版本相比于 V0 版本有一个重要更新,那就是从 V1 版本开始,不再区分 Dashboard 和 gRPC 端口,访问与通信均通过默认的 8008 端口。

如此一来,我们就可以只需要一个域名在 Cloudflare 开启 CDN (打开小黄云)并配置反向代理,使面板和 agent 通信都使用同一个域名并且开启 TLS。

Cloudflare 配置


在旧版中,如果我们需要使用监控面板开启 CDN,就必须要准备两个域名,一个配置好 CDN,用作公开访问,CDN 需支持 WebSocket 协议。另一个域名不使用 CDN,用作 Agent 与 Dashboard 的通信。比如 dashboard.demo.comagent.demo.com

在新版 V1 版本中,我们可以仅使用一个域名开启 CDN,访问与通信均通过一个域名来完成,此处以 dashboard.demo.com 为例。

  • 添加解析: 设置 → DNS → 记录 → 添加 dashboard.demo.com 的 A 记录,指向你的面板主控 VPS 地址,并开启小黄云 (开启 CDN)。
  • 开启协议: 设置 → 网络里面打开 WebSockets 和 gRPC 开关。
  • 加密方式: 设置 → SSL/TLS → 概述 → SSL/TLS 加密 模式选择 完全
  • 创建证书: 设置 → SSL/TLS → 源服务器 → 创建证书(秘钥类型 RSA (2048)

安装哪吒监控 V1


官方文档地址: 哪吒监控 V1 安装 Dashboard

海外服务器使用镜像

curl -L https://raw.githubusercontent.com/nezhahq/scripts/refs/heads/main/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh

中国大陆服务器使用镜像

curl -L https://gitee.com/naibahq/scripts/raw/main/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh

以 Docker 安装为例,安装完成后按提示输入以下信息:

  • 请输入站点标题: - 自定义站点标题 (自行设置)
  • 请输入暴露端口: - 公开访问端口 (可直接默认 8008,回车就行)
  • 请指定安装命令中预设的 nezha-agent 连接地址: - Agent 对接地址【域名/IP:端口】 (此处设置为 dashboard.demo.com:443
  • 是否希望通过 TLS 连接 agent : Agent 通信使用 TLS 连接 (选 y)
  • 请指定后台语言: - 选择语言偏好。

输入完成后,等待拉取 Docker 镜像。安装结束后,如果一切正常,你可以通过域名和端口号访问 Dashboard,例如:

http://dashboard.demo.com:8008

如果需要再次运行安装脚本,可输入以下命令:

./nezha.sh

1Panel 下的反向代理配置


推荐 1Panel,宝塔面板也可行,理论上配置无差别

从 V1 版本开始,不再区分 Dashboard 和 gRPC 端口,访问与通信均通过默认的 8008 端口。

以我正在使用的 1Panel 为例:

  • 创建站点: 网站 —— 创建站点 —— 反向代理 / 静态网站,填写你的公开访问域名,如 dashboard.demo.com,代理地址填写 http://127.0.0.1:8008 并确认保存。
  • 配置证书: 打开刚创建的网站右边的 配置 —— HTTPS 配置你的证书文件(可以直接 1Panel 下 Acme 账户在线申请证书也可以使用 Cloudflare 的 15 年源服务器证书。)然后启用 HTTPS。
  • 配置反代: 需要两步
  1. 打开配置文件菜单,在最后面加上以下代码,然后点保存并重载
upstream dashboard {
    keepalive 512; 
    server 127.0.0.1:8008; 
}
  1. 打开 反向代理 —— 源文,将里面的内容全选删除,并替换为以下代码,然后点 确认
location ^~ / {
    proxy_pass http://127.0.0.1:8008; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header REMOTE-HOST $remote_addr; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header nz-realip $http_cf_connecting_ip;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_http_version 1.1; 
    proxy_read_timeout 3600s;
    proxy_send_timeout 3600s;
    proxy_buffer_size 128k;
    proxy_buffers 4 128k; 
    proxy_busy_buffers_size 256k;
    proxy_max_temp_file_size 0;
    add_header X-Cache $upstream_cache_status; 
    add_header Cache-Control no-cache; 
    proxy_ssl_server_name off; 
    proxy_ssl_name $proxy_host; 
    add_header Strict-Transport-Security "max-age=31536000"; 
}

underscores_in_headers on;
set_real_ip_from 0.0.0.0/0; # CDN 回源 IP 地址段
real_ip_header CF-Connecting-IP; # CDN 私有 header,此处为 CloudFlare 默认

# gRPC 服务
location ^~ /proto.NezhaService/ {
    grpc_set_header Host $host;
    grpc_set_header nz-realip $http_CF_Connecting_IP; 
    grpc_read_timeout 600s;
    grpc_send_timeout 600s;
    grpc_socket_keepalive on;
    client_max_body_size 10m;
    grpc_buffer_size 4m;
    grpc_pass grpc://dashboard;
}

# WebSocket 服务
location ~* ^/api/v1/ws/(server|terminal|file)(.*)$ {
    proxy_set_header Host $host;
    proxy_set_header nz-realip $http_cf_connecting_ip; 
    proxy_set_header Origin https://$host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 3600s;
    proxy_send_timeout 3600s;
    proxy_pass http://127.0.0.1:8008;
}

至此,所有配置完成,你可以直接访问 dashboard.demo.com 来打开面板,进入后台点击服务器 —— 安装命令 —— Linux 复制 agent 命令开始添加你的受控小鸡了。

哪吒面板设置


登录到 Dashboard 配置界面

后台管理界面的路径为 /dashboard,你只需访问:

http://dashboard.demo.com/dashboard

首次登录的默认用户名和密码均为 admin。建议登录后立即进入管理页面点击 头像 —— 个人信息 —— 更新个人资料 修改用户名和密码。

注意

因为面板和 agent 都开启了 CF CDN,我们需要在面板系统设置里面的 真实 IP 请求头 填写 CF-Connecting-IP,后台的登录 IP 以及其它地方才能正常显示真实 IP。

老节点搬家


停止并卸载服务:

cd /opt/nezha/agent/
./nezha-agent service uninstall

删除 Agent 文件夹:

rm -rf /opt/nezha/agent/

具体使用


添加服务器

直接在后台 —— 服务器 ——— 安装命令选对应的机器。然后到节点机器上粘贴就行。

这里补充一个小机器,可以加入机器的到期时间和价格等,防止忘记续费。官方教程

如果您不熟悉 JSON 配置规则,可以使用以下第三方公开备注生成器快速生成配置: 公开备注生成器