Skip to main content

Консоль

Обзор

Консоль используется для доступа к конфигурации и управлению MikroTik Router с помощью текстовых терминалов: удалённо через последовательный порт, telnet, SSH, или через консольный экран в Winbox, либо напрямую с монитором и клавиатурой. Консоль также применяется для написания скриптов. В этом руководстве описаны общие принципы работы с консолью. Для более продвинутых команд и создания скриптов смотрите Руководство по скриптам.

Иерархия

Консоль позволяет настраивать роутер с помощью текстовых команд. Из-за большого количества команд они разделены на группы, организованные в виде иерархических уровней меню. Название уровня меню отражает доступную информацию, например, /ip hotspot.

Пример

Можно выполнить команду

[admin@MikroTik] > ip route print
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS    PREF-SRC G GATEWAY    DIS INTERFACE
0 A S 0.0.0.0/0    r        10.0.3.1    1 bridge1
1 ADC 1.0.1.0/24  1.0.1.1              0 bridge1
2 ADC 1.0.2.0/24  1.0.2.1              0 ether3
3 ADC 10.0.3.0/24 10.0.3.144            0 bridge1
4 ADC 10.10.10.0/2410.10.10.1           0 wlan1
[admin@MikroTik] >

Вместо того, чтобы писать /ip route перед каждой командой, можно один раз ввести этот путь и работать в этом разделе меню:

[admin@MikroTik] > ip route
[admin@MikroTik] ip route> print
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static ...
# DST-ADDRESS ...

Подсказка изменяется, показывая текущий уровень в меню. Чтобы перейти в корневой уровень, введите /:

[admin@MikroTik] > ip route
[admin@MikroTik] ip route> /
[admin@MikroTik] >

Чтобы подняться на уровень выше, введите ..:

[admin@MikroTik] ip route> ..
[admin@MikroTik] ip>

Можно также использовать / и .. для выполнения команд из других уровней без изменения текущего уровня:

[admin@MikroTik] ip route> /ping 10.0.0.1
10.0.0.1 ping timeout
2 packets transmitted, 0 packets received, 100% packet loss
[admin@MikroTik] ip firewall nat> .. service-port print
Flags: X - disabled, I - invalid
# NAME        PORTS
0 ftp         21
1 tftp        69
2 irc         6667
3 h323
4 sip
5 pptp
[admin@MikroTik] ip firewall nat>

Имена и номера элементов

Многие уровни команд работают с массивами элементов: интерфейсы, маршруты, пользователи и т. п. Эти списки показываются с номерами элементов, флагами и параметрами.

Для изменения параметров элемента используйте команду set с указанием имени или номера элемента.

Имена элементов

Некоторые списки имеют элементы с уникальными именами, например, интерфейсы или пользователи. Там можно использовать имена вместо номеров.

Номера элементов

Номера элементов назначаются командой print и не являются постоянными — два последовательных вызова могут вывести разный порядок. Эти номера запоминаются и остаются валидными до следующей команды print или выхода из консоли. Номера назначаются для каждого списка отдельно.

Можно указать несколько номеров для некоторых команд.

[admin@MikroTik] > interface print
Flags: X - disabled, D - dynamic, R - running
# NAME    TYPE    MTU
0 R ether1  ether   1500
1 R ether2  ether   1500
2 R ether3  ether   1500
3 R ether4  ether   1500
[admin@MikroTik] > interface print Flags: X - disabled, D - dynamic, R - running
#NAME TYPE MTU
0 R ether1 ether 1460 
1 R ether2 ether 1460 
2 R ether3 ether 1460 
3 R ether4 ether 1500 
[admin@MikroTik] >

Внимание: не используйте номера элементов в скриптах и планировщике, они ненадёжны. Используйте команду find.

Быстрый ввод

В консоли есть две возможности упростить ввод: автодополнение при нажатии [Tab] и сокращения названий команд.

Автодополнение работает как в UNIX shell: если вы вводите часть слова и нажимаете [Tab], консоль пытается найти команду, начинающуюся с этой части. Если совпадение одно — ввод дополняется и добавляется пробел.

/inte[T AB]  → /interface

Если совпадений несколько, но у них есть общий префикс длиннее вашего ввода, ввод дополняется до общего префикса, но пробел не добавляется:

/interface set e[TAB] → /interface set ether

Если вы набрали общий префикс, первый [Tab] ничего не сделает, а второй выведет все варианты.

Допускаются сокращения команд и аргументов — вы можете вводить только начало команды, если оно однозначно, и консоль примет это за полное имя.

Например,

pin 10.1 c 3 si 100

равнозначен

ping 10.0.0.1 count 3 size 100

Можно сокращать даже подстроки, если они уникальны. Например,

interface m[TAB]  → interface monitor-traffic

Общие команды

В почти всех меню доступны команды add, edit, find, move, remove, set, reset, export, get, enable, disable, comment. Они ведут себя похоже на разных уровнях.

add — добавляет новый элемент с указанными значениями, обычно в конец списка.

Общие параметры add:

  • copy-from — копирует свойства с другого элемента, можно менять значения для отличий
  • place-before — вставить новый элемент перед указанным
  • disabled — состояние включено/выключено
  • comment — описание элемента

add возвращает внутренний номер добавленного элемента.

edit — редактирует свойства, в том числе длинные тексты, например, скрипты. В зависимости от терминала запускается полноэкранный или однострочный редактор.

find — ищет элементы по значениям параметров и флагам (disabled, active). Возвращает номера найденных элементов.

move — меняет порядок элементов. Первый аргумент — элементы для перемещения, второй — перед каким элементом поставить (если не указан — в конец).

print — выводит список элементов.

remove — удаляет указанные элементы.

set — изменяет параметры элемента. Аргументы соответствуют параметрам.

reset — сбрасывает параметры к значениям по умолчанию.

export — экспортирует конфигурацию из текущего меню и подменю, если указать файл, запись идет туда, иначе на консоль.

get — получает параметр элемента, по умолчанию не выводит, но в связке с :put можно показать.

enable — включает элемент.

disable — отключает элемент.

comment — позволяет оставлять комментарии к элементам.

Пример объединения команд: добавить правило с поиском по комментарию

/ip firewall/filter/add chain=forward place-before=[find where comment=CommentX]
/ip/firewall/filter/add chain=forward place-before="CommentX"

Режимы редактирования строк

Консоль работает в двух режимах: многострочном и однострочном. Многострочный редактор показывает полную строку (даже если длиннее экрана) и использует полноэкранный редактор для длинных текстов, например, скриптов. Однострочный режим ограничен одной строкой и обрезает длинные участки.

Выбор режима зависит от возможностей терминала.

Настройки консоли

В меню /console/settings возможно включить замену зарезервированных символов в именах файлов на подчёркивания.

Параметр Описание
sanitize-names (yes | no; по умолчанию no) Заменять зарезервированные символы (\ / : * ? |) на подчёркивания
Основные горячие клавиши
Клавиша Действие
F1 Список доступных команд
command F1 Справка по команде и список аргументов
[Tab Автодополнение
F3 или Ctrl-R Поиск в истории команд
F4 или Ctrl-X Переключение безопасного режима
F5 или Ctrl-L Обновить экран
F7 Переключение Hotlock режима
F8 Вывод мультистрочного ввода
Ctrl-\ Разделить строку
Home или Ctrl-A Начало строки
End или Ctrl-E Конец строки
Ctrl-C Прервать действие
Ctrl-D Завершить сессию (если строка пустая)
Ctrl-K Удалить до конца строки
Ctrl-U Удалить до начала строки
Ctrl-T Переключение фоновой задачи / Подняться к базовому уровню
.. Подняться на уровень выше
/command Выполнить команду на базовом уровне

Клавиши up, down и split оставляют курсор в конце строки.

Встроенная справка

Консоль имеет встроенную помощь. Нажмите F1 для справки по использованию консоли. Помощь показывает, что можно ввести в позиции, где нажата клавиша (подобно двойному нажатию [Tab], но с подробным объяснением).

Safe Mode

Иногда изменение конфигурации роутера может привести к потере доступа к нему (кроме как через локальную консоль). Обычно это происходит случайно, но после разрыва соединения с роутером нельзя отменить последнее изменение. Safe Mode используется для минимизации такого риска.

Кнопка "Safe Mode" в графическом интерфейсе Winbox позволяет войти в безопасный режим, а в CLI доступ к нему можно получить через комбинацию клавиш F4 или [CTRL]+[X]. Для выхода без сохранения изменений в CLI нажмите [CTRL]+[D].

[admin@MikroTik] ip route>[CTRL]+[X]
[Safe Mode taken]
[admin@MikroTik] ip route<SAFE>

703px-2009-04-06_1317 (1).png

Отображается сообщение "Safe Mode taken", а приглашение изменяется, чтобы показать, что сессия в безопасном режиме. Все изменения конфигурации, сделанные (в том числе из других сессий), в Safe Mode автоматически отменяются, если сессия завершается аварийно. Все такие изменения отмечены флагом F в системной истории:

[admin@MikroTik] /ip/route>
[Safe Mode taken]
[admin@MikroTik] /ip/route<SAFE> add
[admin@MikroTik] /ip/route<SAFE> /system/history/print
Flags: U, F - FLOATING-UNDO
Columns: ACTION, BY, POLICY
ACTION BY POLICY
F route 0.0.0.0/0 added admin write

Если соединение telnet или WinBox прерывается, через 9 минут (TCP таймаут) все изменения, сделанные в Safe Mode, будут отменены. Выход из сессии с [Ctrl]+[D] также отменяет все изменения режима, команда /quit — нет.

Если другой пользователь пытается войти в Safe Mode, он получает сообщение:

[admin@MikroTik] >
Hijacking Safe Mode from someone - unroll/release/don't take it [u/r/d]:

[u] - отменяет все изменения Safe Mode и переводит текущую сессию в Safe Mode [r] - сохраняет все текущие изменения и переводит текущую сессию в Safe Mode. Предыдущий владелец Safe Mode уведомляется:

[admin@MikroTik] ip firewall rule input [Safe mode released by another user]

[d] - оставляет всё как есть

Если сделано слишком много изменений и история не вмещает их (хранит до 100 последних действий), сессия автоматически выходит из Safe Mode, и изменения перестают отменяться. Лучше менять конфигурацию маленькими шагами. Нажатие [Ctrl]+[X] дважды очищает список действий Safe Mode.

Поскольку Safe Mode работает внутри сессии пользователя и хранит изменения конфигурации, он игнорируется для команд, требующих перезагрузки, таких как сброс конфигурации или восстановление из резервной копии.

HotLock Mode

При включении HotLock режима команды автодополняются.

Включение и отключение HotLock — клавиша F7.

[admin@MikroTik] /ip/address> [F7]
[admin@MikroTik] /ip/address>>

Двойной символ ">>" означает, что HotLock включён. Например, если ввести "/in et", это автозаполнится как:

[admin@MikroTik] /ip/address>> /interface/ethernet/
Lock Mode

Команда ":lock" блокирует экран.

[admin@MikroTik] > :lock
...
  MMM      MMM       KKK                          TTTTTTTTTTT      KKK
  MMMM    MMMM       KKK                          TTTTTTTTTTT      KKK
  MMM MMMM MMM  III  KKK  KKK  RRRRRR     OOOOOO      TTT     III  KKK  KKK
  MMM  MM  MMM  III  KKKKK     RRR  RRR  OOO  OOO     TTT     III  KKKKK
  MMM      MMM  III  KKK KKK   RRRRRR    OOO  OOO     TTT     III  KKK KKK
  MMM      MMM  III  KKK  KKK  RRR  RRR   OOOOOO      TTT     III  KKK  KKK
  
MikroTik RouterOS 7.16rc1 (c) 1999-2024 https://www.mikrotik.com/


Session is locked (Ctrl-D to Quit)

password for admin: