NAS作为UPS总控,实现局域网多设备断电自动关机教程
大家好,我是飘雷。
前几天发了个给UPS更换电池的帖子,然后发现在评论区里,有朋友不太清楚怎么把NAS和UPS配合使用,还有朋友说想要用Windows迷你主机也配合UPS进行自动关机,所以今天我们就来详细讲讲吧。

用过NAS和UPS的朋友应该都会遇到一个问题,像是上期我分享过的APC BK650M2-CH这类普通民用UPS,一般只会配备一组USB接口,只能和单台设备通信。
一旦市电断电,只有直连USB的那台NAS可以收到UPS信号自动关机,局域网里剩下的Windows电脑、其他NAS设备就只能裸掉电,运气不好的话,容易出现文件损坏、存储池异常的问题。
其实NAS是可以充当整个局域网的UPS总控的,UPS通过USB接入威联通,开启内置的NUT网络UPS服务,局域网内所有支持NUT协议的设备,都可以作为客户端读取UPS状态,断电后按照设定好的时序依次优雅关机。
今天就以我的威联通NAS为例,带大家完整走一遍全部配置流程。
一、威联通NAS使用USB连接UPS,作为总控设备
这一步我们把UPS的USB线缆直连威联通,让它成为整个局域网的UPS总控主机。
1.硬件接线
首先我们将威联通NAS的电源线,插在UPS的输出插座上,然后将UPS出厂附带的USB数据线,一头接UPS主机,另一头插入威联通NAS的USB接口。
同时需要注意,我们的交换机、路由器和其他需要断电保护的设备,也需要连接到UPS。
2.威联通控制台UPS配置
接下来咱们登录威联通QTS后台,依次打开【控制台】→【硬件】→【UPS】。

UPS连接方式选择USB,勾选【启用UPS支持】后,页面会自动识别到接入的APC UPS设备信息。
这里需要注意,自动关机时间是整套时序的核心,威联通作为NUT主控,必须是整套环境里最后关机的设备。我自己把它设置为5分钟,后续所有从属客户端的关机触发条件,都要早于这个时间。
接下来勾选【启用网络UPS服务器】,在【允许的 IP 地址列表】,把局域网所有需要接入UPS联动的设备IP全部填写进去,例如Windows电脑和其他NAS的IP地址,不在这个白名单内的设备,会直接被拒绝NUT服务连接。
全部设置完成点击【应用】保存。
3.验证NUT服务是否正常工作
打开SSH工具登录威联通NAS,输入下面两条命令验证服务状态。
# 列出本机全部NUT识别的UPS设备
upsc -l 127.0.0.1
# 读取UPS完整运行参数
upsc qnapups@127.0.0.1
正常情况下,第一条命令输出 qnapups ,第二条可以打印出UPS的电池电量、输入电压、预估剩余续航等实时数据。代表NUT服务端部署完毕,可以对外提供服务。
二、NAS使用网络模式连接UPS并设置为NUT客户端
如果家里有其他NAS,也可以作为从属客户端,通过网络读取远端NUT主控的UPS状态,断电跟随远端信号自动关机。
这里同样以威联通NAS为例,其他品牌的NAS设置思路大致相同。
我们进入QTS后台,依次【控制台】→【硬件】→【UPS】,UPS连接方式选择“Network UPS slave“,然后填入和UPS直接进行USB通信的NAS的IP地址:

作为从属客户端,关机等待时间一定要短于NUT主控的关机时间,保证自己先关机,让主控留到最后。
保存配置,如果页面可以正常刷出UPS电池、电压信息,就代表网络UPS客户端连接成功。当然这个GUI可能有点bug,如果刷不出UPS信息的话,也可以用SSH工具登录NAS,将IP替换为总控NAS的地址后进行测试。
upsc qnapups@192.168.10.70
三、Windows连接NAS的UPS信息并设置
Windows系统本身没有原生NUT客户端,这里我们使用开源免费的WinNUT-Client(GH上可下载),读取NAS NUT主控的UPS数据,实现市电断开之后Windows也能安全自动关机。
1.安装与基础连接配置
下载安装WinNUT-Client,打开软件,进入【设置】→【选项】→【连接】标签页,填写下面参数:

NUT主机:威联通NAS内网IP,比如我这里是192.168.10.70
NUT端口:3493
UPS名称:qnapups
登录:qnapups
密码:123456
轮询间隔:5
然后勾选【重新建立连接】,点击【应用】→【好的】。
连接成功后主界面就会直接展示UPS实时数据,比如输入电压、电池电量、负载、预估剩余续航等。

2.关机选项配置
切换到【关机选项】标签页,按照下面的参考进行配置:

如果电池低于百分比则关机:30%
如果续航时间低于则关机:120(单位秒,等于2分钟)
即时停机操作:不勾选
停机类型:关机
延时关机(秒):60,触发条件达成后,预留60秒给我们手动保存文档再执行关机
允许的延时关机时间:不勾选
关闭NUT的 FSD 信号:严禁勾选
以上设置的含义是,电池低于阈值或者预估续航低于阈值,满足任意一条,就会启动倒计时关机。另外FSD是NUT协议的强制关机信号。当UPS电池濒临耗尽,NUT 主控会下发 FSD 指令。如果勾选关闭这个选项,极端低电量场景 Windows 不会响应强制关机,会直接掉电,存在文件损坏风险。
3.开启桌面自启动
切换到【其他】标签页,推荐勾选最小化到系统托盘、随 Windows 启动当前应用。

这里需要说明,随Windows启动当前应用,仅仅是登录Windows账户之后,自动打开前台该软件的GUI程序。
如果电脑开机停留在登录界面、没有人登录账户,那么WinNUT就不会启动,市电断电之后完全无法执行关机。如果你的主机需要7×24小时无人值守,可以使用NSSM等工具手动将WinNUT部署为Windows系统服务。
总结
借助NUT网络UPS协议,我们只需要一台 UPS,就可以驱动局域网中多台设备协同断电保护。
以威联通NAS为例,虽然官方文档只写了自家NAS互联,但底层是完整标准NUT服务,稍加配置就可以对接 Windows等第三方设备。
如果大家有需要,后续我还可以给大家补充其他品牌NAS接入威联通NUT主控、UPS断电微信告警通知脚本的部署教程,欢迎留言。
