很久以前写过一篇文字,记录了当时采用 WinNUT 作为中继,以群晖本身作为 UPS 服务器,向局域网中的其他设备提供自动关机服务。
几年后的今天(实际上是2024年),公司又买了一台威联通(QNAP)的 NAS。由于 UPS 还是只有那一台(APC Back-UPS 650),且群晖和威联通在连接网络 UPS 服务时,使用的账号密码是不同的,虽然也可以通过硬改配置文件来勉强使用,但存在系统更新后被覆盖失效的风险。
经过一点研究,最终决定采用树莓派 Zero 作为 NUT(Network UPS Tool)服务器的方法为两台 NAS 提供网络 UPS 服务。

设备拓扑如上,简要说明:
- Back-UPS 650 是一款单用户 UPS,只有一个数据通信口,一头是 USB 一头是 10P10C(也叫 RJ50,比 RJ45 多了两个触点),本次直接将 USB 端连接到树莓派 Zero 上。
- 树莓派 Zero 本身没有 USB Type A 接口,也没有以太网接口,可采购相应的 HAT 配件,本例中使用了微雪的 ETH/USB HUB HAT (B) 套件。
- UPS本身同时给树莓派、交换机、群晖和威联通供电,以确保断电后上联网络断开时,关机数据包能正常发送给 NAS 们。
- 树莓派 Zero、群晖和威联通的 IP 地址需要在同一网段内。
关于配置流程,由于当时没有依次记录,以下流程是根据线上配置还原的要点,诸如 IP 地址配置等基础操作请自行进行。
注:以下配置只适用于 APC Back-UPS 650(BK650),相关配置文本如无说明,请原样填入配置文件中,不要做任何修改。
(一)在树莓派上使用 lsusb 查看是否能检测到 UPS 设备,应显示为 ID 051d:0002 American Power Conversion Uninterruptible Power Supply。
(二)安装 nut 软件包。(不需要安装 apcupsd)
(三)修改 /etc/nut/upsd.users,在末尾追加群晖和威联通需要的账号密码(假设群晖和威联通上的 upsclient 没有修改过):
[monuser]
password = secret
upsmon slave[admin]
password = 123456
upsmon slave
(四)修改 /etc/nut/upsd.conf,在末尾追加下列内容,使 nut 服务监听 IPv4 所有地址的 3493 端口。
LISTEN 0.0.0.0 3493
(五)修改 /etc/nut/ups.conf,在末尾追加下列内容:
[ups]
driver = usbhid-ups
desc = “Back-UPS 650”
port = auto
vendorid = 051d
productid = 0002
ignorelb
override.battery.charge.low=90
offdelay=20
ondelay=-1[qnapups]
driver = dummy-ups
port = ups@localhost
desc = “Repeater for QNAP”
说明:ups 是群晖会去找的 UPS 设备名称,qnapups 是威联通会去找的 UPS 设备名称,其中后者使用 NUT 的 dummy-ups 驱动来镜像真实 UPS 硬件的数据。
(六)修改 /etc/nut/nut.conf,找到其中的 MODE=none 修改为:
MODE=netserver
(七)修改 /etc/nut/upsmon.conf,在末尾追加下列内容:
MONITOR ups@localhost 1 monuser secret secondary
MONITOR qnapups@localhost 1 admin 123456 secondary
说明:本文件内容将 UPS 硬件和 NUT 账户关联起来,告诉 upsmon 服务需要监视的 UPS 设备。本例中,要求 upsmon 服务监视本机(@localhost)的名为 ups 的设备(群晖监视的 UPS 设备),其有1个供电来源,访问账号为monuser,密码为secret,并作为从设备运行(即 NUT 服务会先关掉它们,再关闭自身);第二行是威联通的配置,内容同理。
(八)全部修改完毕后,重启 nut-client 和 nut-server 服务。
(九)打开群晖的 Web 端,打开控制面板—硬件和电源—不断电系统,勾选“启用UPS支持”,UPS类型选择“Synology不断电系统服务器”,“进入待机模式前的等待时间”按需配置,“网络不断电系统服务器IP地址”填写树莓派的 IP 地址,保存设置后点击“设备信息”查看是否能够正常读取到 UPS 信息。
(十)打开威联通的 Web 端,打开控制台—外部设备—UPS,选择设备类型为“Network UPS Slave”,“网络UPS服务器的IP地址”填写树莓派的IP地址,“当电源失效时,分钟数后关闭系统”按需配置,保存设置后查看页面上是否正确刷出了 UPS 信息。
其他注意事项:
- 微雪 HAT 配件采用弹簧顶针方式与树莓派本体进行连接,请确保将螺丝拧紧,避免因接触不良而发生掉接口的情况。
- 如果要配合其他单用户 UPS 使用,需要先去 NUT 官网查询驱动支持情况,使用对应的 driver 名称,并配合第(一)步中的信息修改第(五)步中的设备 vendorid 和 productid。
注:请不要在评论内容的任何位置出现链接,否则您的评论将被自动移入回收站,且永远不会被复审。
Please do not include any links anywhere in your comment, otherwise your comment will be automatically deleted and are not eligible for review.