Nodestatus
项目地址:https://github.com/cokemine/nodestatus
优点:
客户端不需要暴露端口 直接通过wss和服务端链接 无需root权限
服务端也不需要暴露额外端口 只需要443进行反代 不会自动更新 较为稳定
缺点:
功能相比其他会少一些 没有延迟测试webshell等 主题少但可以自定义前端
服务端
以下服务端选择本地或docker一种部署方式即可
1.本地环境部署
1.安装node.js
注意选择对应发行版执行即可 不要全部执行 需要在root用户下
# Using Ubuntu
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
# Using Debian, as root
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
# RHEL, CentOS, CloudLinux, Amazon Linux or Fedora as root
curl -fsSL https://rpm.nodesource.com/setup_20.x | bash -
2.从npm安装Nodestatus和pm2
npm i pm2 -g
npm i nodestatus-server@latest --unsafe-perm -g
3.配置Nodestatus
本地用户目录下新建一个 .nodestatus/.env.local 配置文件 下面以root为例
cd /root && mkdir .nodestatus && cd .nodestatus && touch .env.local
修改配置文件:
vim .env.local
配置文件示例:
需要修改WEB_USERNAME和WEB_PASSWORD为自己的探针登陆用户和密码,WEB_SECRET建议设为一个随机的字符串(不会请忽略)。
INTERVAL=1500
DATABASE=file:/usr/local/NodeStatus/server/db.sqlite
PORT=35601
USE_PUSH=false
USE_IPC=true
USE_WEB=true
WEB_USERNAME=admin
WEB_PASSWORD=pssword
WEB_SECRET=random
更多自定义参数可以参考项目github
如需设置宕机tg推送,将USE_PUSH修改为true,添加TGBOT_TOKEN参数设置为tgbot申请到的token,TGBOT_CHATID为需要推送的 chat_id, 如不清楚chat_id可以先不设置,启动 NodeStatus后, 对 Bot 发送 /start 获取。
TGBOT_TOKEN=Token
TGBOT_CHATID=ID
4.启动Nodestatus
status-server
查看是否有报错,如报错请检查配置文件是否在/root/.nodestatus/.env.local,并且配置文件格式正确
如无报错 Crtl+C退出后 启动Nodestatus在后台运行
status-server-run
pm2 save
5.配置反代
Nodestatus默认监听 http://127.0.0.1:35601
配置nginx反代 反代后即可通过https://example.com/ 访问探针面板
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://127.0.0.1:35601;
proxy_http_version 1.1;
}
2.docker部署
如已执行本地部署,请跳至客户端部署。
1.安装docker和docker-compose
##安装docker
curl -fsSL https://get.docker.com | bash -s docker
##安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
##添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
2.获取docker-compose.yml
在你想配置的地方放置docker-compose.yml 例如在/root/nodestatus下
cd /root && mkdir nodestatus && cd nodestatus
wget https://raw.githubusercontent.com/cokemine/nodestatus/master/docker-compose.yml
3.修改配置文件
vim docker-compose.yml
注意修改下列参数 各项含义可以参考本地部署或github项目地址
WEB_USERNAME: "" ##面板用户名
WEB_PASSWORD: "" ##面板用户密码
WEB_SECRET: "" ##任意随机字符串
下列参数和TG通知相关 自行配置即可
USE_PUSH: "true"
TGBOT_TOKEN: ""
TGBOT_CHATID: ""
TGBOT_PROXY: ""
TGBOT_WEBHOOK: ""
4.启动docker-compose
docker compose up -d
5.配置反代
Nodestatus默认监听 http://127.0.0.1:35601
配置nginx反代 反代后即可通过https://example.com/ 访问探针面板
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://127.0.0.1:35601;
proxy_http_version 1.1;
}
客户端
客户端有nodejs和go版本 nodejs版已经Deprecated 安装go版本即可
1.linux
1.登录服务端面板后台
登录用户和密码为上述服务端设置的用户和密码
选择management然后点击new 创建新的客户端
Username和Password可以随便填 用于客户端连接服务端
Name为探针显示该机器的名字 Type为机器类型 Location为服务器地点
以上可以随便填
Region需要是大写的地区/国家的二字编号例如中国大陆填CN 香港填HK 日本填JP 美国填US 德国DE 英国UK
填完之后 先不点ok 下方scripts会出现代码 先复制 然后点ok 最后将代码在linux中执行即可一键安装
需要注意的是第二次编辑客户端配置的时候 密码不会显示 scripts中的代码也没有包含密码 需要在Password中填写密码 scripts显示的才是完整的代码
默认统计的流量是开机以后的所有流量 如需用vnstat统计月流量 可以先安装vnstat 然后修改status-client的systemd
1.安装vnstat 以debian为例
apt install vnstat -y
2.修改systemd
vim /lib/systemd/system/status-client.service
在ExecStart= 一行末尾加上--vnstat即可
需要通过systemctl daemon-reload重载服务 systemctl restart status-client重启服务
2.windows
在客户端Release下找到最新版本的对应windows编译版本例如status-client_windows_amd64.zip解压出status-client.exe
然后在其目录cmd执行 status-client.exe --dsn wss://username:password@example.com
后面的wss://username:password@example.com对应在面板生成scripts最后的字段
例如在服务端面板生成如下
wget -N https://raw.githubusercontent.com/cokemine/nodestatus-client-go/master/install.sh && bash install.sh --dsn wss://123:123@example.com
则执行status-client.exe --dsn wss://123:123@example.com即可
这样需要有一个cmd/powershell一直在前台运行 可以通过注册到windows服务来后台运行
例如通过nssm将程序注册到服务即可 下载nssm.exe后 执行
nssm install <servicename> <program> [<arguments>]
servicename为服务名 可以填status-client
program为status-client.exe位置
nssm install status-client "C:\path\to\status-client.exe" "--dsn wss://123:123@example.com"
最后打开服务管理工具service.msc 开启服务即可
注意事项
如果服务端套了cloudflare或者类似waf 请保证放行客户端的连接请求 关闭cloudflare的超级机器人防御模式