(网络环境非局域网,公网访问)
本人测试过:
1.debian-omv,nas系统上是可以通过域名连接上的,并且在后台是可以看到电源信息的,以及停电会自动关机。
2.windows通过WinNUT Configuration Tool,也可以自动关机。
3.Windows NUT Client也可以正确识别。
可就是不知道为何不能在ubuntu连接,很奇怪,到底需要如何操作?
服务端配置
```c
##############nut.conf##############
MODE=netserver
##############ups.conf##############
[ups]
driver = usbhid-ups
port = auto
##############upsd.conf##############
MAXAGE 15
MAXCONN 1024
LISTEN 0.0.0.0 3493
LISTEN 0:0:0:0:0:0:0:0 3493
##############upsd.users##############
[admin]
password = T3IR4AJKlKG3wSta
actions = set
actions = fsd
instcmds = ALL
[monmaster]
password = zLfnbUWNUnnK0xnQ
upsmon master
[Litigator2948]
password = 36C78jJ6b2jDNo8YfFCSpydyvLf79M6
upsmon slave
##############upsmon.conf##############
MONITOR ups 1 monmaster zLfnbUWNUnnK0xnQ master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
NOTIFYCMD "/sbin/upssched"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 555
POWERDOWNFLAG /etc/killpower
NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
NOTIFYFLAG COMMOK SYSLOG+WALL+EXEC
NOTIFYFLAG COMMBAD SYSLOG+WALL+EXEC
NOTIFYFLAG SHUTDOWN SYSLOG+WALL+EXEC
NOTIFYFLAG REPLBATT SYSLOG+WALL+EXEC
NOTIFYFLAG NOCOMM SYSLOG+WALL+EXEC
NOTIFYFLAG FSD SYSLOG+WALL+EXEC
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
##############upssched.conf##############
CMDSCRIPT /usr/bin/upssched-cmd
PIPEFN /run/nut/upssched.pipe
LOCKFN /run/nut/upssched.lock
AT COMMOK * EXECUTE notify
AT COMMBAD * EXECUTE notify
AT REPLBATT * EXECUTE notify
AT NOCOMM * EXECUTE notify
AT FSD * EXECUTE forced-shutdown
AT NOPARENT * EXECUTE notify
AT SHUTDOWN * EXECUTE notify
AT ONLINE * CANCEL-TIMER shutdown
AT ONLINE * EXECUTE resume
AT ONBATT * START-TIMER shutdown 150
AT ONBATT * EXECUTE shutdown-warning
AT LOWBATT * START-TIMER shutdown
AT LOWBATT * EXECUTE shutdown-warning
客户端配置
```c
##############upsmon.conf##############
MONITOR ups@makevideos.top 1 Litigator2948 36C78jJ6b2jDNo8YfFCSpydyvLf79M slave
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
NOTIFYCMD "/sbin/upssched"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 555
POWERDOWNFLAG /etc/killpower
NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
NOTIFYFLAG COMMOK SYSLOG+WALL+EXEC
NOTIFYFLAG COMMBAD SYSLOG+WALL+EXEC
NOTIFYFLAG SHUTDOWN SYSLOG+WALL+EXEC
NOTIFYFLAG REPLBATT SYSLOG+WALL+EXEC
NOTIFYFLAG NOCOMM SYSLOG+WALL+EXEC
NOTIFYFLAG FSD SYSLOG+WALL+EXEC
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
##############upssched.conf##############
CMDSCRIPT /usr/bin/upssched-cmd
PIPEFN /run/nut/upssched.pipe
LOCKFN /run/nut/upssched.lock
AT COMMOK * EXECUTE notify
AT COMMBAD * EXECUTE notify
AT REPLBATT * EXECUTE notify
AT NOCOMM * EXECUTE notify
AT FSD * EXECUTE forced-shutdown
AT NOPARENT * EXECUTE notify
AT SHUTDOWN * EXECUTE notify
AT ONLINE * CANCEL-TIMER shutdown
AT ONLINE * EXECUTE resume
AT ONBATT * START-TIMER shutdown 1
AT ONBATT * EXECUTE shutdown-warning
AT LOWBATT * START-TIMER shutdown
AT LOWBATT * EXECUTE shutdown-warning
参考GPT和自己的思路,您好!根据您提供的信息,错误信息中指出“fopen /run/nut/upsmon,pid: No such file or directory”,这可能是导致无法连接到服务端的原因之一。建议您检查以下内容:
1.检查 upsmon 是否正确安装并正在运行。如果它没有运行,请使用以下命令启动:
sudo systemctl start nut-client.service
2.确认 /run/nut 目录是否存在。如果不存在,请创建它:
sudo mkdir /run/nut
3.确认 /run/nut/upsmon.pid 文件是否存在。如果不存在,请手动创建它:
sudo touch /run/nut/upsmon.pid
这些步骤应该能够解决您的问题。如果问题仍然存在,请提供更多详细信息,例如 nut-monitor 命令的输出或者 syslog 中的错误消息,以便更好地帮助您解决问题。
该回答引用ChatGPT
从您提供的日志信息来看,有一些问题需要解决:
fopen /run/nut/upsmon.pid: No such file or directory
这个错误表示在启动upsmon时,找不到/run/nut/upsmon.pid文件,因为这个文件是用来存储upsmon进程的PID(进程标识符)的。检查一下您的系统中是否存在这个文件,如果不存在,可以手动创建一个空的文件,然后将其所有者更改为nut用户,以确保nut用户对该文件具有读写权限。或者可以尝试重启nut-monitor服务,看看是否可以自动创建该文件。
Can't open PID file /run/nut/upsmon.pid (yet?) after start: Operation not permitted
这个错误表示nut-monitor服务无法创建/run/nut/upsmon.pid文件。请检查一下该目录是否存在,并且nut用户是否对其具有写权限。如果目录和权限设置正确,可以尝试以root用户身份重新启动nut-monitor服务,看看是否可以解决问题。
Login on UPS [qnapupserakevideos . top] failed - got [ERR UNKNOWN-UPS]
这个错误表示upsmon客户端无法连接到UPS服务器。请检查一下网络连接是否正常,确保客户端可以通过IP地址或域名访问UPS服务器。还可以尝试使用upsc命令测试一下连接是否正常,例如:upsc ups@makevideos.top. 如果连接正常,应该可以看到UPS的详细信息。如果仍然无法连接,请检查一下upsmon配置文件中的用户名和密码是否正确。
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
首先,通过域名连接 NUT 服务端需要确保以下几点:
服务端和客户端可以解析域名。您可以在服务端和客户端上尝试使用 nslookup
命令解析一下域名,确保可以正常解析。
服务端和客户端之间网络正常。您可以在客户端上通过 ping
命令测试一下服务端是否可以连通。
您需要确保服务端的 3493 端口可以被公网访问。您可以尝试使用 telnet
命令测试一下服务端是否可以被访问。例如:
telnet makevideos.top 3493
如果上述几点都没问题,那么您在客户端上连接服务端的配置就没有问题。
在客户端上,您可以尝试使用以下命令连接服务端,看看是否可以成功:
upsc ups@makevideos.top
如果连接成功,那么您可以尝试使用以下命令查看 UPS 信息:
upsc ups@makevideos.top
如果还是无法连接,您可以尝试在客户端上开启调试模式,使用以下命令:
sudo upsmon -d 255 -D -u root
这样可以打印更详细的日志信息,帮助您排查连接问题。
另外,关于您提供的配置文件,可以看到您使用了加密密码,如果您在生产环境中使用这三个密码,建议您将其更换为更加安全的密码。具体操作方式可以参考 NUT 官方文档。
如果我的回答解决了您的问题,请采纳!