Liunx手搓Nezha-Agent

天才荷包蛋 Lv1

image

在此之前,荷包蛋安装Nezha一直都是采用一键脚本和命令安装Nezha

你问我为什么呢,我只能告诉你,真他妈方便!!!

但是,方便总是有弊端的,总所周知,我们的环境特殊

当你Agent的机器为国内机器,如果还是Only Ipv6 可谓是Buff叠满了


本教程目前适用于几乎所有Nezha-agent支持的系统

这里以一台河北ipv6小鸡为例,我安装的是debian系统

因为没有无法连接Github,再加上naiba的域名似乎被Ban了 [1]

即使提供了国内镜像,在最后一步都需要连接Github,所以我只能手搓

教程正式开始

示例1:国内Only ipv6

  • 下载二进制文件

先前往Github下载二进制文件
Agent 二进制文件仓库地址为:Releases · nezhahq/agent · GitHub
这里需要注意你需要安装agent的服务器是什么架构[2]

大部分购买的VPS选择的镜像像 Centos、Debian、Ubuntu 都是x86/x64架构
所以我们在下载二进制文件的时候,就可以选择带x86/x64后缀的文件

image

这里我选择的是Liunx amd64架构的(根据自己的服务器架构来选择)

  • 连接需要agent的服务器

先通过SSH软件连接上你的VPS/服务器,我这里用的是Finashell

image

好的,傻子都会(无差别攻击)

  • 上传二进制文件

把刚刚下载的二进制文件上传到任意文件目录,我这里推荐放到/opt/nezha

其实是为了后续更新升级,因为官方安装命令也是默认安装在这个目录

等等,解释一下!

  1. /opt/nezha/Dashboard (Nezha面板的安装目录)
  2. /opt/nezha/agent (Nezha-agent的安装目录)

本次教程我们是手搓Agent,所以我们只要输入下面的命令即

1
mkdir -p /opt/nezha/agent
1
cd /opt/nezha/agent

通过FinaShell的图形化界面,拖动或者手动上传下载好的二进制文件
(这里提一点,其实前面的步骤可以通过Finashell完成,完全可以省略)

image

  • 授予权限
1
chmod +x /opt/nezha/agent/nezha-agent 

或者使用

1
2
3
4
5
chmod +x nezha-agent

然后Cd回到原来的目录

cd
  • 创建自启动文件(sysemctl)

创建服务文件:在 /etc/systemd/system/ 目录中创建 nezha-agent.service 文件

1.你可以选择通过Finashell的图形化界面来创建
2. 或者使用 nano 创建和编辑文件: (文章末尾含Nano安装方式)
sudo nano /etc/systemd/system/nezha-agent.service

nano 编辑器中粘贴以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[Unit]
Description=Nezha Agent
After=syslog.target
#After=network.target
#After=nezha-dashboard.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=root
Group=root
WorkingDirectory=/opt/nezha/agent/
ExecStart=/opt/nezha/agent/nezha-agent -s 域名/源站IP:端口 -p 密钥
Restart=always
#Environment=DEBUG=true

# Some distributions may not support these hardening directives. If you cannot start the service due
# to an unknown option, comment out the ones not supported by your version of systemd.
#ProtectSystem=full
#PrivateDevices=yes
#PrivateTmp=yes
#NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

nano 编辑器中编辑文件后,保存并退出的步骤如下:

  1. 保存文件
  • Ctrl + O(字母 O,不是数字 0)来保存文件。
  • 在提示 “File Name to Write” 时按 Enter 确认文件名并保存。
  1. 退出编辑器
  • Ctrl + X 退出 nano

然后依次输入以下命令

1
2
3
4
5
systemctl daemon-reload    # 重新加载 systemd 管理器配置文件,以使其识别新创建或修改的单元文件

systemctl enable nezha-agent # 启用 nezha-agent 服务,使其在系统启动时自动启动

systemctl restart nezha-agent # 立即重启 nezha-agent 服务,应用新的配置

此时,你的探针网站就会出现了

image

如果还是不行,请你SSH内输入
sudo systemctl status nezha-agent
检查nezha-agent 是否正常启动

示例2:玩客云ARMv7架构 (已刷入Armbian)

ARM架构:将二进制文件替换为ARM架构即可,操作步骤相同

示例3:OpenWRT (斐讯N1)ARM Cortex-A53架构 =64位

与ARMv7二进制文件相同,不过openwrt,我更推荐使用NZ-OpenWrt

NZ-OpenWrt

如果你和我一样,喜欢手搓,GO!

  • 下载ARM架构的二进制文件
  • 将二进制文件上传/root (如更改请确保相关命令及配置文件一致,默认/root)
  • 授予权限 chmod +x /root/nezha-agent
  • 新建自启文件 nano /etc/init.d/nezha-service
  • 写入配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/sh /etc/rc.common

START=99
USE_PROCD=1

start_service() {
procd_open_instance
procd_set_param command /root/nezha-agent -s 面板通信地址:端口 -p 秘钥 -d
procd_set_param respawn
procd_close_instance
}

stop_service() {
killall nezha-agent
}

restart() {
stop
sleep 2
start
}
  • 运行 chmod +x /etc/init.d/nezha-service 赋予执行权限。
  • 启动服务/etc/init.d/nezha-service enable && /etc/init.d/nezha-service start

至此,Openwrt 手搓完毕!!!

nano安装方式

不同操作系统安装Nano

在不同的Linux发行版上安装Nano编辑器的命令略有不同。以下是在Ubuntu、Debian、CentOS和Armbian上安装Nano的命令:

  1. Ubuntu 和 Debian:
1
2
sudo apt update
sudo apt install nano
  1. CentOS:
1
sudo yum install nano
  1. Armbian:
1
2
sudo apt update
sudo apt install nano

这些命令将更新软件包列表并安装Nano编辑器。

常见问题解决方案

1.面板服务器是否有ipV6
2.面板防火墙是否开启端口(默认5555)
3.Agent能否ping通Dashboard
4.查看二进制文件是否对应Agent的架构
5.密钥和Dashboard是否正确
6.单次启动测试: /opt/nezha/agent/nezha-agent -s 域名:5555 -p 密钥

nezha-agent.service文件可以精简(除OpenWrt)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=Nezha Agent
After=syslog.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/nezha/agent/
ExecStart=/opt/nezha/agent/nezha-agent -s o.076299.xyz:5555 -p qhdv6
Restart=always

[Install]
WantedBy=multi-user.target

如果你没有Root权限,请你在使用systemctl的时候带上Sudo,以确保您有足够的权限执行

1
2
3
4
5
sudo systemctl daemon-reload    # 重新加载 systemd 管理器配置文件,以使其识别新创建或修改的单元文件

sudo systemctl enable nezha-agent # 启用 nezha-agent 服务,使其在系统启动时自动启动

sudo systemctl restart nezha-agent # 立即重启 nezha-agent 服务,应用新的配置

  1. Nezha的作者 ↩︎

  2. 架构分为:ARM架构和x86和64 ↩︎

  • 标题: Liunx手搓Nezha-Agent
  • 作者: 天才荷包蛋
  • 创建于 : 2024-06-11 20:00:00
  • 更新于 : 2024-08-14 17:52:06
  • 链接: https://innjay.cn/2024/06/11/Liunx手搓Nezha-Agent/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论