自动摘要
正在生成中……
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安装没那么麻烦,不过很多信息是容器的而不是宿主机的。