Upgrade
本页介绍 MikroTik 设备的 RouterOS 升级流程,涵盖基于发布通道(Long term、Stable、Testing、Development)的自动更新、通过 WinBox/WebFig/FTP 手动升级,以及引导加载器升级建议。文中解释了版本编号规则、更新工作流,并给出关键安全步骤的故障排查警告。
Upgrade(升级)
MikroTik 设备出厂即预装 RouterOS,因此通常无需安装——除非要在裸机 x86 PC 上安装 RouterOS,或使用 CHR 镜像在虚拟机上安装。对已安装的设备而言,升级过程非常简单。
版本编号
RouterOS 版本按顺序编号,用句点分隔各段。句点不代表小数点,各段也不具有位权意义。例如标识 2.5 不是 "两点五",也不是 "接近版本三的一半",而是第二个一级修订的第 5 个二级修订。因此 v5.2 比 v5.18 旧,v5.18 更新。
RouterOS 版本通过若干“发布通道”发布:Long term、Stable、Testing 和 Development。升级 RouterOS 时,你可以选择从哪个发布通道安装新软件包:
- Long term:发布频率低,仅包含最关键的修复。同一编号分支内的升级不包含新功能。当 Stable 版本发布一段时间并显得足够稳定后,会被晋升到 long-term 分支,替换掉较旧的版本,后者则移入归档。这会持续不断地引入新功能。
- Stable:每隔几个月发布一次,包含所有经过测试的新功能和修复。
- Testing:每隔几周发布一次,只经过基本的内部测试,不应在生产环境中使用。
- Development:必要时发布。包含原始改动,供软件爱好者测试新功能。
标准升级
package 升级功能会从路由器通过 HTTPS 连接到 MikroTik 下载服务器,检查所选发布通道中是否有更新的 RouterOS 版本。该菜单也可用于降级——只需把通道切换到提供更旧但更稳定版本的通道。该功能是从路由器而非你的电脑发起连接,因此路由器本身需要具备到 MikroTik 服务器的 HTTPS 连接。
在 QuickSet 或 System → Packages 菜单中点击 Check for Updates 按钮后,会打开 Check for Updates 窗口,显示当前更新日志,或(如果存在更新版本)最新更新日志。如果有更新版本,会出现 Download 和 Download&Install 按钮。选择 Download 会下载最新版本(需要手动重启设备),选择 Download&Install 则会开始下载,并在下载成功后自动重启设备。
提供的版本取决于所选发布通道。并非所有版本都可用。使用 check-for-updates 方式无法从旧版本一步升级到最新版本。例如,如果运行的是 RouterOS v6.x,即使选择名为 "Upgrade" 的大版本升级通道,你也只会看到 v7.12.1 可用。你必须先升级到该中间版本,之后更新版本才会出现在各通道中。这个中间步骤也可以用 check for updates 完成;只需在首次更新到中间版本后再次执行 check for updates。
如果安装了自定义软件包,下载器会考虑这一点,并下载所有必要的软件包。
Check for Updates 设置
可以通过 System → Packages → Check for Updates 窗口,或 /system/package/update/set 命令微调与 MikroTik 下载服务器的连接:
- Channel:检查新版本时使用的升级通道。各发布通道在版本编号一节中有说明。
- Mode:连接 MikroTik 下载服务器使用的协议。仅当你的网络封锁 HTTPS 时才使用
http。推荐使用 HTTPS。 - IP version:连接 MikroTik 下载服务器时优先使用的 IP 版本。
- Check certificate:是否以及如何校验服务器 SSL 证书。请始终使用
yes以确保连接安全。可用yes-without-crl跳过 CRL 校验。
/system/package/update/set channel=stable mode=https ip-version=auto check-certificate=yes
警告
强烈建议在 RouterOS 更新后升级引导加载器(bootloader)。要升级引导加载器,请在 CLI 中执行
/system/routerboard/upgrade命令,然后重启。也可以进入 GUI 的 System → RouterBOARD 菜单,点击 "Upgrade" 按钮,然后重启设备。 你可以在系统调度器中运行脚本来自动化升级过程。该脚本会向 MikroTik 升级服务器查询新版本。如果收到的响应是 "New version is available",脚本随后执行下面的升级命令。如果你是在较旧版本上首次运行,这一方式不会生效。它可能看不到最新版本——如果你运行的是 v6.x,你必须先手动选择 "Upgrade" 通道,执行一次大版本升级到 v7.12.1 中间版本,之后较新的 v7 版本才会出现在升级通道中。
/system/package/update/check-for-updates
:delay 3s;
:if ( [/system/package/update get status] = "New version is available") do={ /system/package/update/install }
故障排查
如果设备未检测到可用升级,请确认它能解析并访问升级服务器。
:put [:resolve upgrade.mikrotik.com]
结果应为 159.148.147.251。如果该地址无法解析,或解析到其他 IP,请检查你的 DNS 设置。更多信息请参阅 DNS 一文。
确认 DNS 解析正常后,验证设备能否访问服务器:
/tool/ping address=159.148.147.251
如果 ping 失败,请检查防火墙规则、路由或上游连接。
确认 IP 连接正常后,验证 443 端口是否可达:
[admin@MikroTik] > /system/telnet 159.148.147.251 port=443
Connecting to 159.148.147.251
Connected to 159.148.147.251
手动升级
你可以通过以下方式升级 RouterOS:
- WinBox —— 把文件拖放到 Files 菜单。
- WebFig —— 从 Files 菜单上传文件。
- FTP —— 把文件上传到根目录。
警告
强烈建议在升级 RouterOS 后升级引导加载器。要升级引导加载器,请在 CLI 中执行
/system/routerboard/upgrade命令,然后重启。也可以进入 GUI 的 System → RouterBOARD 菜单,点击 "Upgrade" 按钮,然后重启设备。警告: RouterOS 无法通过串口线升级。只有 RouterBOOT 可以用这种方式升级。
手动升级流程
- 访问 www.mikrotik.com,进入 Software 页面,选择你安装 RouterOS 的系统架构(系统架构可在 System → Resource 区域查看)。
- 下载 routeros (main) 以及设备上已安装的附加软件包。
- 用上述任一方法把软件包上传到设备。
如果你需要跳过某些特定包的升级,或某个包文件已不再提供,可使用 /system/package/update/install ignore-missing 跳过缺失的包。
使用 WinBox
选择你的系统类型并下载升级包。用 WinBox 连接到路由器。用鼠标选中下载的文件,把它拖到 Files 菜单。如果已有一些文件,请确保把包放在根菜单中,而不是 hotspot 文件夹内!上传随即开始。
<center></center>上传完成后,重启设备。新版本号会显示在 WinBox 标题栏和 Packages 菜单中。
使用 S/FTP
- 打开 S/FTP 客户端,选择软件包并上传到路由器。
- 你可以检查文件是否成功传输到路由器(可选)。
[admin@MikroTik] >/file/print
Columns: NAME, TYPE, SIZE, CREATION-TIME
# NAME TYPE SIZE CREATION-TIME
0 routeros-7.9-arm.npk package 13.0MiB 2023-05-18 16:16:18
1 pub directory 2022-11-04 11:22:19
2 ramdisk directory 1970-01-01 03:00:24
- 重启设备以开始升级。
[admin@MikroTik] >/system/reboot
Reboot, yes? [y/N]: y
- 重启后,你的路由器即为最新版本,可以在下面的菜单中查看:
/system/package/print
- 如果路由器未能正确升级,请务必查看 log
/log/print without-paging
RouterOS 本地升级
你可以在本地网络中,使用一台拥有所有所需软件包的设备上的 /system/package/local-update 工具,升级一台或多台 MikroTik 路由器。下面是一个包含 3 台路由器的简单示例(相同方法适用于任意数量的路由器):
- 在主路由器的 Files 菜单下放置所需的软件包:
可选: 你可以在主设备之间设置一台镜像设备。如果不需要,请跳过此步骤:
- 选择 Local Package Sources 并启用 Mirror device。设置软件包所在的 Primary Server(10.155.136.50)。Check Interval 的最小值可设为 00:07:12,届时设备会通过 WinBox 连接到主设备并检查软件包。 如果有新软件包可用,它会开始下载。下载过程较慢,文件较多时可能需要一些时间。如果出现某些失败,下载会在下次 Check 时继续。
- 会创建一个新的
packs文件夹,镜像设备将在其中存储软件包:
- 在将要升级的设备上新增一个软件包来源,本示例中使用镜像设备 10.155.136.71:
- 当你在 Local Update 的 packages 选项卡中点击 Refresh 时,WinBox 中的设备会连接到来源并检查是否有新软件包。
- 选择软件包并点击 Download。下载完成后,重启设备。
- 使用
/system/package/local-update/refresh可以在脚本中自动执行此操作。Fetch 工具可用于从我们的网页下载软件包,例如:
/tool/fetch url=https://download.mikrotik.com/routeros/7.16.1/routeros-7.16.1-arm.npk