很久以前写过一篇文字,记录了当时采用 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。
注:所有评论将在审核通过后显示,请不要在评论内容的任何位置出现链接,否则您的评论将被自动移入回收站,且永远不会被复审。
All comments will be available after being manually reviewed, please do not include any links anywhere in your comment, otherwise your comment will be automatically deleted and are not eligible for review.