mcpField
R
routeros-fundamentals

routeros-fundamentals

github.com/tikoci云与 DevOps8396 次安装5 天前更新
代码仓库

关于 routeros-fundamentals

面向操作 MikroTik RouterOS 的 Agent,说明其与 GNU/Linux 的差异,帮助避免错误假设。内容涵盖 CLI、REST API、版本、架构和硬件信息。

主要功能

  1. 01RouterOS 与 GNU/Linux 的差异
  2. 02CLI 语法与使用说明
  3. 03REST API 方法及注意事项
  4. 04版本与架构参考
  5. 05硬件检查命令

适用场景

  1. 01规划通过 CLI 管理 RouterOS
  2. 02构造 RouterOS REST API 请求
  3. 03检查设备版本和架构
  4. 04避免在 Agent 指引中假设存在 Unix shell

MCP 相关

该技能指向 rosetta MCP 服务,用于浏览命令树和查询属性。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tikoci/routeros-skills --skill routeros-fundamentals

安装后在 Claude Code 中输入/routeros-fundamentals确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
async-commands-rest.md
bun-runtime-gotchas.md
device-mode-rest.md
device-mode.md
extra-packages.md
licensing-rest.md
packages-rest.md
rest-api-patterns.md
routeros-firewall-rest.md
routeros-networking-rest.md
routeros-users-rest.md
scripting.md
version-parsing.md

详细介绍

RouterOS 基础知识

RouterOS 不是 GNU/Linux

RouterOS 运行 Linux 内核(5.6.3),但内核之上的所有内容都是 MikroTik 专有的 nova 系统。这是 Agent 最需要牢记的一点。

RouterOS 上不存在的内容:

  • 没有 /bin、/usr、/etc、/var——没有 FHS 目录结构
  • 没有 bash、sh、ash、zsh——根本没有 Unix shell
  • 没有 coreutils(ls、cat、grep、ps、mount、ip、iptables 等)
  • 没有 glibc、musl、busybox
  • 没有 apt、pkg、opkg——没有包管理器(软件包是 .npk 文件,通过上传后重启安装)
  • 没有 systemctl、service 或 init 系统
  • 用户空间无法访问 /proc 或 /sys
  • 没有 docker、podman——RouterOS 有自己的 /container 子系统(7.x+)

RouterOS 上存在的内容:

  • RouterOS CLI——它有自己的语言,不是 shell。可通过 SSH、串口、WinBox 或 WebFig 访问
  • /rest/ 下的 REST API(HTTP,默认端口为 80)——主要的程序化接口
  • RouterOS 脚本语言(.rsc 文件)——它有自己的语法,不是 bash。参见 routeros-scripting 技能和脚本参考
  • WebFig(Web UI),端口为 80
  • WinBox 协议,端口为 8291

Agent 应避免的常见错误:

  • 不要尝试执行 ssh admin@host 'ls /'——这会打开 RouterOS CLI,而不是 shell
  • 不要建议使用 mount、fdisk、mkfs——应改用 /disk 命令
  • 不要在 /etc/ 中查找配置文件——配置存储在 RouterOS 数据库中
  • 不要假定 ping 的用法相同——在 CLI 中应使用 /tool/ping 或 /ping
  • 不要建议通过 apt 或 opkg 安装软件包——通过 SCP 上传 .npk,然后执行 /system/package/apply-changes(7.18+)或 /system/reboot(<7.18)
  • 完整的软件包列表和安装方式参见额外软件包参考

RouterOS CLI 语法

RouterOS CLI 使用基于路径的导航,不使用 Unix 命令管道:

# Navigation
/ip/address/print
/interface/print
/system/resource/print

# Adding entries
/ip/address/add address=192.168.1.1/24 interface=ether1

# Modifying (by internal ID or find expression)
/ip/address/set [find interface=ether1] address=10.0.0.1/24

# Removing
/ip/address/remove [find address="192.168.1.1/24"]

# Running a command
/system/reboot
/tool/fetch url="http://example.com/file.npk" dst-path="/"

与 shell 的主要语法区别:

  • = 用于设置属性(两侧不能有空格)
  • [find ...] 是查询表达式(类似 WHERE)
  • 交互式 print 显示的行号不是可在脚本中使用的对象 ID;请使用 [find ...] 或 *HEX 内部 ID
  • 字符串使用 ""(只能用双引号)
  • 注释使用 #
  • 变量::local myVar "value" 和 $myVar
  • 没有管道、重定向或子 shell

REST API

RouterOS REST API 位于 http://HOST:PORT/rest/。HTTP 动词的映射方式并不标准:

HTTPRouterOS 操作CLI 等效命令
GETprint(列出/读取)/path/print
PUTadd(创建)/path/add
PATCHset(更新)/path/set
DELETEremove/path/remove
POSTcommand(执行)/path/command

需要注意的事项:

  • PUT 会创建(不会更新)——这与许多 REST API 相反
  • 空密码认证:admin:(冒号必不可少,后面不带任何内容)
  • WebFig 根路径(GET /)无需认证即可返回 HTTP 200——可将其用作健康检查
  • REST API(/rest/)需要认证(未认证时返回 HTTP 401)
  • .id 字段的格式为 *HEX(例如 *1、*A)

完整的模式、错误处理、筛选、POST 命令和 /console/inspect 说明,请参见 REST API 参考。

版本方案

格式:MAJOR.MINOR[.PATCH][betaN|rcN]——例如 7.22、7.22.1、7.23beta2、7.22rc1

发布渠道: stable / long-term / testing / development

版本端点(纯文本):https://upgrade.mikrotik.com/routeros/NEWESTa7.<channel>

有关版本解析、比较、下载 URL 和软件包命名,请参见版本解析参考。

架构名称

MikroTik 使用以下架构标识符(不是标准的 Linux 架构名称):

MikroTik 名称CPU常见硬件
x86x86_64CHR、基于 x86 的 RouterBOARD
arm64aarch64新款 ARM 主板(RB5009、Chateau)
armARMv7较旧的 ARM 主板
mipsbeMIPS 大端序旧款 RouterBOARD
mmipsMIPS 多核hAP ac、RB4011
smipsMIPS 单核hAP lite、mAP
ppcPowerPCCCR1xxx 系列
tileTileraCCR(较旧型号)

CHR(Cloud Hosted Router)仅适用于 x86 和 arm64。

默认凭据

  • 用户名:admin
  • 密码:(空 — 无密码)
  • 首次通过 SSH/控制台登录时,RouterOS 7.x 会提示设置密码,或按 a 跳过
  • REST API 和 WebFig 允许使用空密码访问

从 RouterOS CLI 检查硬件

# PCI devices (the RouterOS equivalent of lspci)
/system/resource/hardware/print

# IRQ assignments (shows driver binding)
/system/resource/irq/print

# System overview
/system/resource/print

# Disk info
/disk/print

# Installed packages
/system/package/print

# IP services and ports
/ip/service/print

# Network interfaces
/interface/print

其他资源

参考文件:

相关技能:

  • RouterOS 脚本和 .rsc/CLI 配置自动化注意事项:参见 routeros-scripting 技能
  • /container 子系统(VETH、device-mode、生命周期):参见 routeros-container 技能
  • netinstall-cli 和设备刷写:参见 routeros-netinstall 技能
  • /app YAML 容器格式(7.22+):参见 routeros-app-yaml 技能
  • /console/inspect 树遍历和架构生成:参见 routeros-command-tree 技能
  • 在 QEMU 中运行 CHR(本地或 CI):参见 routeros-qemu-chr 技能
  • 数据包捕获、/tool/sniffer 和 TZSP 流式传输:参见 routeros-sniffer 技能

MCP 工具:

  • 浏览命令树和查询属性:使用 rosetta MCP 服务工具(routeros_search、routeros_get_page、routeros_command_tree)

评论

支持 Markdown