LOC论坛大佬写了一个哪吒探针,一直没时间部署,直到最近有空尝试了一下,感觉挺不错的
不过大佬并没有写一个详细的部署教程,我这里就从头到尾记录一下,包括linux部署面板、添加服务器、配置SSL、套CDN,以及Windouw客户端部署。
项目地址:https://github.com/naiba/nezha
准备工作
域名准备
准备2个域名即可,第一个是面板的域名(可以套CDN),第二个是绑定到服务连接的域名(不能套CCD),因为如果直接用IP的话,迁移面板后会非常麻烦!
然后将准备的域名解析到服务器上
github设置
没有就先去注册下:github.com
浏览器中打开https://api.github.com/users/你的GitHub用户名
返回的是Json的信息,第二行id对应的值就是你的ID,纯数字的。保存起来,如下图:
然后创建一个OAuth Apps
打开:https://github.com/settings/developers
,然后点击New OAuth App
按钮
按照下面填写然后保存:
http://你的域名:8008
http://你的域名:8008/oauth2/callback
然后进入apps
保存Client ID
然后点击Generate a new client secret
按钮创建Client secrets
并保存下来。
部署面板
防火墙设置
打开8008端口和5555端口,如果你改为其他的,防火墙放行相应的端口
使用一键脚本搭建面板
官方说明中提供了一键脚本
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh
./nezha.sh
如果执行上面不行证明github在你服务器访问不到,执行下面的即可
# 国内机器
curl -L https://raw.staticdn.net/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh
./nezha.sh
输入1
进行面板的安装,然后将刚刚上面记录下来的ID
和Client ID
及Client secrets
输入进去即可,如下图:
访问http://域名:8008
查看能访问即可,暂时不登录
宝塔、SSL配置
其他环境修改nginx配置文件即可,和下面一样。
配置:
#PROXY-START/
location /
{
proxy_pass http://127.0.0.1:8008;
proxy_set_header Host $host;
}
location /ws
{
proxy_pass http://127.0.0.1:8008;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
}
#PROXY-END/
宝塔的话按下面做,先创建一个站点,进行反代
然后
配置复制进去覆盖所有内容
保存即可。SSL和普通站点一样配置就行。打开你的域名看看能不能访问到面板,可以的话进行下一步。
然后打开https://github.com/settings/developers
找到刚刚创建的apps
把配置域名的端口删掉就行。
然后面板配置完了就可以登录了。
Linux客户端部署
登录你的面板创建机器然后得到id和密钥
然后去需要安装客户端的服务器执行脚本
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh
./nezha.sh
# 国内机器
curl -L https://raw.staticdn.net/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh
./nezha.sh
选择8
然后输入你服务器ip或者绑定的域名,端口就默认5555就行,有更改的话自行更换下。然后输入刚刚面板拿到id和密钥即可
然后就完成了。
Windows 客户端部署
Windows 下只需要通过 cmd 传递参数启动作者编译完的 exe 文件,可以说是很方便了,但是跟 Frp 一样,总有人不小心关闭了 CMD 窗口,所以这里介绍一种比较好用的启动方式,把 exe 变成系统服务启动。
下载好两个软件:
1、哪吒探针
2、nssm
安装配置
1. 设置环境变量
下载软件后,解压到任意位置,然后按 win+R 打开运行窗口,输入 sysdm.cpl 打开系统属性–高级–环境变量–系统变量–Path–在最后把刚才下载解压的nssm目录加到最后(踩坑提示:根据你的win版本,选择到最后的目录,即win64 或 win32),注意: 和前面变量之间用半角; 分开
2. 设置 NSSM
管理员启动 CMD,输入
cd C:/nssm/win64 (#替换为你的NSSM解压目录中对应的版本目录)
nssm install <servername>
如:nssm install nezha
弹出 UI,设置如下:
启动参数格式为:
-s {Serverip}:{Port} -p {AgentKey} -d
自己对应修改,填写完毕后, 点击 install servce
# 参数项来源:
按照图中配置,参数项为
-s {你自己的IP}:{默认是5555} -p 52a1c9abbe -d
3. 启动服务
此时退回到 CMD 界面,nssm start nezha, 然后按 win+R 打开运行窗口,输入 services.msc,查看是否有叫 nezha 的服务,然后查看启动情况,如果失败了,请查看一下配置是否出错
4. 以下列出一些 nssm 命令:
1. 安装服务命令
nssm install <servicename>
nssm install <servicename> <program>
nssm install <servicename> <program> [<arguments>]
2. 删除服务
nssm remove
nssm remove <servicename>
nssm remove <servicename> confirm
3. 启动、停止服务
nssm start <servicename>
nssm stop <servicename>
nssm restart <servicename>
4. 查询服务状态
nssm status <servicename>
5. 服务控制命令
nssm pause <servicename>
nssm continue <servicename>
nssm rotate <servicename>
由于 GO 不再支持低版本 Windows 系统,哪吒探针在低版本 Windows 上是不能启动的。如下图:
常见问题
1. 国内服务器出现curl: (7) Failed to connect to raw.githubusercontent.com
echo 199.232.68.133 raw.githubusercontent.com >> /etc/hosts
2. 修改服务器备注后变成”离线”久不恢复
在安装客户端(被监控)的服务器上执行systemctl restart nezha-agent
重启程序
启动nezha-agent还是一直显示离线
检查配置有没有写对cat /etc/systemd/system/nezha-agent.service | grep ExecStart