UnRaid与群晖共享UPS电源的NUT插件配置全攻略

📅 发布时间:2026/7/5 5:00:53 👁️ 浏览次数:
UnRaid与群晖共享UPS电源的NUT插件配置全攻略
1. 为什么你需要让UnRaid和群晖共享一台UPS如果你和我一样家里或者工作室里不止一台NAS设备比如一台UnRaid服务器负责媒体库和虚拟机一台群晖NAS专门用来做照片备份和同步那你肯定也遇到过和我一样的烦恼难道要给每台机器都配一个不间断电源UPS吗这不仅是笔不小的开销而且管理起来也麻烦每次断电后还得分别去检查每台设备的关机状态。其实我们完全可以让多台设备共享一台UPS。想象一下你的UPS就像家里那个唯一的总电闸而UnRaid和群晖就像是家里的冰箱和空调。当停电时总电闸UPS会告诉所有电器“嘿没电了你们准备安全地停下来吧。” 这样所有设备都能有序关机数据安全得到了保障而你只需要投资一台UPS就够了。这个“传话”和“指挥”的系统就是我们今天要用的Network UPS Tools简称NUT。它是一个开源、跨平台的UPS监控管理工具就像一个万能翻译官和调度员。它能让连接着UPS的那台设备我们叫它“服务器”或“主设备”把UPS的状态比如“市电断了现在在用电池”、“电池还剩30%”通过网络广播出去。其他在同一个局域网内的设备“客户端”或“从设备”监听到这些状态后就能根据预设的规则比如电池运行3分钟后自动执行关机操作。我自己的家庭服务器就是UnRaid黑群晖虚拟机的组合之前也试过其他方法比如把UPS的USB线直通给虚拟机里的群晖让群晖当主机。但这样一来如果虚拟机没开机或者崩溃了UnRaid宿主系统就完全不知道停电了风险很大。后来我找到了更优雅、更稳定的方案让UnRaid作为NUT服务器群晖作为客户端。这样无论虚拟机状态如何UnRaid都能牢牢掌握UPS的控制权确保所有依赖它的服务包括虚拟机都能安全关闭。下面我就把这份踩过坑、验证过的详细配置攻略分享给你。2. 准备工作与核心概念梳理在动手配置之前我们需要把“战场”打扫干净把核心装备检查一遍。这就像组装乐高你得先确保所有零件都在并且知道每个零件是干嘛的。硬件清单一台UPS这是核心。我用的是一台APC BK650M2-CH它通过USB数据线与我的UnRaid主机直接相连。市面上主流品牌如山特、雷迪司等只要支持USB通信基本都能被NUT识别。请确保你的UPS已经通过随附的数据线通常是USB转方口或圆口连接到了UnRaid主机的USB接口上。UnRaid服务器这将是我们的NUT服务器也就是“指挥官”。它需要安装NUT插件并直接管理UPS。群晖NAS这将是NUT客户端也就是“士兵”。它通过网络从UnRaid获取UPS状态。它可以是物理机也可以是运行在UnRaid上的虚拟机但USB不直通给它。稳定的局域网确保UnRaid和群晖在同一个局域网内能互相ping通。这是它们之间通信的基础。软件与概念准备UnRaid系统版本我是在UnRaid 6.12.8上操作的但NUT插件的配置逻辑在较新版本上基本通用。群晖DSM版本我测试的是DSM 7.2不同版本界面可能略有差异但关键设置项都在“控制面板”-“硬件和电源”-“不断电系统”里。理解NUT的工作模式这是避免配置错误的关键。NUT主要有三种模式我们这次用的是Netserver网络服务器模式。Standalone独立模式单机自己用不分享状态。Netserver网络服务器模式这就是我们要在UnRaid上设置的模式。在此模式下UnRaid上的NUT服务会启动一个网络守护进程upsd监听网络端口默认是3493等待其他客户端来连接并获取UPS信息。Netclient网络客户端模式这就是群晖要扮演的角色。在此模式下设备本身不连接UPS硬件而是通过网络去询问另一台运行在Netserver模式下的设备。简单来说我们的架构就是UPS硬件 - USB线 - UnRaidNUT服务器/Netserver模式 - 局域网 - 群晖NUT客户端/Netclient模式。理清了这个数据流后面的配置就会清晰很多。3. 在UnRaid上安装并配置NUT插件这是整个流程中最关键的一步我们需要把UnRaid打造成那个可靠的“指挥官”。3.1 安装Network UPS Tools插件首先打开你的UnRaid网页管理界面点击顶部的“Apps”标签页。在右上角的搜索框里输入“nut”进行搜索。你应该会看到一个名为“Network UPS Tools (NUT) for UNRAID”的插件点击它旁边的“Install”按钮进行安装。这里有个国内用户经常遇到的“坑”由于网络原因插件可能无法直接从GitHub下载。如果安装进度条卡住别慌。点击安装后会弹出一个安装日志窗口注意看里面正在下载的文件链接通常是raw.githubusercontent.com/...这样的地址。你可以把这些链接复制下来用能正常访问GitHub的网络环境或一些开发者工具手动下载这些文件。下载好后找到你的UnRaid系统U盘就是启动盘进入config/plugins/nut目录如果不存在就手动创建把下载好的文件放进去。然后回到UnRaid界面再次点击安装这时它会直接使用本地文件跳过下载步骤。安装完成后你会在“Settings”页面看到一个带有电池图标的新选项“NUT Settings”点击它进入配置界面。3.2 详细配置参数解读进入NUT Settings界面你会看到很多选项。别担心我们一步步来设置。这些参数就像指挥官的“作战指令”每条都很重要。启动服务与模式选择Start Network UPS Tools service毫无疑问设为“Yes”。这是启动NUT服务的总开关。UPS Mode这是灵魂设置一定要选择“Netserver”。这个模式让UnRaid成为服务器向网络提供UPS状态。Enable Manual Config Only保持默认的“No”即可。这样插件会帮我们生成基础的配置文件。UPS连接与驱动设置点击“AUTODETECT”按钮。这个按钮会让插件尝试自动检测连接到UnRaid的UPS型号和端口。对于大多数通过USB连接的UPS如APC、山特这个功能很有效。检测成功后UPS Driver和UPS Port会自动填充。UPS Driver驱动类型。对于常见的USB UPS自动检测到的通常是usbhid-ups。这是最通用的USB HID驱动兼容性很好。UPS Port端口。自动检测后通常是auto或者类似auto的标识让系统自动寻找。如果自动检测失败你可能需要手动指定比如/dev/ttyUSB0串口UPS或/dev/usb/hiddev0USB HID设备这需要你在UnRaid终端里用lsusb或dmesg | grep usb命令来确认设备节点。UPS IP Address在Netserver模式下这里显示为127.0.0.1本地回环地址且不可更改因为UPS是直接连在本机上的。UPS Name给这台UPS起个名字客户端会用它来连接。这里非常关键为了最大兼容性特别是让群晖能无缝连接我强烈建议你直接设置为ups全部小写。这是群晖客户端默认寻找的UPS名称。用户认证设置安全与连接关键 为了让群晖客户端能连接到UnRaid服务器需要设置用户名和密码。这就像给指挥室设了门禁。UPS Monitor Username监控用户名。填写monuser。这是NUT世界里一个非常通用的监控用户名。UPS Monitor Password监控密码。填写secret。同样这是默认的通用密码。UPS Slave Username从设备客户端连接时使用的用户名。也填写monuser。UPS Slave Password从设备密码。也填写secret。注意使用默认的monuser/secret是为了方便因为群晖的NUT客户端默认就尝试用这个组合连接。如果你担心安全问题可以在配置完成后通过修改UnRaid上的/boot/config/plugins/nut/upsd.users文件来更改密码但记得也要同步修改群晖客户端的连接配置。关机行为配置策略核心 这里决定了停电后UnRaid自己何时、以何种方式关机。Shutdown Mode关机触发模式。我推荐选择“Time on Battery”电池运行时间。意思是UPS转电池供电后持续一段时间再关机。另一种“Battery Level”电池剩余电量模式依赖于UPS报告的百分比但有些UPS的百分比计算不太准。Battery Runtime Left电池剩余时间显示方式。选择“Battery Runtime”通常兼容性更好。Time on battery before shutdown (minutes)电池供电多少分钟后触发关机。这个值需要你根据UPS的负载和电池容量来设定。比如我的APC BK650带两台NAS满载大概能撑20分钟。我设置为4分钟意思是停电4分钟后如果市电还没恢复UnRaid就开始执行关机流程。这给了市电短时间跳闸恢复的缓冲期又确保了有足够时间完成关机。Turn off UPS after shutdownUnRaid关机后是否关闭UPS。我设置为“No”。因为我的UPS没有通电自启功能如果设为“Yes”关机后UPS也关了再来电时无法自动开机。如果你的UPS支持通电自启可以设为“Yes”以省电。显示设置Enable NUT Settings display on Dashboard建议设为“Yes”。这样在UnRaid的主仪表盘Dashboard上你就能直接看到UPS的实时状态比如输入电压、负载、电池电量和剩余时间非常直观。全部设置完成后点击页面最下方的“Apply”按钮。如果配置正确你会看到页面顶部的状态提示变成绿色显示NUT服务正在运行。此时你可以打开UnRaid的“Dashboard”如果刚才开启了显示应该能看到一个UPS信息面板。4. 在群晖NAS上配置NUT客户端现在“指挥官”UnRaid已经就位正在3493端口上广播UPS的状态信息。接下来我们要让“士兵”群晖学会监听并服从命令。这个步骤在群晖DSM图形界面里完成非常简单几乎就是“填空”。登录你的群晖DSM管理界面。打开“控制面板”。进入“硬件和电源”。切换到“不断电系统”选项卡。你会看到配置界面。勾选最上方的“启用UPS支持”。这是打开群晖UPS功能的总开关。关键部分来了在“网络不断电系统服务器”部分你需要填写UnRaid服务器的信息。勾选 “启用网络不断电系统服务器”。服务器IP地址这里填写你的UnRaid服务器的局域网IP地址。比如我的UnRaid是192.168.1.100。UPS名称这里填写我们在UnRaid的NUT设置里定义的UPS Name。还记得吗我们设为了ups。所以这里也填ups。端口保持默认的3493不变这是NUT服务的标准端口。用户名和密码这里填写在UnRaid中设置的从设备Slave认证信息。即用户名monuser密码secret。设置“DiskStation进入安全模式之前的等待时间”。这个时间是指群晖检测到UPS进入电池供电后等待多久进入安全模式停止服务但保持开机。这个时间必须设置得比UnRaid的关机等待时间我们之前设的4分钟短例如我设置为3分钟。这样停电3分钟后群晖先进入安全模式再过1分钟UnRaid开始关机。这个时间差确保了群晖能在UnRaid断电前完成自己的保护操作。最后别忘了点击“应用”保存设置。配置完成后群晖会立即尝试连接你指定的UnRaid NUT服务器。如果一切正常在“不断电系统”页面你会看到UPS状态信息从“未知”变为“正常”并且能显示电池电量等信息。这表示连接成功5. 测试、验证与故障排查配置完了但千万别以为这就万事大吉了。不经过测试的备份方案都是纸老虎不经过验证的断电保护等于没有保护。我们必须模拟一次“实战演练”。安全测试方法最安全、最推荐的方法是进行“软件测试”即模拟UPS报告电池供电状态而不是真的拔掉市电插头。在UnRaid的“NUT Settings”页面找到“UPS Shutdown Test”或类似选项不同插件版本位置可能不同。通常会有一个“Test”按钮。点击测试按钮。这会命令NUT驱动向系统发送一个“模拟电池供电”的信号。观察UnRaid DashboardUPS状态应立即从“Online”在线变为“On Battery”电池供电并且电池剩余时间开始倒计时。群晖控制面板UPS状态同样应该变为“电池供电”并且你设置的“安全模式等待时间”也开始倒计时。让测试运行到你设定的关机时间比如UnRaid的4分钟。你会看到UnRaid在倒计时结束后开始执行关机流程。而群晖会在它设定的更短时间3分钟进入安全模式。测试完成后务必在UPS测试界面点击“停止测试”或“恢复市电”按钮让系统状态恢复正常。如何验证配置是否正确除了看图形界面我们还可以用“命令行”这只显微镜来查看细节这尤其在出问题时非常有用。在UnRaid上验证打开UnRaid的“终端”Terminal。输入命令upsc upslocalhost。如果配置正确你会看到一长串详细的UPS数据包括battery.charge电池电量、battery.runtime电池剩余运行时间、ups.status状态应为OL在线等。这证明UnRaid端的NUT服务器工作正常且能正确读取UPS信息。在群晖上验证通过SSH如果你熟悉SSH可以登录到群晖。同样使用upsc命令但目标是UnRaid服务器upsc ups192.168.1.100请替换为你的UnRaid IP。如果返回了同样的UPS信息则证明网络连接、认证、配置全部正确群晖客户端成功获取到了数据。常见问题与排查思路如果测试失败或者连接不上别着急我们可以按以下步骤排查检查基本连接确保UnRaid和群晖能互相ping通。在任意一方的终端里ping一下对方的IP地址。检查防火墙确保UnRaid和群晖的防火墙没有阻止3493端口。在UnRaid上可以临时关闭防火墙测试在群晖的“控制面板”-“安全性”-“防火墙”中确保有规则允许从群晖到UnRaid IP的通信。检查NUT服务状态在UnRaid的“NUT Settings”页面确认服务状态是“Running”。可以尝试重启NUT服务。查看日志日志是排错最好的朋友。UnRaid日志在“工具”-“系统日志”中筛选与nut或ups相关的条目。群晖日志在“控制面板”-“日志中心”查看系统日志。更详细的日志通过SSH登录到UnRaid查看NUT相关日志文件通常位于/var/log/目录下如ups.log、upsd.log等。可以用tail -f /var/log/upsd.log命令实时查看连接尝试。核对用户名、密码和UPS名称这是最容易出错的地方。再三确认UnRaid中设置的UPS Name、Slave Username、Slave Password与群晖中填写的完全一致注意大小写。驱动问题如果UnRaid无法识别UPS可以尝试在“NUT Settings”中手动选择其他驱动比如blazer_usb某些老型号APC或nutdrv_qx某些山特型号具体驱动名可以在NUT官方文档中查询你的UPS型号。按照以上步骤一步步走下来绝大多数问题都能被定位和解决。配置成功后你的UnRaid和群晖就真正实现了UPS保护的联动像一个整体一样应对电力波动。