昨晚到现在哪吒电报群哀号一片,套 CF 的面板全线崩溃设备离线。具体原因目前未知,估计是 Cloudflare 调整什么引起的,所以赶紧把之前 jcnf 那坨的套 cf 版的教程改一改,变成现在直连方案
首先域名先解析到要搭建哪吒面板的服务器 IP 上,如果是 Cloudflare 解析记得关闭小黄云,切记!切记!切记!
1、面板机搭建
首先一台面板机的搭建,按照官方说法,1c512m 就够用了。建议使用稳定的大厂机器。
安装宝塔面板
升级系统
apt update -y && apt install wget curl sudo unzip git -y
安装宝塔
if [-f /usr/bin/curl];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec
安装 docker(如果这步没安装,后面执行宝塔安装脚本的时候也会自动安装)
curl -fsSL https://get.docker.com | bash -s docker
2、安装哪吒面板
安装 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)。
请指定后台语言: – 选择语言偏好。
安装完后,可以先用你的 ip:8008 就能访问了。如果没问题,我就进行下一步
3、宝塔面板设置
创建一个网站,静态解开
打开配置文件菜单,在最后面填上以下代码,然后点保存:(如果在安装哪吒监控时,你自定义了端口,把下面代码中的 8008 改为你自定义的端口)
upstream dashboard {keepalive 512;
server 127.0.0.1:8008;
}
关键一步
打开反向代理 —— 添加反向代理,127.0.01:8008,保存.
然后点击上图中添加的反向代理目录中的配置文件,将里面的内容全选删除,并替换为以下代码,然后点保存:(如果在安装哪吒监控时,你自定义了端口,把下面代码中的 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 $remote_addr;
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;
real_ip_header nz-realip;
# gRPC 服务
location ^~ /proto.NezhaService/ {grpc_set_header Host $host;
grpc_set_header nz-realip $remote_addr;
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 $remote_addr;
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;
}
然后开启 ssl。
4、哪吒面板设置
到这里,你就能用域名访问你的面板了。先记得改密码,然后设置,因为面板和 agent 都开启了 CF CDN,我们需要在面板系统设置里面的真实 IP 请求头填写
进入面板后台,真实请求头设置,将 CF-Connecting-IP
替换为 nz-realip
。后台的登录 IP 以及其它地方才能正常显示真实 IP。