📝 Adequate

MikroTik RouterOS — CLI шпаргалка

Довідник команд RouterOS для щоденного адміністрування MikroTik роутерів. Для теорії — Основи RouterOS.

💡 RouterOS 6 vs 7
RouterOS 7 змінив ряд команд — особливо BGP та firewall. Синтаксичні відмінності зазначено поруч з командою. Якщо не вказано — працює однаково.

Навігація в CLI

Команда Дія
/ Перейти в корінь
.. Рівнем вище
/ip address Перейти в меню IP → Addresses
print Показати всі записи
print detail З усіма параметрами
print where interface=ether1 Фільтр
? або Tab Контекстна допомога/автодоповнення
export Вивести поточну конфіг як команди
export file=backup.rsc Зберегти у файл на роутері
# Експорт без коментарів та замовчувань — чистий diff-friendly конфіг
/export terse hide-sensitive

Interface Management

# Список інтерфейсів
/interface print

# Увімкнути/вимкнути
/interface enable ether2
/interface disable ether2

# Перейменувати
/interface set ether1 name=ether1-WAN comment="Uplink to ISP"

# Статистика
/interface monitor-traffic ether1-WAN duration=10

# VLAN
/interface vlan add interface=bridge name=vlan100 vlan-id=100

# Bridge
/interface bridge add name=bridge-lan
/interface bridge port add bridge=bridge-lan interface=ether2
/interface bridge port add bridge=bridge-lan interface=ether3

IP Address та маршрутизація

# Призначити IP
/ip address add address=192.168.88.1/24 interface=bridge-lan
/ip address add address=10.10.10.5/24 interface=wg-mesh comment="VPN"

# Default route
/ip route add dst-address=0.0.0.0/0 gateway=192.168.1.1 distance=1

# Статичний маршрут з перевіркою
/ip route add dst-address=10.20.0.0/16 gateway=10.10.10.1 \
  check-gateway=ping distance=1

# Перегляд
/ip route print
/ip route print where active=yes
/ip address print
ℹ️ RouterOS 7
В RouterOS 7 команди `/ip route` працюють так само, але з'явилось `/routing table` для VRF. Для динамічної маршрутизації — див. BGP нижче.

Firewall — filter rules

# Мінімальний захист input
/ip firewall filter
add chain=input action=accept connection-state=established,related comment="Allow established"
add chain=input action=drop connection-state=invalid comment="Drop invalid"
add chain=input action=accept protocol=icmp comment="Allow ICMP"
add chain=input action=accept in-interface=bridge-lan comment="Allow LAN"
add chain=input action=accept protocol=udp dst-port=51820 comment="WireGuard"
add chain=input action=accept protocol=tcp dst-port=22 src-address-list=trusted comment="SSH"
add chain=input action=drop comment="Drop everything else"

# Forward (транзит)
add chain=forward action=accept connection-state=established,related
add chain=forward action=drop connection-state=invalid
add chain=forward action=accept in-interface=bridge-lan out-interface=ether1-WAN
add chain=forward action=drop in-interface=ether1-WAN comment="Drop WAN→LAN by default"

# Address-list для trusted IP
/ip firewall address-list add list=trusted address=10.10.10.0/24
/ip firewall address-list add list=trusted address=192.168.88.0/24

NAT (masquerade та port forward)

/ip firewall nat
# Masquerade для LAN  WAN
add chain=srcnat out-interface=ether1-WAN action=masquerade comment="NAT out"

# Port forward 443  внутрішній сервер
add chain=dstnat protocol=tcp dst-port=443 in-interface=ether1-WAN \
    action=dst-nat to-addresses=192.168.88.10 to-ports=443 comment="HTTPS to web"

Деталі: MikroTik Firewall.


WireGuard (RouterOS 7)

WireGuard вбудовано з RouterOS 7.1+. На 6.x — недоступний, тільки IPsec/OpenVPN/L2TP.

# Створити WG інтерфейс
/interface wireguard add name=wg-mesh listen-port=51820 comment="UMTC mesh"

# Переглянути публічний ключ (згенерується автоматично)
/interface wireguard print detail

# Додати peer (сервер до якого підключаємось)
/interface wireguard peers
add interface=wg-mesh \
    public-key="SERVER_PUBLIC_KEY_BASE64=" \
    endpoint-address=203.0.113.1 endpoint-port=51820 \
    allowed-address=10.10.10.0/24 \
    persistent-keepalive=25s \
    comment="central hub"

# Призначити IP на WG інтерфейс
/ip address add address=10.10.10.5/24 interface=wg-mesh

# Відкрити порт у firewall
/ip firewall filter add chain=input action=accept protocol=udp dst-port=51820 \
  place-before=[find comment="Drop everything else"]

# Перевірка
/interface wireguard peers print stats

Покроковий гайд: MikroTik: підключення до WireGuard.


BGP — RouterOS 6 vs 7

⚠️ Критична різниця
RouterOS 7 повністю переписав BGP. Синтаксис **несумісний** з RouterOS 6.

RouterOS 6 (legacy)

/routing bgp instance
add name=default as=65001 router-id=10.10.10.1

/routing bgp peer
add name=peer1 remote-address=10.10.10.2 remote-as=65002 instance=default

/routing bgp network
add network=10.20.0.0/24 synchronize=no

RouterOS 7 (новий синтаксис)

# Підключення до peer
/routing/bgp/connection
add name=peer1 remote.address=10.10.10.2 remote.as=65002 \
    local.role=ebgp local.address=10.10.10.1 \
    router-id=10.10.10.1 \
    .originate-default=never

# Анонсувати мережі через routing filter + static
/routing/filter/rule
add chain=bgp-out select=[find match-chain=bgp-out] \
    rule="if (dst in 10.20.0.0/24) { accept } else { accept }"

# Перевірка
/routing/bgp/session print
/routing/bgp/connection print
/ip route print where bgp=yes

Повний гайд: BGP на MikroTik — покрокове налаштування.


DHCP сервер

# Створити DHCP pool
/ip pool add name=lan-pool ranges=192.168.88.100-192.168.88.200

# DHCP сервер
/ip dhcp-server add name=lan-dhcp interface=bridge-lan address-pool=lan-pool lease-time=1d disabled=no
/ip dhcp-server network add address=192.168.88.0/24 gateway=192.168.88.1 dns-server=192.168.88.1,1.1.1.1

# Статичний lease (MAC-прив'язка)
/ip dhcp-server lease add mac-address=AA:BB:CC:11:22:33 address=192.168.88.50 server=lan-dhcp

# Активні lease-и
/ip dhcp-server lease print

DNS

# Кешуючий DNS на роутері
/ip dns set servers=1.1.1.1,8.8.8.8 allow-remote-requests=yes

# Статичний запис
/ip dns static add name=wiki.umtc.local address=10.10.10.10
/ip dns static add regexp=".*\\.umtc\\.local" address=10.10.10.1

# Кеш
/ip dns cache print
/ip dns cache flush

Backup та restore

# Binary backup (прив'язаний до моделі + версії RouterOS!)
/system backup save name=backup-2026-04
/system backup load name=backup-2026-04

# Export/import — текстовий, переноситься між моделями
/export file=full-config
/export file=full-config terse hide-sensitive
# Відновити: у Files -> правим кліком run script, або:
/import file-name=full-config.rsc

# Експорт лише одного меню
/ip firewall export file=firewall-backup

Покроковий гайд: MikroTik: backup та restore.


Користувачі

# Список
/user print

# Створити нового admin
/user add name=admin2 password=StrongPass group=full

# Змінити пароль
/user set admin password=NewStrongPassword

# Групи
/user group print
# full — все
# write — без user management
# read — тільки перегляд

# SSH ключі (без пароля)
/user ssh-keys import user=admin public-key-file=admin_id_ed25519.pub

# Активні сесії
/user active print

# Logout користувача
/user active remove [find name=admin]

System / діагностика

# Ресурси
/system resource print           # CPU, RAM, uptime, версія
/system health print              # Температура, вентилятори, voltage
/system identity print            # Hostname

# Час / NTP
/system clock print
/system clock set time-zone-name=Europe/Kyiv
/system ntp client set enabled=yes servers=time.google.com,time.cloudflare.com

# Reboot / shutdown
/system reboot
/system shutdown

# Logi
/log print
/log print where topics~"firewall"
/log print where topics~"wireguard"

# Tools
/ping 8.8.8.8 count=5
/tool traceroute 8.8.8.8
/tool torch interface=ether1-WAN   # top talkers в реальному часі
/tool bandwidth-test address=10.10.10.1 duration=10s direction=both

# Packet sniffer
/tool sniffer
set filter-port=51820 streaming-enabled=yes streaming-server=10.10.10.5
start
# зачекати, потім
stop

Troubleshooting

Втратив доступ після зміни IP / firewall
- Симптом: після зміни /ip address або додавання firewall правила WinBox/SSH не підключається.
- Причина: правило заблокувало власну підмережу, або змінився IP на інтерфейсі через який підключаєшся.
- Рішення: WinBox підключається по MAC — Neighbors → вибрати роутер → зайти без IP. Якщо і MAC не бачить — Netinstall або reset кнопкою (тримати при увімкненні). Превентивно — /system scheduler add name=revert on-event="/system reset-configuration no-defaults=yes" start-time=startup interval=5m перед ризикованою зміною, та /system scheduler remove revert після успішного тестування.

export дає величезний файл з замовчуваннями
- Симптом: /export генерує тисячі рядків, важко знайти реальні зміни.
- Причина: без прапорців виводяться всі параметри включно з default значеннями.
- Рішення: /export terse hide-sensitive — тільки ненульові/non-default + маскує паролі. Для diff між бекапами — обидва робити в terse форматі.

Binary backup не завантажується на інший роутер
- Симптом: /system backup load повертає "incompatible backup" або застосувався, але інтерфейсів не видно.
- Причина: binary backup прив'язаний до конкретної моделі та версії RouterOS. hAP ac³ backup не піде на RB4011.
- Рішення: використовувати .rsc export/import для перенесення між моделями: /export file=cfg → скачати → на іншому роутері /import file-name=cfg.rsc. Інтерфейси можуть мати інші назви — перейменувати /interface set [find default-name=ether1] name=ether1-WAN перед import.

Firewall правило не спрацьовує — counter нулі
- Симптом: /ip firewall filter print stats показує 0 пакетів на очікуваному правилі.
- Причина: вище по списку є правило accept або drop яке перехоплює пакет; або chain неправильний (input vs forward).
- Рішення: print where action=drop — перевірити що drop стоїть ОСТАННІМ; print detail — побачити chain кожного правила. Для транзитного трафіку (LAN → WAN) — ланцюг forward, не input. Для трафіку ДО роутера — input.


Пов'язані статті

Шлях: reference/mikrotik-cli-cheatsheet.md

UMTC Wiki © 2026 | Ukrainian Military Tactical Communications