如果被监控的vps (Debian 12) 在同一个网卡上面配置了两个IPv4地址,能否指定哪吒的agent通过特定的IP出站?以下为解决过程,主要是用了iptables owner模块针对nezha-agent进程指定了出站IP,其他人遇到类似的问题可以参考,感谢大佬 @satorik 更新一下:下面的方法貌似对于哪吒的icmp ping网络监控无效,我主要是用tcp ping,iptables也不懂,不影响使用,所以没有再深究了。 root登录 如果原来存在nezha-agent服务,用下面的命令删除 systemctl stop nezha-agent systemctl disable nezha-agent rm -f /etc/systemd/system/nezha-agent.service rm -rf /opt/nezha rm -rf /var/log/nezha systemctl daemon-reload 新建用户 nezhauser sudo useradd -m -s /bin/bash nezhauser 运行哪吒agent脚本 这里是v0版的脚本 curl -L https://raw.githubusercontent.com/nezhahq/scripts/v0/install.sh -o nezha.sh && chmod +x nezha.sh && ./nezha.sh install_agent xx.xx.xx 5555 xxxxxxxxxxxxxxxxxxxxxxxx 先停止服务 systemctl stop nezha-agent 编辑/etc/systemd/system/nezha-agent.service [service]字段下面增加 User=nezhauser 更改WorkingDirectory字段为 WorkingDirectory=/home/nezhauser 返回ssh主窗口,增加用户运行权限 chown -R nezhauser /opt/nezha/ 运行 systemctl daemon-reload systemctl restart nezha-agent 这个时候去查看进程,可以看到nezhe-agent进程的用户为:nezhauser 运行iptables命令,把nezhauser用户的process都用指定IP 出站 iptables -t nat -A POSTROUTING -m owner --uid-owner nezhauser -j SNAT --to-source [指定IP] 哪吒dashboard里面显示的此vps的IP就是为指定的IP了,网络监控也是使用指定IP了,如果不是的话,再运行一次 systemctl restart nezha-agent 刷新哪吒dashboard即可 如果要持久化iptables规则,即重启还有效,还需要运行 apt install iptables-persistent iptables-save > /etc/iptables/rules.v4
如果被监控的vps (Debian 12) 在同一个网卡上面配置了两个IPv4地址,能否指定哪吒的agent通过特定的IP出站?以下为解决过程,主要是用了iptables owner模块针对nezha-agent进程指定了出站IP,其他人遇到类似的问题可以参考,感谢大佬 @satorik
更新一下:下面的方法貌似对于哪吒的icmp ping网络监控无效,我主要是用tcp ping,iptables也不懂,不影响使用,所以没有再深究了。
root登录
如果原来存在nezha-agent服务,用下面的命令删除
新建用户 nezhauser
运行哪吒agent脚本 这里是v0版的脚本
先停止服务
编辑/etc/systemd/system/nezha-agent.service
[service]字段下面增加
更改WorkingDirectory字段为
返回ssh主窗口,增加用户运行权限
运行
这个时候去查看进程,可以看到nezhe-agent进程的用户为:nezhauser
运行iptables命令,把nezhauser用户的process都用指定IP 出站
哪吒dashboard里面显示的此vps的IP就是为指定的IP了,网络监控也是使用指定IP了,如果不是的话,再运行一次
刷新哪吒dashboard即可
如果要持久化iptables规则,即重启还有效,还需要运行