哪吒探针 V1 安装教程(Cloudflare + 宝塔面板 + 反代)

最近装了哪吒监控V1,想通过cloudflare来配置,在网上找到了一篇教程,很详细,一次就成功了,所以稍加修改并转发在自己博客上留存记录,以便后续重新安装及维护。

哪吒面板 V1 安装教程官方文档地址:安装 Dashboard | 哪吒服务器监控
原文地址:哪吒探针 V1 安装教程(Cloudflare + 宝塔面板 + 反代) - 若 · ififf

哪吒监控 V1 版相比于 V0 版增加了很多实用功能,比如指定日期重置统计流量、备注小鸡续费时间、设置触发条件后重启或者关机等等,但其中一个重要更新就是从 V1 版本开始,不再区分 Dashboard 和 gRPC 端口,访问与通信均通过默认的 8008 端口


本教程适用于域名托管在 Cloudflare 并使用宝塔面板安装哪吒探针的场景,面板机系统为 Debian 11 或 Debian 12。

本教程 nezha.xxx.com 都改成你自己的域名


1. Cloudflare 设置

  1. 域名解析
    • 将域名(如 nezha.xxx.com)解析到哪吒探针面板服务器的 IP 地址,并开启小云朵(启用代理)。
  2. 网络设置
    • 打开 gRPCWebSockets 支持。
    • SSL/TLS 设置中,选择 完全/完全(严格) 模式。
  3. 源服务器证书
    • 点击左侧 源服务器,创建一个 RSA (2048) 证书,有效期 15 年。
    • 保存好证书的 PEM 文件,后续将用于宝塔面板。

2. 面板机搭建

  1. 安装宝塔面板
    运行以下命令安装宝塔面板:

    wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh && bash install_panel.sh ed8484bec
    • 安装完成后,登录宝塔面板,选择 Nginx 进行安装。
  2. 添加站点
    • 在宝塔面板中,点击 网站 -> 添加站点,填写域名 nezha.xxx.com,点击提交。
    • 进入站点设置,选择 SSL -> 其他证书,将 Cloudflare 生成的 PEM 证书粘贴到对应位置,点击保存(不要开启强制 HTTPS)。

3. 安装哪吒面板

  1. 运行安装脚本
    • 国外服务器
    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
  2. 安装配置
    • 按照提示输入以下信息:
      • 站点标题:自定义标题(后面可改)。
      • 暴露端口:默认 8008(直接回车)。
      • Agent 连接地址:填写 nezha.xxx.com:443(必须带端口号)。
      • 是否使用 TLS 连接 Agent:选择 y
      • 后台语言:选择偏好语言。
  3. 测试访问
    • 安装完成后,使用 http://服务器IP:8008 访问面板,确保正常运行(记得防火墙放行8008)。

4. Cloudflare 回源 IP 段设置

  • 自动化更新Cloudflare的回源IP段配置,确保Nginx服务器始终能正确识别客户端的真实IP地址。
  • 定时任务确保这些更新每天都会执行,从而避免因Cloudflare IP段变化导致的问题。
  1. 创建更新脚本
    新建文件 /www/wwwroot/nezha.xxx.com/update_cloudflare_ips.sh,内容如下:

    #!/bin/bash
    curl -s https://www.cloudflare.com/ips-v4 -o /www/wwwroot/nezha.xxx.com/cloudflare_ips.conf
    sed -i 's/^/set_real_ip_from /' /www/wwwroot/nezha.xxx.com/cloudflare_ips.conf
    sed -i 's/$/;/' /www/wwwroot/nezha.xxx.com/cloudflare_ips.conf
    nginx -t && nginx -s reload
  2. 设置权限和定时任务
    • 赋予脚本执行权限:
    chmod +x /www/wwwroot/nezha.xxx.com/update_cloudflare_ips.sh
    • 添加定时任务(每天凌晨 2 点更新):

    添加以下内容:

    /www/wwwroot/nezha.xxx.com/update_cloudflare_ips.sh

    添加后执行一下脚本


5. 宝塔面板配置

  1. 添加 upstream dashboard 配置
    • 打开之前宝塔创建的站点设置 -> 配置文件,在最后面添加以下代码,然后点保存:
    upstream dashboard {
        keepalive 512;
        server 127.0.0.1:8008;
    }
    • 如果在安装哪吒监控时自定义了端口,将 8008 替换为自定义的端口。
  2. 反向代理设置
    • 在宝塔面板中,点击 反向代理 -> 添加反向代理,填写以下信息:

      • 代理名称:哪吒探针
      • 目标 URLhttp://127.0.0.1:8008
      • 发送域名$host
    • 保存后,点击反向代理的配置文件,将内容替换为以下代码:
    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;
    include /www/wwwroot/nezha.xxx.com/cloudflare_ips.conf;
    real_ip_header CF-Connecting-IP;
    
    # 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;
    }

6. 哪吒面板设置

  1. 访问面板
    • 使用域名 nezha.xxx.com 访问哪吒面板,修改默认密码(哪吒权限很高,不要太简单)。
  2. 真实 IP 设置
    • 在面板的 系统设置 中,将 真实 IP 请求头 设置为 CF-Connecting-IP,以确保显示真实 IP。

7. 添加服务器

  1. 安装 Agent
    • 在面板的 服务器 页面,选择对应的操作系统,复制安装命令。
    • 在目标服务器上运行安装命令,完成 Agent 的部署。
  2. 账单和流量信息及警报规则(可选)
    {
        "billingDataMod": {
            "startDate": "2024-12-08T12:58:17.636Z",
            "endDate": "2024-12-08T12:58:17.636Z",
            "autoRenewal": "1",
            "cycle": "Year",
            "amount": "200EUR"
        },
        "planDataMod": {
            "bandwidth": "30Mbps",
            "trafficVol": "1TB/Month",
            "trafficType": "2",
            "IPv4": "1",
            "IPv6": "1",
            "networkRoute": "4837",
            "extra": "Einstein"
        }
    }

8. 老节点迁移

  1. 停止并卸载旧 Agent
    • 在旧节点上运行以下命令:
    cd /opt/nezha/agent/
    ./nezha-agent service uninstall
    rm -rf /opt/nezha/agent/
  2. 重新安装 Agent
    • 按照第 7 步的说明,在新面板中添加服务器并安装 Agent。

总结

通过以上步骤,你可以成功安装并配置哪吒探针 V1 版本,支持 Cloudflare CDN 和宝塔面板。如果遇到问题,可以参考官方文档或社区支持。