MikroTik с нуля 02. Командная строка RouterOS: шпаргалка
Note
Команды сверены с официальной документацией RouterOS 7 (версия руководства 7.26). Перед работой на боевом оборудовании проверьте их на тестовом стенде или сделайте резервную копию.
В первой статье серии вы подключились к роутеру и закрыли самые очевидные дыры. Дальше почти всё будет делаться командами: так быстрее, команды можно скопировать из статьи, сохранить в заметки и выполнить на другом роутере. Графический интерфейс (WinBox, WebFig) никуда не девается, но консоль даёт то, чего в нём нет или что неудобно: полный экспорт настроек одним файлом, точный поиск нужной строки, откат неудачной правки, копирование блока команд.
Эта статья — справочник. Её не нужно запоминать: прочитайте один раз, выполните учебные примеры и возвращайтесь за нужной командой. В конце есть таблица «задача — команда» и список горячих клавиш.
Tip
На первом чтении достаточно разделов про Tab и «?», print, Safe Mode и export. Остальное (флаги, find, undo, журнал, переменные) откроете по мере надобности.
Что получится: вы научитесь ориентироваться в меню RouterOS, читать вывод print, безопасно менять и удалять элементы конфигурации, откатывать ошибочные действия, включать Safe Mode перед рискованными правками, сохранять конфигурацию в файл, смотреть журнал и пользоваться парой простых переменных.
Что понадобится
- Роутер MikroTik с RouterOS 7 в заводской конфигурации или в состоянии после первой статьи: адрес
192.168.88.1/24на мостуbridge, портether1к провайдеру, портыether2–ether5в локальной сети. - Компьютер в локальной сети, с которого можно открыть WinBox или SSH-клиент.
- Учётная запись с полными правами (группа
full). - Учебные примеры не меняют работу сети: в них используется отключённое правило, которое ничего не делает (остаются лишь файлы экспорта, которые вы удалите сами). Исключение — команды перезагрузки и выключения из таблицы, их выполняйте только осознанно.
Как открыть консоль
У консоли несколько входов, и везде она одна и та же:
- WinBox: в левом меню откройте пункт New Terminal. Самый удобный вариант для новичка, потому что рядом всегда есть привычные окна.
- WebFig (веб-интерфейс роутера): терминал находится в правом верхнем углу страницы.
- SSH: порт TCP/22, служба включена по умолчанию. С компьютера под Windows 10/11, Linux или macOS подойдёт обычный
ssh. - Последовательный (serial) порт: запасной путь, когда сеть недоступна совсем. Параметры по умолчанию: 115200 бит/с, 8 бит данных, 1 стоп-бит, без контроля чётности, аппаратное управление потоком RTS/CTS (сигнальные линии, по которым устройства договариваются о передаче; у x86-систем скорость по умолчанию 9600). Нужен нуль-модемный кабель и программа-терминал.
Пример входа по SSH (имя пользователя подставьте своё):
ssh <ПОЛЬЗОВАТЕЛЬ>@192.168.88.1
Если терминальная программа показывает «мусорные» символы вместо цветов, добавьте к имени пользователя суффикс после знака +: например, <ПОЛЬЗОВАТЕЛЬ>+c отключает цвета консоли, а +t отключает автоопределение возможностей терминала. Параметры можно складывать: <ПОЛЬЗОВАТЕЛЬ>+ct80w отключает цвета и автоопределение и задаёт ширину 80 символов.
Telnet и MAC-Telnet (доступ по MAC-адресу, а не по IP) для повседневной работы не нужны: в руководстве по защите роутера их рекомендуют отключать в рабочей сети.
Дерево меню: где что лежит
Настройки RouterOS собраны в иерархию меню: /ip — всё про IP, /ip address — адреса, /ip firewall filter — правила фильтрации, /interface — интерфейсы, /system — системные настройки. Приглашение консоли показывает, где вы сейчас находитесь: имя пользователя, имя роутера (/system identity) и текущий путь, например [admin@MikroTik] /ip/address>.
Слова пути можно разделять пробелом или косой чертой: /ip address print и /ip/address/print — одно и то же. В современных примерах в интернете чаще встречается вторая форма; в этой серии используется первая, потому что она читается как обычная фраза.
Три правила навигации:
- Команда
/ip addressбез продолжения входит в меню. Дальше можно писать короткие команды:print,add,remove. - Одиночная косая черта
/возвращает на верхний уровень. - Две точки
..поднимают на один уровень вверх.
[admin@MikroTik] > /ip address
[admin@MikroTik] /ip/address> print
[admin@MikroTik] /ip/address> ..
[admin@MikroTik] /ip> /
[admin@MikroTik] >
Из любого места можно выполнить команду из другого меню, не уходя из текущего: начните её с / (полный путь) или с .. (относительный).
[admin@MikroTik] /ip/address> /interface print
Для копирования из статей удобнее всего полный путь в каждой строке: такую строку можно вставить в любой момент, и неважно, в каком меню вы находитесь. Все блоки кода в этой серии написаны именно так.
Команды, которые начинаются с двоеточия (:put, :log, :local), — это глобальные команды языка сценариев. Двоеточие обязательно, иначе консоль примет слово за имя переменной.
Tab и «?»: как не печатать лишнего
Клавиша Tab дополняет слово. Одно нажатие дописывает команду, если вариант один (/inte превращается в /interface/). Если вариантов несколько, но у них общее начало, слово дополняется до общей части. Второе нажатие Tab показывает все возможные продолжения. Работает это не только для команд, но и для имён параметров, и для значений из ограниченного набора (протоколы, имена элементов). Числа и IP-адреса дополнить нельзя.
Консоль принимает и сокращения: достаточно набрать столько букв, чтобы название было однозначным. Если точного совпадения нет, она ищет слова, в которых набранные буквы идут в том же порядке (например, mt в меню /interface превращается в monitor-traffic). Для скриптов сокращения лучше не использовать, потому что они трудно читаются, но в интерактивной работе экономят много времени.
Справка:
- Клавиша F1 показывает, что можно ввести в этой позиции, с пояснениями. Это развёрнутая версия «двойного Tab».
- Знак
?(нажмите его без Enter) выводит список команд и подменю текущего уровня с краткими описаниями. Если сам символ «?» нужен внутри значения, пишите\?.
Попробуйте: введите /ip firewall filter и нажмите F1, затем введите add (с пробелом) и нажмите Tab дважды — консоль покажет все параметры, которые можно задать.
Смотрим конфигурацию: print
Команда print есть практически в каждом меню и показывает его содержимое. Начните с того, что вы уже видели в первой статье:
/ip address print
/interface print
/ip firewall filter print
Как проверить. В выводе /ip address print найдите строку с адресом 192.168.88.1/24 на интерфейсе bridge. В выводе /interface print — строки ether1–ether5 и bridge.
Если элементов много, вывод разбивается на страницы. Чтобы получить всё сразу, добавьте without-paging. Остальные варианты print собраны в таблице:
| Вариант | Что делает |
|---|---|
print |
Таблица с самыми нужными столбцами |
print detail |
Все параметры каждого элемента в виде ключ=значение; вывод длинный, зато видно всё |
print terse |
Компактный машиночитаемый вид, удобен для поиска текстовыми утилитами |
print brief |
Краткая таблица |
print count-only |
Только число элементов |
print where ... |
Фильтр по условию |
print from=<имя> |
Показать только один элемент (например, /user print from=admin) |
print as-value |
Результат в виде массива для скриптов; смотреть через :put [...] |
print follow |
Показать всё и дальше выводить новые записи, пока не нажмёте Ctrl+C (обычно для журнала) |
print interval=2 |
Перерисовывать вывод каждые 2 секунды |
print order-by=<свойство> |
Сортировка; перед именем знак - даёт порядок по убыванию |
Примеры фильтров:
/ip address print where interface=bridge
/interface print where running
/interface print where name~"ether"
/ip firewall filter print where chain=input
/ip firewall filter print where disabled
/ip route print where static
В where работают сравнения =, !=, <, >, логические and и or, отрицание ! перед именем флага и оператор ~ — совпадение с регулярным выражением (шаблоном поиска; в примере выше — все интерфейсы, в названии которых есть ether). Имена флагов для фильтра (running, disabled, static) можно взять из строки Flags: вверху вывода.
Флаги в выводе print
В самом начале вывода консоль печатает расшифровку флагов, а в строках таблицы флаги стоят слева от параметров. Всегда читайте эту строку Flags:: одна и та же буква в разных меню значит разное.
| Флаг | Где встречается | Значение |
|---|---|---|
X |
почти везде | элемент отключён (disabled) |
D |
почти везде | динамический: создан самой системой (например, получен по DHCP, то есть выдан автоматически провайдером или сервером), а не вручную |
I |
/ip address, /ip firewall filter |
invalid — недействителен (например, адрес на несуществующем интерфейсе) |
I |
/ip route |
inactive — неактивен |
R |
/interface |
running — интерфейс работает, есть связь |
S |
/interface |
slave — интерфейс входит в состав другого (например, порт моста) |
I |
/interface |
inactive — неактивен |
P |
/interface |
passthrough (служебный признак, не связанный с состоянием «включён/работает»; на практике нужен редко) |
A |
/ip route |
active — маршрут действует |
c, s, d |
/ip route |
маршрут connect (подключённая сеть), static (статический), dhcp (получен по DHCP) |
Так, X в /ip firewall filter print — это правило, которое сейчас не работает. А в /ip route print без флага A маршрут не используется.
Номера и имена элементов
Элементы списков (адреса, правила, маршруты) нумеруются в выводе print: 0, 1, 2... Для команд, меняющих элемент, нужно сказать, какой именно. Есть два способа:
- По имени — там, где у элементов есть имена (интерфейсы, пользователи, списки):
/interface set ether5 comment=printer. - По номеру — там, где имён нет (адреса, правила firewall):
/ip address set 0 comment="LAN gateway".
Номера присваивает команда print, и они действуют только в вашей сессии до следующего print. Если список успели изменить в другой сессии (или в WinBox) либо вы выполнили print с другим фильтром или сортировкой, тот же номер укажет уже на другой элемент. У другого администратора те же элементы могут иметь другие номера. Поэтому:
Warning
Не доверяйте номерам из старого вывода. Перед любым изменением выполните print заново. В повторяемых командах и скриптах используйте не номера, а поиск по условию — find, о нём ниже.
Номера можно перечислять через запятую, и команда затронет сразу все указанные элементы. Например, /ip firewall filter disable 1,2 отключит два правила (пример иллюстративный, на рабочем роутере сначала посмотрите print). Именно поэтому нужно точно понимать, на что вы указываете.
Жизненный цикл правила: add, set, enable, disable, move, comment, remove
Все общие команды одинаковы почти во всех меню. Разберём их на учебном правиле: правило с действием passthrough ничего не блокирует и не разрешает, только считает пакеты, а параметр disabled=yes делает его ещё и выключенным. Так что реальный трафик не пострадает.
Добавляем правило (add) с комментарием, по которому мы будем его находить:
/ip firewall filter add chain=forward action=passthrough disabled=yes comment="test-rule"
Команда add возвращает внутренний идентификатор созданного элемента (вида *5); в скриптах его можно сохранить в переменную. Результат проверяйте командой print:
/ip firewall filter print where comment="test-rule"
Как проверить. В строке правила слева есть флаг X: правило отключено.
Включаем и снова отключаем:
/ip firewall filter enable [find where comment="test-rule"]
/ip firewall filter disable [find where comment="test-rule"]
Меняем параметр (set) и убираем его (! перед именем сбрасывает значение):
/ip firewall filter set [find where comment="test-rule"] protocol=tcp
/ip firewall filter set [find where comment="test-rule"] !protocol
Правило добавляется в конец списка. Порядок правил в firewall важен (подробно — в статье про firewall для начинающих), поэтому нужно уметь перемещать правила командой move. Первый аргумент — что двигаем, второй — перед каким элементом поставить (номер или результат find). Номер берётся из последнего print, а предыдущая команда была print с фильтром, поэтому сначала выведите полный список без фильтра:
/ip firewall filter print
/ip firewall filter move [find where comment="test-rule"] 0
Номер 0 здесь — самый первый элемент списка из этого свежего вывода. Если второй аргумент не указать, элемент уйдёт в конец.
При создании правила сразу выбрать место можно параметром place-before, а скопировать существующий элемент — параметром copy-from.
Комментарий можно поменять отдельной командой comment (идентификатор и новый текст):
/ip firewall filter comment [find where comment="test-rule"] "test-rule-renamed"
После этого условие comment="test-rule" перестанет находить правило, так что дальше ищите его по comment~"test-rule" (регулярное выражение «содержит»). Удаляем учебное правило:
/ip firewall filter remove [find where comment~"test-rule"]
Как проверить. /ip firewall filter print where comment~"test-rule" ничего не выводит.
Caution
remove [find where ...] удаляет все найденные элементы. Привычка, которая спасает: сначала выполните тот же фильтр с print, убедитесь, что в выводе именно то, что собираетесь удалить, и только затем замените print where ... на remove [find where ...].
find и подстановка в квадратных скобках
find возвращает не текст, а внутренние идентификаторы (*1, *2...) элементов, подходящих под условие. Идентификатор не меняется при сдвиге номеров, поэтому на find можно положиться в скриптах. Условие пишется так же, как в print where; слово where можно опустить или оставить.
Квадратные скобки [ ... ] означают «выполнить команду внутри и подставить результат». Посмотрите, что возвращает find:
:put [/ip firewall filter find where chain=forward]
Как проверить. На экране появится список идентификаторов вида *1;*2;*3 — по одному на каждое правило цепочки forward. Когда вы пишете remove [find where ...], команда remove получает именно такой список и удаляет перечисленные элементы. Конструкцию [find where ...] вы будете встречать в большинстве примеров по RouterOS.
История изменений: undo и redo
Всё, что вы изменили (в консоли или в WinBox), записывается в историю /system history. Её можно посмотреть и откатить последнее действие.
Warning
/undo отменяет самое последнее действие в истории, каким бы оно ни было, в том числе реальную правку, сделанную вами или другим администратором. Поэтому вслепую его не выполняйте: сначала посмотрите /system history print. Для тренировки используйте учебное правило, как ниже.
Добавляем отключённое учебное правило и смотрим историю:
/ip firewall filter add chain=forward action=passthrough disabled=yes comment="undo-test"
/system history print
/system history print detail
Теперь отменяем добавление:
/undo
/ip firewall filter print where comment="undo-test"
Как проверить. После /undo второй команде нечего показать: правило пропало. Возвращаем его и убеждаемся:
/redo
/ip firewall filter print where comment="undo-test"
Правило снова в списке. Убираем за собой:
/ip firewall filter remove [find where comment="undo-test"]
В /system history print флаг U означает, что действие можно отменить, R — вернуть, F — «плавающая» отмена (так помечаются действия, сделанные в Safe Mode). В режиме print detail видно точные команды, которые выполнятся при отмене и при возврате, даже если изменение делалось мышью в WinBox.
В WinBox те же возможности доступны кнопками Undo и Redo на верхней панели. История хранит не больше 100 последних действий, и откатывается она по одному шагу. Это не замена резервной копии: история помогает исправить недавнюю ошибку, но не хранит конфигурацию как файл.
Safe Mode: страховка от потери доступа
Некоторые правки отрезают вас от роутера прямо в момент выполнения: смена адреса, на котором вы подключены, запрещающее правило firewall, перенастройка моста и VLAN (виртуальных сетей на одном физическом порту). Команду «отмена» вы уже не отправите, потому что связи нет. Safe Mode решает именно эту проблему: пока режим включён, роутер помнит ваши изменения и откатывает их сам, если сессия оборвалась.
Как включить:
- в консоли — клавиша F4 или Ctrl+X: появляется сообщение
Safe Mode taken, а в приглашении — пометка<SAFE>; - в WinBox — кнопка Safe Mode на верхней панели.
Что происходит дальше:
- Вы вносите изменения. Они применяются сразу, как обычно.
- Если связь оборвалась (кабель, неудачное правило firewall), роутер по истечении тайм-аута TCP (протокола, на котором работает SSH-сессия) отменяет все изменения, сделанные в Safe Mode. Документация называет тайм-аут 9 минут: придётся подождать. Закрытие окна терминала в документации не описано, поэтому на него не полагайтесь: для намеренной отмены используйте Ctrl+D.
- Если всё в порядке, нажмите Ctrl+X (или F4) ещё раз: одно нажатие, пока режим включён, выключает его и оставляет изменения. Если нужно сбросить накопленный список действий и продолжить в Safe Mode, нажмите Ctrl+X два раза подряд (режим выключится и сразу включится заново).
- Чтобы намеренно отменить всё сделанное в Safe Mode, нажмите Ctrl+D: все изменения откатываются, а сеанс консоли закрывается. Команда
/quit, наоборот, изменения не отменяет.
Увидеть, что откатится, можно в истории: такие действия помечены флагом F.
Warning
Safe Mode — не всемогущая кнопка. Помните о границах:
- Откат происходит только при обрыве сессии (или выходе по Ctrl+D). Если вы сломали, например, NAT (подмену адресов при выходе в интернет), но SSH-сессия жива, роутер ничего не откатит: изменения останутся, а интернета не будет. Проверяйте результат и сами.
- Откатываются и изменения, сделанные из других сессий, пока Safe Mode включён. Не оставляйте режим включённым надолго.
- В истории помещается около 100 действий. Если их больше, режим выключается сам и ничего не откатывается. Вносите изменения небольшими шагами.
- Safe Mode не действует для команд, которые перезагружают роутер: сброс настроек и восстановление из бэкапа не откатятся.
- Если другой пользователь попробует включить Safe Mode, он увидит вопрос
Hijacking Safe Mode from someone - unroll/release/don't take it [u/r/d]:uоткатит ваши изменения и отдаст режим ему,rоставит изменения и отдаст режим,dничего не меняет.
Учебный прогон. Нажмите Ctrl+X и убедитесь, что приглашение получило пометку <SAFE>. Выполните:
/ip firewall filter add chain=forward action=passthrough disabled=yes comment="safe-test"
/system history print
В истории появилась запись с флагом F. Теперь нажмите Ctrl+D: сессия закроется. Откройте консоль заново и проверьте:
/ip firewall filter print where comment="safe-test"
Как проверить. Вывод пустой: добавленное правило откатилось. В следующих статьях серии (адреса, firewall, VLAN) перед каждым опасным шагом мы будем напоминать: сначала Safe Mode, затем правка.
Экспорт и импорт: конфигурация в текстовом файле
export печатает конфигурацию в виде команд, которые можно прочитать, сравнить, отправить коллеге и выполнить на другом роутере. Выводятся только параметры и элементы, отличающиеся от значений по умолчанию самой RouterOS (режим compact, он включён по умолчанию, отдельно указывать его не нужно). Всё, что создала заводская конфигурация или вы сами (мост, адреса, правила), в экспорте будет. Команда работает в любом меню, но выводит только текущее меню и подменю.
/export
/ip firewall filter export
/export file=before-changes
/export terse file=before-changes-terse
/export verbose file=before-changes-verbose
- Без
file=текст печатается на экран, сfile=— сохраняется в файл с расширением.rsc. terse— каждая команда в одну строку с полным путём (удобно искать и сравнивать).verbose— полный вывод с параметрами по умолчанию.show-sensitive— выводить секреты (пароли, ключи). По умолчанию они скрыты; в старых инструкциях для RouterOS 6 встречается параметрhide-sensitive, но в руководстве 7.26 его нет.
Warning
Файл, выгруженный с show-sensitive, содержит секреты (ключи WireGuard, пароли Wi-Fi и PPP): храните его как пароль от роутера, не отправляйте по почте и не публикуйте. Для этого пользователю нужна политика sensitive; без неё секреты в файл всё равно не попадут. Файл без show-sensitive безопасен для пересылки, но после импорта такие значения придётся ввести заново.
Что не попадает в экспорт: пароли пользователей роутера, установленные сертификаты и SSH-ключи. Для полной копии есть бинарный бэкап (/system backup save): чем он отличается от экспорта, как его шифровать паролем, автоматизировать и восстанавливать, описано в статьях MikroTik с нуля 01. Первое подключение и первичная защита и MikroTik с нуля 10. Автоматический бэкап и обновление по расписанию. Здесь важно одно: бэкап без параметра password не шифруется, а в нём есть секреты.
Файлы лежат в /file:
/file print
Как проверить. В списке есть before-changes.rsc. Скачать файл на компьютер можно в WinBox: пункт Files, выделить файл и нажать Download....
Important
Если в списке файлов есть каталог flash, всё, что лежит вне него, находится на RAM-диске (во временной оперативной памяти) и пропадает при перезагрузке. Сохраняйте нужное в flash (например, file=flash/before-changes) или сразу скачивайте на компьютер. Подробнее о хранении копий — в статье 10.
Импорт выполняет .rsc-файл:
/import file-name=before-changes.rsc verbose=yes dry-run
Это пробный прогон: файл проверяется построчно, но ничего не меняется (флаг dry-run работает только вместе с verbose=yes). Если в файле ошибка, verbose=yes покажет, на какой строке. Он безопасен на любом роутере, в том числе на том, с которого сделан экспорт.
Настоящий импорт выглядит так:
/import file-name=before-changes.rsc
Warning
Не выполняйте настоящий /import на том же роутере, с которого сделан экспорт: все эти настройки там уже есть, и команда либо упадёт на повторных add, либо продублирует правила firewall и NAT. Команда нужна для чистого или другого роутера, и перед ней всегда делайте пробный прогон с dry-run.
Импорт — это «выполнить все команды из файла», а не «вернуть состояние, как было». Документация советует для замены конфигурации сначала сделать сброс (/system reset-configuration с параметром no-defaults=yes) — но это стирает всё, поэтому выполняйте его только осознанно и с запасной копией. Для переноса на другую модель отдельно проверьте имена интерфейсов в файле: если их количество и названия не совпадают, импорт даст ошибки.
Удалить ненужный файл:
/file remove [find where name="before-changes-terse.rsc"]
Журнал: /log print
Роутер записывает события в журнал: входы в систему, изменения конфигурации, переходы интерфейсов в up/down, ошибки DHCP. По умолчанию журнал хранится в памяти (около 1000 последних записей) и исчезает при перезагрузке.
/log print
/log print where topics~"firewall"
/log print where message~"login"
/log print follow
/log print follow-only
/log print file=log-before-upgrade
where topics~"..."иwhere message~"..."фильтруют по темам и тексту (это регулярное выражение).followпечатает существующие записи и дальше показывает новые;follow-only— только новые. Остановить — Ctrl+C.file=сохраняет вывод в текстовый файл (здесь —log-before-upgrade.txt).
Полезная привычка перед рискованной правкой: оставить в журнале метку, чтобы потом легко найти момент.
/log info "start: changing firewall"
Как проверить. /log print where message~"start: changing" покажет вашу запись. Подробнее про журнал, отправку журнала на syslog-сервер (сервер для хранения журналов) и диагностику — в статье «Диагностика и мониторинг».
Перезагрузка и выключение
/system reboot
/system shutdown
Консоль может запросить подтверждение. Перед перезагрузкой вспомните: журнал в памяти и файлы вне flash будут потеряны, а все активные соединения оборвутся. Если вы удалённо подключены к роутеру, сначала убедитесь, что сохранили нужное.
Warning
/system shutdown выключает роутер полностью. Если вы работаете удалённо, включить его обратно придётся физически (питание или кнопка), поэтому выключать устройство с чужой площадки без человека на месте нельзя.
:put и переменные: минимум для начала
Полноценный язык сценариев нужен позже, когда будем настраивать автоматизацию (статья «Автоматический бэкап и обновление по расписанию»). Сейчас понадобится только :put — вывод значения на экран — и несколько приёмов.
Версия RouterOS:
:put [/system resource get version]
Адрес роутера на мосту (значение читается командой get с подстановкой find):
:put [/ip address get [find where interface=bridge] address]
Вставка значения в строку через $[ ... ] (подсчёт правил firewall; в строках лучше обходиться латиницей и цифрами, русские буквы в части терминалов отображаются некорректно):
:put "Filter rules: $[:len [/ip firewall filter find]]"
Локальная переменная. Каждая введённая строка в консоли — отдельная область видимости (переменная живёт только внутри неё), так что локальную переменную нужно объявить и использовать в одной строке или внутри фигурных скобок:
{ :local addr1 [/ip address get [find where interface=bridge] address]; :put "LAN address: $addr1" }
Как проверить. Первая команда печатает номер версии, вторая и четвёртая — 192.168.88.1/24, третья — число правил в forward, input и других цепочках.
Две ловушки, о которых полезно знать заранее. Во-первых, имена переменных не должны совпадать с названиями параметров RouterOS (type, name, interface), поэтому в примере переменная называется addr1. Во-вторых, не объявляйте :local в одной строке, а используйте переменную в следующей: она окажется неопределённой.
Горячие клавиши
| Клавиша | Действие |
|---|---|
| Tab (нажать дважды — список вариантов) | Дополнить слово |
| F1 | Контекстная справка |
| F3 или Ctrl+R | Поиск по истории команд и меню |
| F4 или Ctrl+X | Включить или выключить Safe Mode |
| F5 или Ctrl+L | Перерисовать экран |
| F7 | Режим HotLock (автодополнение по мере ввода) |
| F8 | Показать многострочную команду целиком |
| Стрелка вверх / вниз | Предыдущая / следующая команда из истории |
| Ctrl+C | Прервать текущую команду |
| Ctrl+D | Закрыть сессию (на пустой строке); в Safe Mode — ещё и откатить изменения |
| Ctrl+A / Home | В начало строки |
| Ctrl+E / End | В конец строки |
| Ctrl+K | Удалить до конца строки |
| Ctrl+U | Удалить до начала строки |
# в начале строки |
Сообщение другим вошедшим администраторам (встроенный чат) |
Команды, в которых вы задавали пароль, в историю не попадают.
Шпаргалка: задача — команда
| Задача | Команда |
|---|---|
| Посмотреть адреса | /ip address print |
| Посмотреть интерфейсы | /interface print |
| Посмотреть правила firewall | /ip firewall filter print |
| Найти правила по тексту комментария | /ip firewall filter print where comment~"drop" |
| Отключить правило | /ip firewall filter disable [find where comment="test-rule"] |
| Включить правило | /ip firewall filter enable [find where comment="test-rule"] |
| Удалить правило | /ip firewall filter remove [find where comment="test-rule"] |
Переместить правило в начало (после свежего /ip firewall filter print) |
/ip firewall filter move [find where comment="test-rule"] 0 |
| Изменить параметр | /ip firewall filter set [find where comment="test-rule"] protocol=tcp |
| Снять параметр | /ip firewall filter set [find where comment="test-rule"] !protocol |
| Поставить комментарий | /ip firewall filter comment [find where comment="test-rule"] "new text" |
| Включить Safe Mode | Ctrl+X или F4 |
| Откатить последнее действие | /undo |
| Вернуть откатанное | /redo |
| Посмотреть историю изменений | /system history print |
| Сохранить конфигурацию в файл | /export file=before-changes |
| Проверить файл настроек без применения | /import file-name=before-changes.rsc verbose=yes dry-run |
| Выполнить файл настроек (на чистый роутер, сначала dry-run) | /import file-name=before-changes.rsc |
| Список файлов | /file print |
| Последние записи журнала | /log print |
| Следить за журналом | /log print follow-only |
| Версия и аптайм | /system resource print |
| Бинарная резервная копия | /system backup save name=before-changes password="<ПАРОЛЬ>" |
| Перезагрузить | /system reboot |
| Выключить | /system shutdown |
| Проверить связь | /ping 192.0.2.1 count=3 |
Типичные ошибки
- Использовать старые номера элементов. Номер взят из старого вывода или из другой сессии, и команда
remove 3удалит уже не то правило. Выполняйтеprintзаново или ищите элемент черезfind where. - Удалять по слишком общему условию.
remove [find where chain=forward]удалит все правила цепочки. Сначалаprintс тем же условием. - Включить Safe Mode и забыть про него. Пока режим включён, при обрыве сессии откатятся и чужие, и ваши более ранние изменения. После проверки выходите из режима (Ctrl+X). И наоборот: Safe Mode не спасёт от потери интернета, пока сессия жива.
- Принять экспорт за резервную копию. В
.rscнет паролей пользователей, сертификатов и SSH-ключей, а импорт не возвращает состояние «как было». Для полной копии нужен бэкап (статья 10), для переносимой записи — экспорт. - Сохранить файл в RAM и перезагрузиться. Если на роутере есть каталог
flash, нужные файлы кладите туда или сразу скачивайте на компьютер. - Копировать команды из руководств для RouterOS 6. Синтаксис в основном совпадает, но часть параметров изменилась (например, настройка Wi-Fi устроена иначе, о ней в статье «Wi-Fi на RouterOS 7»). Если команда выдаёт ошибку, сверьтесь со справкой F1 или Tab.
Что дальше
- MikroTik с нуля 03. Настройка роутера: WAN, LAN, DHCP и NAT — применим консоль на практике: подключим провайдера и раздадим адреса.
- MikroTik с нуля 04. Firewall для начинающих — правила, порядок, цепочки: там Safe Mode пригодится первым.
- MikroTik с нуля 08. Диагностика и мониторинг — журнал, ping, traceroute и наблюдение за состоянием роутера.
- MikroTik с нуля 10. Автоматический бэкап и обновление по расписанию — сценарии, расписание и резервные копии.