概览


本文介绍的是通过标准操作流程更新固件出现异常时的特殊操作,以下这些方法对大部分用户都不推荐使用


自定义设备固件更新


对于大多数用户,我们建议使用 Network 网络应用程序的自动升级功能。但如果需要将设备的固件更新到特定版本,就需要自定义升级。在自定义升级前,设备必须能够访问互联网,还需要特定版本固件的下载链接。你可以在发行页面找到特定的设备固件。此方法适用于升级或降级固件。 通常不建议降级,因为可能会导致其他问题。

1.在固件发行页面中,滚动到底部并展开下载链接。 找到您的设备型号,右键 单击并复制链接地址

1.png

2.在 Network 网络应用程序中,单击设备,显示其属性面板,然后转至 设备(Device)> 管理(Manage)> 自定义升级(Custom Upgrade)

2.png

3.粘贴步骤 1 中复制的固件链接,然后点击 应用自定义升级(Apply Custom Upgrade)


缓存设备固件更新


如果 UniFi 设备未接入互联网,但是 UniFi Network 网络应用程序可以联网,那么您可以缓存固件后再升级。要使用此方法,您必须在 UniFi Network 网络中先缓存固件,该方法可用于升级或者降级固件。

要缓存固件,请转至 设置(Settings)> 系统设置(System Settings)> 维护(Maintenance)> 设备固件缓存(Device Firmware Cache)。在可用固件选项卡下,将鼠标悬停在设备的缓存列上,选择 缓存(Cache)

3.png

在 UniFi 设备选项卡中,该设备将显示更新可用。点击 更新可用(Update available),并且确认更改。

4.png


通过 SSH 更新固件


更新 UniFi Network 网络设备(UAP,USW,USG)

要通过 SSH 连接到您的 UniFi Network 网络设备,必须启用设备 SSH 身份验证,并且创建在 SSH 登录期间使用的账户和密码。请参阅此文章,查看如何执行此操作。

在连接互联网的情况下进行设备更新(推荐)
在没有连接互联网的情况下进行设备更新
  1. 发行页面中复制设备的固件下载链接。 有关如何获取下载链接,请参阅自定义升级部分。
  2. SSH 接入设备,运行 升级(upgrade)命令并输入下载链接。

    例如:

    upgrade https://dl.ui.com/unifi/firmware/UAL6/5.60.1.12923/BZ.mt7621_5.60.1+12923.210416.1641.bin
  1. 发行页面中,单击设备的固件下载链接,将固件下载到计算机。 有关下载链接的查找,请参阅自定义升级部分。
  2. 在 Terminal 终端( macOS 和 Linux),或 PuTTY (Windows)之类的应用程序上,使用 scp 命令,将固件文件传输到设备。 如果是 UniFi 安全网关(USG),则将文件重命名为 upgrade.tar,然后传输到 USG 上的 /home/<username>/ 文件夹。

    scp </folder path/firmwarefile.bin> <user>@<IP of device>:/tmp/fwupdate.bin

    :如果 USG 处于出厂默认状态,则用户名为 ubnt。 如果已经采用 USG,则使用 SSH 用户名

    UniFi AP 或者 UniFi 交换机 为例:

    scp /Users/alexpro/Desktop/BZ.mt7621_5.60.1+12923.210416.1641.bin Alex@192.168.1.219:/tmp/fwupdate.bin

    UniFi 安全网关(USG)为例:

    scp upgrade.tar ubnt@192.168.1.1:/home/ubnt/upgrade.tar

  3. 当提示输入密码时,使用与 SSH 相同的密码(在设备 SSH 身份验证部分设置)。
  4. 然后 SSH 接入设备,发出以下命令以启动本地升级:

    如果更新 UniFi APUniFi 交换机,请使用:

    syswrapper.sh upgrade2 &

    如果更新 UniFi 安全网关(USG),请修改命令并使用:

    sudo syswrapper.sh upgrade upgrade.tar

更新 UniFi OS 控制台

您需要在 UniFi OS 系统中启用 SSH,然后才能通过 SSH 接入控制台,操作请参阅此处

在连接互联网的情况下进行更新(推荐)
在没有连接互联网的情况下进行更新
  1. 发行页面中复制 UniFi OS 控制台的固件下载链接。 有关下载链接的查找,请参阅自定义升级部分。
  2. SSH 登录控制台,运行升级命令,然后输入发行页面中特定于您控制台的固件下载链接。

    如果更新 Dream Machine 梦想机(UDM、UDM Pro),请使用:

    ubnt-upgrade <download link>

    例如:

    ubnt-upgrade https://fw-download.ubnt.com/data/udm/0974-udmpro-1.8.0-f7d38e82e05c4febb5da3c0dbdb487d4.bin

    如果更新 Cloud Key(UCK Gen2、UCK Gen2 Plus),请使用:

    ubnt-systool fwupdate <download link>

1. 在发行页面中单击设备的固件下载链接,将固件下载到计算机。 有关下载链接的查找,请参阅自定义升级部分。

2. 在 Terminal 终端( macOS 和 Linux),或者 PuTTY(Windows)之类的应用程序上,使用 scp 命令,将固件文件传输到设备。使用 SSH 登录控制台的用户名和密码。

如果更新 Dream Machine 梦想机(UDM、UDM Pro),请使用:

scp </foldername/firmwarefile.bin> <user>@<IP-of-console>:/mnt/data/fw.bin

例如:

scp /Users/alexpro/Desktop/c374-udmpro-1.10.0-13-7c563cf205df48f1bd66530982a50141.bin root@192.168.1.1:/mnt/data/fw.bin

如果更新 Cloud Key(UCK Gen2、UCK Gen2 Plus),请使用:

scp </foldername/firmwarefile.bin> <user>@<IP-of-console>:/tmp/fw.bin

3. SSH 登陆控制台,使用升级命令,后面跟上文件的路径(如上)。

如果是 Dream Machine 梦想机(UDM、UDM Pro),请使用:ubnt-upgrade /mnt/data/fw.bin

如果更新 Cloud Key(UCK Gen2、UCK Gen2 Plus),请使用:ubnt-systool fwupdate /tmp/fw.bin


通过 SSH 更新 UniFi Network 网络应用程序


我们建议使用 UniFi OS 系统设置或 UniFi Network 网络应用程序,来更新应用程序的版本。 您无需使用 SSH,可以自行选择发行版本(即正式版本、待发行版本、测试版)。详情请参阅此处

如果使用 Dream Machine 梦想机
如果使用 Cloud Key
  1. 复制 UniFi Network 网络应用版本的发行链接,第 5 步中需要使用此链接。有关下载链接的查找,请参阅自定义升级部分。

    如果您没有看到适用 Dream Machine 梦想机的 UniFi Network 网络应用文件,您可以使用适用 Debian/Ubuntu 和 UniFi Cloud Key 的文件。
  2. SSH 登陆控制台,通过输入以下命令访问 UniFi OS Shell:unifi-os shell
  3. 使用以下命令导航到 /tmp 目录:cd /tmp
  4. 验证目录中是否存在任何以前的安装文件,如有,请删除它们:

    ls -l

    rm unifi_sysvinit_all.deb

  5. 使用 curl 命令,然后使用之前复制的链接,下载 UniFi 安装文件,并将其存储在 /tmp 目录下。

    curl -o "unifi_sysvinit_all.deb" <network application link.deb>

    例如:

    curl -o "unifi_sysvinit_all.deb" https://dl.ui.com/unifi/6.2.26-a79cb15f05/unifi_sysvinit_all.deb
  6. 文件下载完毕,使用 dpkg 命令安装新的新版本:

    dpkg -i unifi_sysvinit_all.deb

  7. 安装结束后,使用 rm 命令删除该文件:rm unifi_sysvinit_all.deb
  1. 发行页面中,复制您选择的 UniFi Network 网络应用程序版本的链接, 第 4 步中需要使用它。
  2. SSH 登陆控制台,导航到 /tmp 目录:

    cd /tmp

  3. 验证目录中是否存在任何以前的安装文件,如有,请删除它们:

    ls -l

    rm unifi_sysvinit_all.deb

  4. 使用 wget 命令,然后使用步骤1中复制的下载链接,将其放在 tmp 目录下。

    wget <download link>

    例如:

    wget https://dl.ui.com/unifi/6.2.26-a79cb15f05/unifi_sysvinit_all.deb
  5. 文件保存完毕后,输入以下命令行进行安装:

    sudo dpkg -i unifi_sysvinit_all.deb

  6. 安装完成后,使用 rm 命令删除文件。

    rm unifi_sysvinit_all.deb

故障排除


  1. 为什么我看到固件错误?

    固件错误可能有不同的原因。请确认您使用的固件文件,与设备型号对应。在发行页面中,您需要复制或下载适用于您设备型号的链接。

    通过 SSH 升级时,如果您看到了“无效固件”的错误提醒,那么就可能是安装了不正确的版本。可以转到 tmp 文件夹,删除 fwupdate.bin,然后再次尝试升级命令(请确保它位于应用程序正确的文件夹中)。

  2. 为什么我的 SSH 会话在完成升级之前被 "远程主机关闭"?
    有时 SSH 会话会自动结束,显示“由远程主机关闭”消息,但升级仍在后台进行。 升级时您会看到设备的 LED 灯闪烁。您需要等到设备的 LED 灯再次呈蓝色常亮,以确保升级成功。
  3. 我的设备 IP 地址是什么?
    您可以在应用程序的 UniFi 设备部分,点击你的设备查看 IP 地址,或者自定义调整显示栏上可显示内容,使设备的 IP 地址得以显示。
  4. 尝试通过 SSH 连接到 UniFi OS 控制台时,我收到“remote host identification has changed(远程主机标识已更改)!”的警告。

    转到电脑中的 known_hosts 文件, SSH 错误提示会告诉你此文件在哪。您可以删除文件中的所有密钥,留下一个空文档并保存更改。

    此文件夹可能已隐藏,因此请直接访问该文件夹(例如,使用 macOS 上的 Finder(访达)> Go(前往)> Go to Folder(前往文件夹))。

  5. 如果我的 Cloud Key 没有运行 UniFi OS 系统,我该如何升级?
    1. 首先在浏览器中输入其 IP 地址来访问 Cloud Key,默认密码是 ubnt/ubnt 或 root/ubnt。
    2. 转到维护(Maintenance)选项卡,检查更新以获得最新版本。如果要更新到特定版本,请选择手动更新(Update Manually),然后使用固件发行页面中的下载链接。

    要通过 SSH 升级,请遵循与上述 SSH 部分相同的说明,使用特定型号的固件下载链接。

  6. 为什么在输入密码之前我的 SSH 会话会超时?
    您必须在本地连接时才能 SSH 到您的设备上。 这意味着您使用的计算机必须与设备位于同一网络中。