我有一个APC UPS,最初我的Synology NAS对其拥有完全控制权。大多数UPS都有USB端口,因此您可以将其插入设备,获取统计数据并在UPS电池耗尽前将其关闭。我希望将此扩展到连接到UPS的所有设备。我的路由器、Synology NAS、Raspberry Pi和运行Proxmox的迷你PC都已连接。完成这项工作是分散且令人困惑的,所以我将尝试将其全部简化为一个。
使其在 pfSense 上运行
您需要至少安装 nut 软件包。您可能需要安装 apcupsd 软件包,如果您在使用本地USB时无法通过usbhid驱动程序建立连接。我不推荐apcupsd软件包,因为它相当不可靠。如果您能够通过usbhid驱动程序建立连接,请使用该驱动程序。如果您能够通过usbhid驱动程序建立连接,请跳过本节的其余部分。接下来的三段是如果您无法使本地USB正常工作。
如果你需要使用apcupsd,apcupsd包将与UPS通信。NUT服务器将使用远程apcupsd驱动程序获取有关NAS的信息,并使其对任何运行NUT的客户端都可用。你应将UPS插入USB端口,并将UPS电缆和UPS类型设置为两者都USB。你可以将设备字段留空。这是你在apcupsd上需要做的唯一配置。你可以进入状态标签,你应该看到你的UPS已被识别。
现在,您可以转到“服务”>“UPS”标签页并点击“UPS设置”。对于UPS类型,请将其设置为“远程apcupsd”。将UPS名称设置为“ups”。如果您打算将其与Synology NAS进行接口,请确保这是名称。
在驱动程序设置下的“远程IP地址或主机名”,您可以输入127.0.0.1。apcupsd和NUT服务器在同一个机器上,您的pfSense盒子。您现在应该可以进入“UPS状态”,并应能够连接,您应该会看到诸如运行时间等各种字段。
使其与群晖兼容
您需要转到控制面板 > 硬件和电源 > UPS。您需要使用“Synology UPS 服务器”。对于 Network UPS 服务器 IP,请输入您的 pfSense IP 地址。如果您尝试点击保存,目前还无法成功。我们需要理解的是,pfSense 将是我们的主服务器,Synology 将是奴隶服务器。Synology 会通过 NUT 协议在 pfSense 上寻找一些硬编码和默认的用户凭证以建立连接。
默认值如下:
UPS名称:ups
用户名:monuser
密码:secret
我们可以将这些信息输入到pfSense中,然后Synology会认为它正在与另一台Synology通信,尽管它仍然是pfSense。在幕后,它只是NUT协议,但带有Synology品牌和一些硬编码的默认设置。
在你的 pfSense 设备上,返回 UPS 选项卡和 UPS 设置。在高级选项卡下,将以下内容添加到 upsd.users 文件中:
[monuser] password = secret upsmon slave
我们还需要告诉 pfSense 要监听其 LAN IP 地址,而不仅仅是监听本地主机。在 upsd.conf 文件的附加配置中,添加 LISTEN 关键字,后面跟着你的 pfSense 的本地 IP 地址。我的是以下地址:
LISTEN 192.168.2.1
现在可以点击保存。在页面顶部,“Services / UPS / Settings”文本的右侧,你应该会看到一些图标。点击第一个图标,这将重启服务。仅仅点击保存是不够的,我们需要真正地重启服务。
现在你可以返回Synology,并重新输入你的设置。这次应该能成功连接。
完成 pfSense 配置
如果你使用本地USB,不需要遵循本节内容。本节内容仅适用于使用APCUPSD的情况!!!
我们希望 pfSense 成为我们其余 NUT 客户端的主控。其他 NUT 客户端将作为从属设备。它们将是首先关闭的设备。我们需要添加一个具有管理员权限的 pfSense 用户,并告诉 pfSense 使用 NUT 来监控自身。
在 upsd.users下,添加以下内容:
[pfsense] password = changeme actions = SET instcmds = ALL upsmon master
我们现在需要在 upsmon.conf下添加以下内容:
MONITOR ups@192.168.2.1 1 pfsense changeme master
这一行告诉NUT服务器监控自身。语法是<ups name>@<NUT服务器的IP地址>。1告诉监控器pfSense有多少个电源供应。我的系统只有一个电源供应,但如果你在一个有多个电源供应的高级服务器上运行pfSense,你应该相应地调整1。"pfsense"和"changeme"是我们刚刚在upsd.users文件中定义的用户名和密码。master关键字表示这是一个主服务器。
使pfSense永久关机
我个人更喜欢让 pfSense 最后关闭。这非常容易做到。在 upsmon.conf 文件中,只需添加以下内容
FINALDELAY 60
这将延迟关机,时间由您指定的秒数决定。这在 apcupsd 和 usbhid 上的行为有所不同。在usbhid上,它会等到UPS电池低的时候再触发关闭。在apcupsd上,它会立即发送关闭触发信号。原因是usbhid有实际的指标并且可以读取电池数据。它知道电池什么时候低了。apcupsd不知道,它一失去电源就认为UPS死了,因此立即发送关闭触发信号。如果你使用apcupsd,你可能需要将其增加到5分钟这样更高的数值,因为电池实际上还不低。在usbhid上,我会设置为1分钟,因为电池将几乎完全耗尽。请注意,默认时间是5秒,并且我建议你的客户端也是这样。5秒的延迟是在发送关闭触发信号之后的延迟。
添加其他Linux客户端
现在我会将我的树莓派添加为客户端。这将需要我在pfSense上的upsd.users文件中添加一个新用户,并在我的树莓派上安装nut软件包。
在upsd.users中,你可以通过添加以下内容来添加一个新用户,该用户是奴隶:
[pi] password = changeme upsmon slave
您现在可以在 pfSense 上保存和重新启动 UPS 服务。其余部分现在将在 Raspberry Pi 上。首先,安装 nut 软件包:
sudo apt install nut
在 /etc/nut/nut.conf中,将模式更改为网络客户端:
MODE=netclient
在 /etc/nut/upsmon.conf中,你应该在文件末尾添加:
MONITOR ups@192.168.2.1 1 pi changeme slave
将192.168.2.1替换为你的pfSense IP地址。语法与上述提到的一样。我们正在连接到192.168.2.1上名为ups的UPS。树莓派有一个电源供应。用户名是pi,密码是changeme。它被标记为从设备,因为它应该在路由器之前关闭。你可以修改其他任何设置,例如关闭命令和在实际关闭之前应该等待多长时间。默认情况下是5秒。
您现在应该能够启用并启动这些服务:
systemctl enable --now nut-monitor systemctl start nut-client
你也可以通过upsc命令来验证你的连接是否正常。对于我来说,会显示
upsc ups@192.168.2.1
测试一切
现在你应该可以测试一切了。我个人已经打开了与树莓派的SSH连接,并且有一个持续的ping连接到我的Synology、pfSense和树莓派。这将帮助你跟踪一切是否正在关机。这也是为什么我让我的pfSense路由器运行更长时间的原因。它允许我的电脑ping这些设备并观察它们关机,以便于调试。你也可以查看物理设备,看看它们是否关机。以太网端口上有灯闪烁吗?有电源灯亮着吗?Synology的状态灯会闪烁,表示它已经卸载了磁盘,因为检测到UPS处于电池模式。一旦一切关机后,你可以按UPS上的电源按钮完全切断电源。再次按一下,一切应该从优雅关机中重新启动。
你应该对所有的虚拟机/设备进行一次全面的测试,并在冷启动时一起启动,看看它们是如何工作的。我注意到的一个问题是,我的Emby虚拟机在NAS启动之前就启动了。我的NAS上的媒体驱动器尚未可用,因此Emby虚拟机无法挂载它们。在断电后测试一切是很重要的。找到像这样边缘情况将帮助你准备预期的情况。它还将减少调试时间。想象一下,如果我在进行断电测试几周后尝试使用Emby,并在尝试大量其他调试时遇到问题,这只是因为Emby在NAS之前启动的。
apcupsd 问题
不幸的是,我遇到了 apcupsd 的一个 issue。pfSense 有一个问题,你需要在 pfSense 路由器重启后重启 NUT 服务器。似乎它在启动时无法建立连接,并且会放弃。如果你使用 apcupsd,你需要手动重启服务。再次强调,如果你能避免的话,我不建议使用 apcupsd。它是一个旧且不可靠的软件包。它需要比必要的更复杂的配置。我没有遇到这个问题,使用的是 usbhid 驱动。
避免使用apcupsd包的一种方法是将UPS插入Synology设备,并将pfSense路由器添加为允许的Synology设备。然后将UPS类型设置为“远程NUT服务器”。这样可以输入Synology的IP地址,并将用户名设置为monuser,密码设置为secret。这将建立与pfSense的连接。缺点是每个客户端都必须使用monuser/secret用户名和密码。还有报告称,当电源出现波动时,设备会提前关机,而不是在电池低的时候。
如果你无法让NUT服务器通过本地USB与usbhid正常工作,你将不得不决定哪个选项对你来说更好,并且你愿意做出什么权衡。UPS的世界以及使其可靠地与设备通信是一个挑战。许多不同的品牌提供不同级别的NUT支持,每个品牌和型号的行为可能都不同。所有这些都针对APC Back-UPS 600VA编写,但你的UPS可能完全表现出不同的行为。
常见问题
- 2026/04/15APC产品综合指南:满足各种需求的电
- 2026/04/15如何选择适合您数据中心的正确APC
- 2026/04/15APC Smart-UPS 与传统 UPS:您应该选
- 2026/04/15为什么APC在线互动式UPS是您业务的
- 2026/04/152026年最适合数据中心和IT机房的AP
- 2026/04/152026年从值得信赖的来源在线购买AP
- 2026/04/15APC Smart-UPS 2026年评测:仍然是商
- 2026/04/15为什么企业选择APC产品作为直流电
- 2026/04/152026年在哪里购买APC Smart-UPS(实
- 2026/04/15常见的不间断电源错误会损坏商业设
