MikroTik Cloud Hosted Router(CHR)是 RouterOS 的虚拟版本,适合用作 VPN 网关、实验路由器,或放在其他主机前面的防火墙。它不是通过 ISO 安装的,而是把原始磁盘镜像直接写入 VPS 的磁盘。本文在 VPS Linux Infrawire 上演示完整流程,并给出避免把自己锁在门外的各项防范措施。
破坏性操作。 VPS 磁盘上的所有内容(系统、数据、SSH 密钥)都会被清除且无法恢复。请先备份需要的文件,并且只在可以重建的 VPS 上继续。
📋 前提条件
- 一台运行 Ubuntu 24.04 或 Debian 12、可用 root 通过 SSH 登录的 KVM VPS(在客户中心可以找到 VPS 的 IP 和 root 密码)。
- 至少 1 GB 内存,因为镜像要在内存中解压。
- 能够打开 VPS 的 VNC 控制台作为后路,因为 CHR 不会接受你原来的 SSH 密钥。
- 存放在 VPS 之外的数据备份。
📝 先记下网络参数
CHR 启动时是空白配置。如果网络不提供 DHCP,请先记下之后要用的数值:
Baship -4 addr show scope global ip -4 route show default ip -6 addr show scope global lsblk
保留 VPS_IP/PREFIX、默认网关(GATEWAY)、网卡名称和磁盘名称(通常是 /dev/vda,有时是 /dev/sda)。
💾 下载镜像并写入磁盘
在内存(/dev/shm)中操作,这样下载的文件在覆盖磁盘时不会丢失。版本号(CHR_VERSION)请到 mikrotik.com 的下载页面,从 stable 或 long-term 通道获取。
Bashapt update && apt install -y unzip wget cd /dev/shm wget https://download.mikrotik.com/routeros/CHR_VERSION/chr-CHR_VERSION.img.zip unzip chr-CHR_VERSION.img.zip lsblk
再次核对磁盘名称,然后写入镜像。此命令会销毁目标磁盘:
Bashdd if=chr-CHR_VERSION.img of=/dev/vda bs=1M oflag=sync status=progress sync
旧系统已不存在,直接执行 reboot 可能失败。请改为通过内核强制干净地重启:
Bashecho 1 > /proc/sys/kernel/sysrq echo s > /proc/sysrq-trigger echo b > /proc/sysrq-trigger
🔑 首次登录与基础配置
打开 VPS 的 VNC 控制台。以 admin 和空密码登录;RouterOS 可能会立即要求你设置新密码。如果没有通过 DHCP 获得地址,请手动设置:
Bash/ip address add address=VPS_IP/PREFIX interface=ether1 /ip route add dst-address=0.0.0.0/0 gateway=GATEWAY /ip dns set servers=1.1.1.1,9.9.9.9 /ping 1.1.1.1 count=3
然后创建自己的管理员账号,并在用新账号登录成功后删除默认用户:
Bash/user add name=USER password=STRONG_PASSWORD group=full /user remove admin
🔒 关闭不需要的服务
公网路由器应尽量少暴露服务。保留 SSH,并限制为只允许你自己的地址:
Bash/ip service disable telnet,ftp,www,api,api-ssl /ip service set ssh address=ADMIN_IP/32 /ip service set winbox address=ADMIN_IP/32 /tool mac-server set allowed-interface-list=none /ip neighbor discovery-settings set discover-interface-list=none /ip service print
请把 ADMIN_IP 换成你管理时使用的公网 IP。如果地址变了,可通过 VNC 控制台修正。
🎫 CHR 许可证
CHR 无需许可证密钥也能运行,但免费模式会把每个接口的上传速度限制在 1 Mbps。许可证等级(P1、P10、P-Unlimited)可取消或提高该限制,需向 MikroTik 购买,并提供试用期。先查看当前状态,再应用与你的 MikroTik 账号绑定的许可证:
Bash/system license print /system license renew account=MIKROTIK_ACCOUNT level=p1
✅ 验证
在你自己的电脑上确认路由器有响应,且只有 SSH 可访问:
Bashssh USER@VPS_IP nmap -Pn -p 21,22,23,80,8291,8728 VPS_IP
在 RouterOS 中,/system resource print 应显示 CHR 版本,/ip address print 应显示你的公网地址。
🛠️ 故障排查
重启后 ping 和 SSH 都不通。 打开 VNC 控制台。如果 /ip address print 为空,说明该网络不提供 DHCP:按照你记下的笔记手动设置地址和路由。
VPS 又启动回了旧的 Linux。 镜像写错了磁盘。请重装 Linux 或使用救援系统,检查 lsblk,再以正确的目标重做一遍。
上传速度卡在 1 Mbps 左右。 这是 CHR 免费模式的限制,并非网络故障。请按上文应用许可证。
🚀 你的 VPS 现在已运行 RouterOS CHR:请用 /export file=backup 保存一份配置备份。