返回顶部
m

mikrotik-apiMikroTik API管理

Manages MikroTik routers via the RouterOS API (port 8728/8729). Use when the user wants to configure, monitor, or troubleshoot a MikroTik router — including interfaces, firewall, DHCP, DNS, routing, queues, VPN, and system management.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.1
安全检测
已通过
188
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

mikrotik-api

MikroTik API 管理

使用 Python 的 routeros-api 库通过 API 端口(8728 明文,8729 SSL)与 MikroTik RouterOS 设备通信。

前置条件

如果未安装该库,请执行以下命令:
bash
pip3 install --break-system-packages routeros-api

连接

强烈建议使用环境变量存储凭据,避免硬编码。

环境变量

在环境或 .env 文件中设置以下变量:
  • - MIKROTIKHOST:路由器 IP 或主机名
  • MIKROTIKUSERNAME:路由器用户名
  • MIKROTIK_PASSWORD:路由器密码

Python 连接模式

python import routeros_api import os

从环境变量获取凭据

host = os.getenv(MIKROTIK_HOST) username = os.getenv(MIKROTIK_USERNAME) password = os.getenv(MIKROTIK_PASSWORD)

如果环境变量缺失,回退到手动输入

if not all([host, username, password]): print(环境变量 MIKROTIKHOST、MIKROTIKUSERNAME 或 MIKROTIK_PASSWORD 未设置。) # host = input(输入主机:) ...

conn = routeros_api.RouterOsApiPool(
host=host,
username=username,
password=password,
plaintext_login=True, # RouterOS 6.43+ 需要
port=8728 # SSL 使用 8729
)
api = conn.get_api()

... 执行操作 ...


conn.disconnect()

连接规则

  • - 优先使用环境变量:指导用户设置 MIKROTIKHOST、MIKROTIKUSERNAME 和 MIKROTIKPASSWORD。
  • 仅在环境变量中未找到时,才向用户询问这些详细信息。
  • 默认 API 端口为 8728(明文)或 8729(SSL)。
  • 操作完成后始终调用 conn.disconnect()。
  • RouterOS v6.43+ 和 v7.x 使用 plaintextlogin=True。

SSL 连接

python conn = routeros_api.RouterOsApiPool( host=host, username=username, password=password, plaintext_login=True, use_ssl=True, ssl_verify=False, # 使用正确证书时设为 True sslverifyhostname=False, port=8729 )

核心 API 操作

读取资源(GET / print)

python resource = api.get_resource(/ip/address) items = resource.get() # 获取所有 items = resource.get(interface=ether1) # 按参数过滤 items = resource.get(disabled=false) # 按状态过滤

添加条目(ADD)

python resource = api.get_resource(/ip/address) resource.add(address=192.168.1.1/24, interface=ether1)

带注释

resource.add(address=192.168.1.1/24, interface=ether1, comment=管理)

更新条目(SET)

python resource = api.get_resource(/ip/address) resource.set(id=*1, address=192.168.2.1/24) resource.set(id=*1, comment=通过 API 更新) resource.set(id=*1, disabled=yes) # 禁用条目 resource.set(id=*1, disabled=no) # 启用条目

删除条目(REMOVE)

python resource = api.get_resource(/ip/address) resource.remove(id=*1)

调用命令(CALL)

python resource = api.get_resource(/system) resource.call(reboot)

带参数调用

resource = api.get_resource(/ip/firewall/filter) resource.call(move, {numbers: 1, destination: 5})

启用/禁用条目

python resource = api.get_resource(/interface) resource.set(id=*1, disabled=yes) # 禁用 resource.set(id=*1, disabled=no) # 启用

完整资源路径参考

系统
任务资源路径
系统信息(CPU、内存、运行时间)/system/resource
路由器标识
/system/identity |

| 系统时钟 | /system/clock | | NTP 客户端 | /system/ntp/client | | NTP 服务器 | /system/ntp/server | | 调度器 | /system/scheduler | | 脚本 | /system/script | | 日志规则 | /system/logging | | 日志条目 | /log | | 软件包 | /system/package | | 软件包更新 | /system/package/update | | 路由器板信息 | /system/routerboard | | 许可证 | /system/license | | 健康状态(电压、温度) | /system/health | | 历史记录 | /system/history | | 用户 | /user | | 用户组 | /user/group | | 活跃用户 | /user/active | | SSH 密钥 | /user/ssh-keys | | 文件 | /file | | 备份 | /system/backup | | SNMP | /snmp | | SNMP 团体 | /snmp/community | | 证书 | /certificate | | 控制台 | /system/console | | LED | /system/leds |

接口
任务资源路径
所有接口/interface
以太网
/interface/ethernet |

| 桥接 | /interface/bridge | | 桥接端口 | /interface/bridge/port | | 桥接 VLAN | /interface/bridge/vlan | | 桥接主机(MAC 表) | /interface/bridge/host | | 桥接 MSTi | /interface/bridge/msti | | 桥接设置 | /interface/bridge/settings | | VLAN | /interface/vlan | | 绑定(LACP/绑定) | /interface/bonding | | EoIP 隧道 | /interface/eoip | | GRE 隧道 | /interface/gre | | IPIP 隧道 | /interface/ipip | | VXLAN | /interface/vxlan | | VXLAN VTEP | /interface/vxlan/vtep | | WireGuard | /interface/wireguard | | WireGuard 对等体 | /interface/wireguard/peers | | L2TP 客户端 | /interface/l2tp-client | | L2TP 服务器 | /interface/l2tp-server/server | | SSTP 客户端 | /interface/sstp-client | | SSTP 服务器 | /interface/sstp-server/server | | OVPN 客户端 | /interface/ovpn-client | | OVPN 服务器 | /interface/ovpn-server/server | | PPPoE 客户端 | /interface/pppoe-client | | PPPoE 服务器 | /interface/pppoe-server/server | | PPTP 客户端 | /interface/pptp-client | | PPTP 服务器 | /interface/pptp-server/server | | LTE | /interface/lte | | LTE APN | /interface/lte/apn | | 无线(旧版 WiFi) | /interface/wireless | | WiFi(新版,ROS 7) | /interface/wifi | | WiFi 信道 | /interface/wifi/channel | | WiFi 数据路径 | /interface/wifi/datapath | | WiFi 安全 | /interface/wifi/security | | WiFi 配置 | /interface/wifi/configuration | | WiFi 配置 | /interface/wifi/provisioning | | WiFi 注册表 | /interface/wifi/registration-table | | WiFi 访问列表 | /interface/wifi/access-list | | WiFi 互通 | /interface/wifi/interworking | | 接口列表 | /interface/list | | 接口列表成员 | /interface/list/member | | 以太网交换机 | /interface/ethernet/switch | | 以太网交换机端口 | /interface/ethernet/switch/port | | 流量监控 | /interface/monitor-traffic |

IP
任务资源路径
IP 地址/ip/address
ARP 表
/ip/arp |

| 路由 | /ip/route | | 路由规则 | /ip/route/rule | | DNS 设置 | /ip/dns | | DNS 静态条目 | /ip/dns/static | | DNS 缓存 | /ip/dns/cache | | DHCP 客户端

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 mikrotik-api-1776270182 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 mikrotik-api-1776270182 技能

通过命令行安装

skillhub install mikrotik-api-1776270182

下载

⬇ 下载 mikrotik-api v1.0.1(免费)

文件大小: 6.44 KB | 发布时间: 2026-4-17 15:24

v1.0.1 最新 2026-4-17 15:24
Update: Added instructions to use environment variables (MIKROTIK_HOST, MIKROTIK_USERNAME, MIKROTIK_PASSWORD) for secure connection.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部