×

哪吒探针 v1 笔记

Falcon 2025-07-19 views:
自动摘要

正在生成中……

v1 版本不再区分管理端和通讯端,理论上只需要一个域名,并且可以只通过 cdn 连接( 前提是CDN支持websocket 和 gRPC),以cloudflare为例,除了打开小黄云外,还要打开以下选项:

另外,cloudflare 还有一个好处,使用tls连接需要ssl证书,cf可以创建最高15年的客户端证书,也就是cloudflare跟你服务器通讯用的证书。

安装

一键脚本

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

镜像地址会使用国内的源。

安装时的一些注意事项:

选项一: 公开访问端口(默认 8008,可自定义)。

使用docker 安装的话,会开一个8008的端口在全部接口监听,这是个通讯端口,也可以后续通过443 tls 反代,所以不一定需要在防火墙打开这个端口,只在127.0.0.1监听就可以了。

选项二:

请指定安装命令中预设的 nezha-agent 连接地址 (例如 example.com:443)

这个选项跟前面那个是有关联的,如果使用tls加反代连接agent就输入example.com:443,否则输入 example.com:8008,也不使用 tls 连接。

也就是跟选项三相关:

是否希望通过 TLS 连接 Agent?

不过这两个选项在安装完成后可以在后台修改。

用 Docker 安装完成面板数据会在 /opt/nezha/dashboard,修改docker-compose.yaml把监听地址和端口改成127.0.0.1:8008

services:
  dashboard:
    image: registry.cn-shanghai.aliyuncs.com/naibahq/nezha-dashboard
    container_name: nezha-dashboard
    restart: always
    volumes:
      - ./data:/dashboard/data
    ports:
      - 127.0.0.1:8008:8008

nginx 反代,以1panel下的openresty为例:

基本配置,就是server 块结束后加入

upstream dashboard {
    keepalive 512; 
    server 127.0.0.1:8008; 
}

新建一个反代配置文件,写入

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;
}

安装agent

参考官方文档:安装 Agent | 哪吒服务器监控

安装完成后位置在/opt/nezha/agent下,要注意的是默认的配置给得实在太多了,甚至可以直接web ssh执行命令,我觉得有点危险,一旦管理端被攻破,全部vps沦为肉鸡,所以还是限制一下。把config.yml下的 disable_command_execute设置成true

disable_command_execute: true

另外官方没有提供agent的docker安装方式,这里有一个第三方的,用来在openwrt安装没那么麻烦,不过很多信息是容器的而不是宿主机的。

本文收录于