用途:在本地通过 QEMU 启动一次性 MikroTik CHR 路由器,无需硬件或云,用于实际执行、验证 RouterOS 命令与配置,答案可引用为 shell 与 RouterOS 命令。行为以 quickchr 0.4.8 为准。
主要能力与用法:生命周期命令包括 quickchr add --name lab-a --version 7.24.4 --arch x86 --add-network user、quickchr start lab-a --bg、quickchr exec lab-a "/system/resource/print"、quickchr stop lab-a、quickchr remove lab-a。add 只写配置不启动,会提示 quickchr start <name>。start --bg 会阻塞到 REST 就绪并打印 REST/SSH/WinBox 端点(首次约 22 秒,重启约 11 秒,暖缓存 HVF;TCG 软件模拟可能需数分钟)。exec 通过 REST 执行单条命令,--via 可选 auto|rest|qga,qga 仅适用于 Linux KVM 下的 x86 CHR。端口从 9100 起按每机 10 个自动分配,可用 --port-base 覆盖。版本可用 --version 固定或 --channel 选通道。可用 quickchr cache add 预热镜像,cache key 供 CI 使用。不要手改 machine.json。
驱动路由器:读写通过 centrs(@tikoci/centrs)并以机器名定位,例如 centrs retrieve --quickchr lab-a /system/resource 与 centrs execute --quickchr lab-a --yes '...';读无需标志,写必须有 --yes,每次一条语句。需要原始端点时用 quickchr inspect <name> --json 获取 URL 与凭据(admin、空密码)。
限制:该方式启动的 CHR 使用免费许可,MikroTik 限制每接口 1 Mbps 上传,其他功能不受限,配置/API/CLI 验证不受影响;吞吐或队列数据受此限制影响。device-mode 标志仅在机器首次启动时生效,已启动后会被静默忽略,CLI 无法修改,只能 remove + add + start。设备端 /system/device-mode/update 不会完成。启用容器需 RouterOS 7.20.8+ 与用户态网卡。mcast 链路在 macOS 不投递、在被禁止非连接 UDP 的环境中失败,且不限于本机;两台机器间建议用 socket::<name> 命名套接字。start 被杀死不会停止 VM,须用 quickchr list 与 REST 轮询确认并清理。