安装NUT配置UPS

NUT配置文件

不论是Linux还是Windows系统, 想要顺利获取UPS状态, 需要配置NUT的5个基本文件.

  1. nut.conf
    控制NUT运行模式, 支持standalone, netserver, netclient, master, slave, none.
    如果需要通过网络分享UPS状态信息, 运行模式需要设置为master或者netserver, 否则设置为standalone. 当前 Debian/Ubuntu 软件库中的 NUT 版本master和slave参数. 通常只需要在nut.conf中按照如下填写:

    1
    MODE=netserver
  2. ups.conf
    指定UPS设备名称还有UPS和服务器物理连接方式等.
    此文件只支持纯ASCII内容. 不同的UPS可能需要不同驱动, 在Hardware compatibility list 查找对应UPS驱动类型. 如果厂商推荐使用UPSilon 2000客户端, 驱动类型可以选择”nutdrv_qx”. 部分设备需要设置langid_fix=”0x409”, 固定USB HID 报告中的语言ID. desc用来简单描述ups设备. 通常没必要设置vendorid和productid, 这两个数值用于在连接多个UPS时, 区分不同设备.

    1
    2
    3
    4
    5
    6
    7
    [upsname]
    driver = "nutdrv_qx"
    port = auto
    langid_fix="0x409"
    desc="Constantinople 1453"
    vendorid = "0001"
    productid = "0000"

    最简单的配置:

    1
    2
    3
    4
    [upsname]
    driver = usbhid-ups
    port = auto
    desc = "Simple UPS"
  3. upsd.conf
    设置NUT服务器监听的地址和端口. 端口3493可能被Windows Docker Desktop占用.

    1
    2
    LISTEN 127.0.0.1 3493
    LISTEN 192.168.42.* 3493
  4. upsd.users
    设置访问权限.
    至少要设置一个用户才能顺利启动NUT. 在不需要控制UPS的前提下, 只需要设置一个只读用户即可.

    1
    2
    3
    [user]
    password = userpassword
    upsmon slave
  5. upsmon.conf
    定义了连接UPS服务器方式和UPS监控策略.

    1
    MONITOR upsname@127.0.0.1 1 user userpassword slave

Debian/Ubuntu配置NUT

  1. 安装 NUT 程序
    使用以下命令安装 NUT:

    1
    apt install nut
  2. 配置 UPS
    修改ups.conf 文件, 根据Hardware compatibility list 填写相应配置. 也可以通过以下命令扫描 UPS 设备, 并将 UPS信息填入 /etc/nut/ups.conf:

    1
    nut-scanner -U

    将修改后的ups.conf和其他配置文件保存到 /etc/nut 目录.

  3. 启动服务
    依次启动 NUT 相关服务:

    1
    2
    systemctl enable nut.targe
    systemctl restart nut-server
  4. 测试 UPS 状态

    1
    upsc upsname@127.0.0.1:3493

    若能正确输出 UPS 信息, 则说明配置成功.

Windows配置NUT

  1. 安装NUT主程序

    • 下载并执行安装程序.
      安装程序会尝试安装驱动, 此处忽略安装失败的错误提示. 记录VID和PID数值:
      1
      Found UPS : vendor ID = 1 - Product ID = 0
    • 安装完毕后, 执行程序目录中others文件夹中wdi-simple.exe程序手动安装驱动. 根据提示将UPS数据线连接至电脑.
    • 驱动完成安装后可在设备管理器找到”NUT USB Driver”
  2. 下载DLL文件
    NUT 需要一些缺少的库文件, 必须手动添加到程序目录:

    • 必须文件: libeay32.dll、ssleay32.dll、libgcc_s_dw2-1.dll.
    • libeay32.dll 和 ssleay32.dll 为 OpenSSL 运行库, 确保它们版本相同.
    • 将 libeay32.dll 和 ssleay32.dll 复制到 bin 文件夹.
    • 将 libeay32.dll、ssleay32.dll 和 libgcc_s_dw2-1.dll 复制到 sbin 文件夹.
  3. 配置文件

    • 修改ups.conf 文件, 填写VID和PID数值, 根据Hardware compatibility list 填写相应配置.
    • 将修改后的ups.conf和其他配置文件保存到C:\Program Files (x86)\NUT\etc 目录.
  4. 设置防护墙

    • NUT默认使用3493端口, 此端口可能被docker服务占用. 建议使用NETSTAT.EXE命令确认端口占用情况, 并修改默认端口.
    • 在防火墙设置中添加新规则, 开放upsd.conf中设置的端口.
    • 重启”Network UPS Tools”服务.
  5. 测试

    • 在bin目录下执行命令, 测试 UPS 状态:
      1
      .\upsc.exe ups@127.0.0.1:3493
    • 若终端能够正确输出 UPS 信息, 说明配置成功.
    • 更换USB接口需要重启服务.
  6. 客户端
    Windows 推荐使用WinNUT作为UPS客户端.

参考: