记一次UPS安装及NUT配置过程
前言
目前在我的机柜里有3台机器及若干网络设备,很不巧的是我家所在区域的电网并不是特别稳定,在夏天用电高峰经常出现街道线路故障导致停电,停电时长短则几秒,长则数小时。为了保护硬件和数据安全,配备一台不间断电源(Uninterruptible Power Supply,UPS)是必不可少的。
UPS设备介绍
当前在机柜内服役的UPS是华为UPS2000-G-3KRTL在线式UPS,支持塔式和机架式两种安装方式,主机高度 2U。额定容量3 kVA,最大可带载2400 W。机器后缀 “L” 为长延机,不内置电池,需外接电池组。外接电池组电压要求为96 VDC,电池容量支持在18-999 Ah范围内设置。需要注意,UPS电池是这套系统里成本占比最高、利润最大的部分。建议不要只看初始报价,最好直接联系厂家,货比三家。这里我选择了8节12V38Ah的理士阀控式铅酸蓄电池串联为标准电池组。
大功率机器注意:UPS电源线插座为16 A插座。
UPS设置
官方设置文档内有详细的设备信息,可查阅官方文档获取帮助。以下为可能用到的必要设置,具体操作方法查阅参数设置。
- 设置电池容量:利用“▲”和“▼”来调整并设置UPS的电池容量。本机根据电池容量设置为38。

18~999:以Ah为单位,设置范围为18~999(标机固定设置为9Ah,不可设;长机默认18Ah)
电池组为串联,总容量不变。
- 设置ECO启用:电网电压和频率较为稳定可以启用。该功能启用后逆变器将待机,直接使用旁路输出来达到节能的目的,旁路中断后能够以毫秒级切换逆变保证供电。本机设置为ENA。

ENA:ECO节能模式启用,DIS:ECO节能模式停用(默认设置)
不启用ECO大约50 W的待机功耗,这可不是小数字。
- 机器附带了一根A-B USB线,可以直接使用USB通讯。我选择了先前就在使用的RS232串口连接。
NetworkUPSTools(NUT)
为了实现一台UPS对机柜内的3台主机进行电源管理,需要使主机能够与UPS之间进行通讯,来让UPS电池即将耗尽时通知主机关机。实现这个目的的主角就是NUT。
配置NUT服务端
我的主服务设备是Windows Server,选用了最新版本的NUT-for-Windows-x86_64-RELEASE-2.8.5-1-fixNSS.7z,这个版本已经实现了对Windows系统下huawei-ups2000驱动的支持。
你可以在Hardware compatibility list网站查询NUT支持的UPS品牌与型号。
软件配置
将下载的NUT压缩包解压到任意的位置。主要关注以下两个文件路径,建议把主程序目录加入环境变量。
1
2
3
4# 配置文件目录
NUT\mingw64\etc
# 主程序目录
NUT\mingw64\bin配置文件
不论是Linux还是Windows系统, 想要顺利获取UPS状态, 需要配置NUT的5个基本文件。
nut.conf
控制NUT运行模式, 支持standalone, netserver, netclient, master, slave, none。
如果需要通过网络分享UPS状态信息, 运行模式需要设置为master或者netserver, 否则设置为standalone。本机作为UPS服务器,因此在nut.conf中填写:nut.conf 1
MODE=netserver
ups.conf
指定UPS设备名称还有UPS和服务器物理连接方式等,此文件只支持纯ASCII内容. 不同的UPS可能需要不同驱动。本机填写:ups.conf 1
2
3
4[huawei] # upsname,自定义
driver = huawei-ups2000 # 驱动
port = "\\\\.\\COM2" # 串口,根据设备管理器实际填写
desc = "Huawei UPS2000-G-3KRTL" # 设备描述upsd.conf
设置NUT服务器监听的地址和端口。端口3493可能被Windows Docker Desktop占用。本机填写:upsd.conf 1
LISTEN 0.0.0.0 3499
upsd.users
设置访问权限。至少要设置一个用户才能顺利启动NUT。在不需要控制UPS的前提下, 只需要设置一个只读用户即可。upsd.users 1
2
3[monuser]
password = userpassword
upsmon slaveupsmon.conf
定义了连接UPS服务器方式和UPS监控策略。upsmon.conf 1
2
3
4MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POWERDOWNFLAG /etc/killpower
MONITOR huawei@127.0.0.1:3499 1 monuser userpassword master
运行NUT服务
- Windows NUT基础命令
1
2
3
4
5
6
7
8nut start # 启动所有 NUT 服务(driver、upsd、upsmon)
nut stop # 停止所有 NUT 服务
nut restart # 重启所有 NUT 服务
nut status # 查看所有 NUT 服务的运行状态
nut-scanner -U # 扫描 UPS 设备, 可将获得的信息写入ups.conf
upsc huawei@127.0.0.1:3499 # 查看 UPS 的所有运行参数
huawei-ups2000.exe -a huawei -DDDD # 在前台运行驱动,输出详细调试信息
upsd -D # 在前台运行 upsd 数据服务,输出日志- NUT的各个工具都内置了
-h参数,可以快速调出帮助信息,查看其支持的选项和用法。 - 填写完必要的配置文件后,执行
nut start启动NUT服务,NUT服务端部署完毕。
配置NUT客户端
成功部署NUT服务端后,我们就可以在局域网内的其他机器上部署客户端来实现多设备电源管理。我的另外两台设备均为Ubuntu Server,以下为安装步骤。
安装NUT程序
使用以下命令安装 NUT:1
2sudo apt update
sudo apt install nut配置运行模式
编辑/etc/nut/nut.conf文件,将其模式设置为netclient:1
sudo nano /etc/nut/nut.conf
修改内容为:
1
MODE=netclient
保存并退出 (
Ctrl+O,Enter,Ctrl+X)。配置监控对象
实现与服务端通信的重要步骤,编辑/etc/nut/upsmon.conf文件,设置MONITOR:1
sudo nano /etc/nut/upsmon.conf
在文件中找到或添加 MONITOR 行,内容如下:
1
MONITOR huawei@192.168.x.x:3499 1 monuser userpassword secondary
相较于服务端,客户端的
MONITOR配置只需要更改IP地址为服务端IP,同时更改主从模式为secondary(从属模式),实现客户机先于主服务器关机。并确保以下参数也正确配置:1
2
3MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POWERDOWNFLAG /etc/killpower保存并退出文件。
重启NUT客户端服务
应用配置后,重启nut-client服务:1
sudo systemctl restart nut-client
检查服务和通信状态,确保服务和通信正常:
1
2sudo systemctl status nut-client
upsc huawei@192.168.x.x:3499生效测试
可以使用
upsmon的测试模式验证:1
sudo upsmon -t
这个命令会模拟一个低电量事件,立即触发
SHUTDOWNCMD。请先观察执行效果,确认无误。真实断电测试
直接断开UPS的市电输入,等待达到低电量阈值观察情况。
后记
- 在早些时候,我的机柜里面只有一台 R730xd 作为多用途服务器,即便是加上了其他网络设备,整个机柜峰值功率也只有大约300 W,常年的平均功耗在200 W上下。当时选配了一台山特 C1k-E 1kVA/900W 作为应急UPS,这台UPS内置了两节铅酸蓄电池,单电池容量9 Ah,电池组总额定电压为24 VDC。虽然容量不大,对于200 W的平均功耗来说,应对短时断电保证不突然停机或是长时断电保证机器安全关闭也是绰绰有余了。
- 在电源管理方面,这台UPS和我的R730xd都自带了RS232串口,直接使用附加的R232串口线连接UPS和R730xd并安装山特的WinPower软件就可以进行方便的电源管理。然而随着时间的推移,机柜里面的各类小垃圾逐渐变多了,这台山特的UPS就显得不太够用了,只能离开它多年的岗位,将这份任务交给它的接班人。
参考
- 标题: 记一次UPS安装及NUT配置过程
- 作者: 雲雀
- 创建于 : 2026-08-13 00:00:00
- 更新于 : 2026-08-18 01:39:04
- 链接: https://blog.neko-arc.top/2026/08/13/ups安装及配置/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。

