mikrotik-wiki.ru
Главная
Загрузка...

Safe Mode на MikroTik — защита от ошибок

RouterOS 7.xРуководства8 мин230 мар. 2026 г.
TelegramVK

Safe Mode на MikroTik — защита от ошибок при настройке

Safe Mode — встроенный механизм RouterOS, который автоматически откатывает изменения конфигурации при потере связи с маршрутизатором. Это незаменимый инструмент при удалённом администрировании, особенно при настройке Firewall, маршрутизации и IP-адресации — любых изменений, которые могут заблокировать доступ к устройству.

Статья актуальна для RouterOS 7.20+.

Описание

Зачем нужен Safe Mode

Представьте ситуацию: вы администрируете маршрутизатор MikroTik удалённо через WinBox или SSH. Вам нужно добавить правило Firewall. Вы добавляете правило, которое по ошибке блокирует весь трафик — включая ваше собственное подключение. Связь теряется. Маршрутизатор находится в другом городе. Единственный вариант — просить кого-то на месте перезагрузить устройство или подключиться по консоли.

Safe Mode решает эту проблему. Когда Safe Mode активирован, все ваши изменения помечаются как «ожидающие» (pending). Если сессия обрывается (вы теряете связь с маршрутизатором), RouterOS автоматически откатывает все pending-изменения через ~9 минут (TCP timeout). Конфигурация возвращается в состояние до входа в Safe Mode.

Как это работает внутри

Технически Safe Mode работает следующим образом:

  1. При входе в Safe Mode RouterOS начинает отслеживать все изменения конфигурации в текущей сессии.
  2. Каждое изменение помечается как «pending» — применено, но не подтверждено.
  3. Если администратор вручную выходит из Safe Mode (подтверждает изменения), все pending-изменения становятся постоянными.
  4. Если TCP-сессия обрывается (потеря связи), RouterOS ждёт timeout (~9 минут) и откатывает все pending-изменения.
  5. После отката конфигурация возвращается в точное состояние до входа в Safe Mode.

Важно: изменения применяются немедленно, даже в Safe Mode. То есть если вы добавили правило Firewall — оно сразу начинает работать. Но если связь потеряна, RouterOS через ~9 минут удалит это правило автоматически.

Настройка (активация Safe Mode)

Включение через CLI (SSH/Terminal)

Для входа в Safe Mode в командной строке используйте комбинацию Ctrl+X:

routeros
[admin@MikroTik] >

После нажатия Ctrl+X в приглашении появится метка <SAFE>:

routeros
[admin@MikroTik] <SAFE> >

Это означает, что Safe Mode активен. Все последующие изменения будут помечены как pending.

Включение через WinBox

В WinBox Safe Mode включается через кнопку Safe Mode в верхней части окна Terminal. Также можно использовать Ctrl+X в окне терминала WinBox.

При включении Safe Mode в WinBox кнопка подсвечивается, а в заголовке терминала появляется метка <SAFE>.

Выход из Safe Mode (подтверждение изменений)

Чтобы подтвердить все изменения и выйти из Safe Mode, нажмите Ctrl+X ещё раз:

routeros
[admin@MikroTik] <SAFE> >
# Нажимаем Ctrl+X
[admin@MikroTik] >

Метка <SAFE> исчезает — все изменения зафиксированы, откат больше невозможен.

Отмена изменений вручную (без потери связи)

Если вы хотите откатить изменения вручную, не дожидаясь потери связи, используйте Ctrl+D (или закройте сессию):

Нажатие Ctrl+D в Safe Mode немедленно откатывает все pending-изменения и завершает сессию.

Практический пример: безопасная настройка Firewall

Рассмотрим типичный сценарий — добавление правил Firewall на удалённом маршрутизаторе.

Шаг 1: Войдите в Safe Mode

Подключитесь к маршрутизатору через SSH или WinBox Terminal:

[admin@MikroTik] >
# Нажмите Ctrl+X для входа в Safe Mode
[admin@MikroTik] <SAFE> >

Шаг 2: Внесите изменения

Добавьте правила Firewall:

[admin@MikroTik] >
/ip/firewall/filter
add chain=input connection-state=established,related action=accept
add chain=input connection-state=invalid action=drop
add chain=input protocol=tcp dst-port=22 action=accept \
    comment="Allow SSH"
add chain=input protocol=tcp dst-port=8291 action=accept \
    comment="Allow WinBox"
add chain=input protocol=icmp action=accept comment="Allow ICMP"
add chain=input action=drop comment="Drop all other input"

Правила применяются немедленно. Если вы допустили ошибку (например, забыли разрешить WinBox), связь оборвётся.

Шаг 3: Проверьте доступность

После добавления правил убедитесь, что связь с маршрутизатором работает. Попробуйте:

  • Открыть новую сессию WinBox/SSH.
  • Выполнить ping до маршрутизатора.
  • Проверить, что нужные сервисы доступны.
[admin@MikroTik] >
# Если всё работает — подтвердите изменения (Ctrl+X)
[admin@MikroTik] <SAFE> >
# Ctrl+X
[admin@MikroTik] >

Что произойдёт при ошибке

Допустим, вы забыли добавить правило для WinBox (порт 8291) и последним правилом добавили drop all. Ваше подключение WinBox оборвётся. Что произойдёт дальше:

  1. TCP-сессия WinBox разорвана.
  2. RouterOS ждёт TCP timeout (~9 минут).
  3. По истечении timeout RouterOS определяет, что сессия Safe Mode потеряна.
  4. Все pending-изменения откатываются — правила Firewall удаляются.
  5. Маршрутизатор возвращается в исходное состояние.
  6. Вы можете подключиться снова и исправить ошибку.

Что откатывается, а что нет

Откатываются (pending-изменения в Safe Mode):

  • Добавленные правила Firewall, NAT, Mangle.
  • Изменённые IP-адреса.
  • Изменённые маршруты.
  • Добавленные/удалённые интерфейсы (Bridge ports, VLAN).
  • Изменения в DHCP, DNS, настройках сервисов.
  • Любые изменения конфигурации, сделанные через CLI в сессии Safe Mode.

НЕ откатываются:

  • Перезагрузка маршрутизатора (/system/reboot).
  • Обновление RouterOS (/system/package/update/install).
  • Сброс конфигурации (/system/reset-configuration).
  • Операции с файловой системой (загрузка/удаление файлов).
  • Изменения, сделанные скриптами, запущенными через Scheduler.
  • Изменения, сделанные другими администраторами в их сессиях.

Важный момент: Safe Mode отслеживает только изменения, сделанные в текущей сессии. Если вы запустите скрипт, который вносит изменения — эти изменения могут не попасть под Safe Mode в зависимости от контекста выполнения.

Safe Mode vs Backup

ХарактеристикаSafe ModeBackup
НазначениеЗащита от ошибок в реальном времениПолное сохранение конфигурации
Автоматический откатДа (при потере связи)Нет (ручное восстановление)
Область действияТекущая сессияВся конфигурация
Время отката~9 минут (TCP timeout)Мгновенно (но требует перезагрузки)
Подходит для скриптовНетДа
Защита от перезагрузкиНетДа

Рекомендация: используйте оба механизма. Перед серьёзными изменениями сделайте backup, а затем работайте в Safe Mode:

[admin@MikroTik] >
# Сначала — backup
/system/backup/save name=before-changes
/export file=before-changes-export

# Затем — Safe Mode (Ctrl+X)
[admin@MikroTik] <SAFE> >
# ... вносите изменения ...

Если Safe Mode не спас (например, маршрутизатор перезагрузился) — у вас есть backup для восстановления.

Ограничения Safe Mode

1. Только одна сессия

Safe Mode может быть активен только в одной сессии одновременно. Если администратор A вошёл в Safe Mode, а администратор B пытается войти — он получит предупреждение.

При попытке входа в Safe Mode, который уже занят другим администратором:

code
Hijacking Safe Mode from admin@192.168.88.100

Если администратор B подтвердит — Safe Mode перейдёт к нему, а pending-изменения администратора A будут немедленно откачены. Это может быть неожиданным поведением.

2. Не работает для скриптов

Скрипты, запущенные через Scheduler или System → Scripts, не могут использовать Safe Mode. Это логично — скрипт не имеет интерактивной сессии, которую можно потерять.

Для защиты от ошибок в скриптах используйте:

  • Предварительное тестирование.
  • Проверки условий внутри скрипта.
  • Backup перед выполнением.

3. TCP timeout ~9 минут

Откат происходит не мгновенно. После потери связи RouterOS ждёт, пока TCP-сессия «умрёт» — это занимает примерно 9 минут (зависит от настроек TCP keepalive). Всё это время некорректная конфигурация остаётся активной.

Если вы заблокировали доступ из-за Firewall — придётся ждать ~9 минут, прежде чем откат произойдёт и вы сможете подключиться снова.

4. Не защищает от всех ошибок

Safe Mode не защищает от:

  • Ошибок в конфигурации, которые не обрывают связь (например, некорректный DHCP).
  • Физических проблем (отключение кабеля, питания).
  • Ошибок других администраторов, работающих параллельно.

Проверка состояния Safe Mode

Проверить, активен ли Safe Mode в текущей сессии:

[admin@MikroTik] >
# Наличие метки <SAFE> в приглашении означает активный Safe Mode
[admin@MikroTik] <SAFE> >

Из другой сессии можно увидеть, что Safe Mode активен, по наличию pending-изменений. Просмотрите активные сессии:

[admin@MikroTik] >
/system/resource/print

К сожалению, RouterOS не предоставляет явной команды для проверки статуса Safe Mode из другой сессии. Признаком служит предупреждение при попытке войти в Safe Mode.

Типичные ошибки

1. Забыли выйти из Safe Mode

Самая частая ошибка — администратор завершает настройку, но забывает подтвердить изменения (Ctrl+X). Если после этого сессия завершается (закрытие WinBox, разрыв SSH) — все изменения откатятся через ~9 минут.

Решение: всегда проверяйте метку <SAFE> в приглашении. Если она есть — не закрывайте сессию до подтверждения (Ctrl+X).

2. Второй администратор «перехватывает» Safe Mode

Если два администратора работают одновременно и один из них пытается войти в Safe Mode, который уже занят — pending-изменения первого администратора будут откачены. Это может привести к неожиданной потере конфигурации.

Решение: координируйте действия с коллегами. Перед критичными изменениями убедитесь, что никто другой не использует Safe Mode:

[admin@MikroTik] >
# Проверьте активные сессии
/user/active/print

3. Ожидание мгновенного отката

Safe Mode не откатывает изменения мгновенно при потере связи. TCP timeout может занимать до 9 минут. В течение этого времени маршрутизатор работает с некорректной конфигурацией.

Решение: учитывайте время отката при планировании. Если вам нужен мгновенный откат — используйте Scheduler с задержкой:

[admin@MikroTik] >
# Создайте задание, которое восстановит backup через 5 минут
/system/scheduler/add name="rollback" interval=0 \
    start-time=startup on-event="/system/backup/load name=before-changes" \
    start-date=[/system/clock/get date]

Это «страховочный» подход для критичных изменений.

4. Использование Safe Mode для долгих настроек

Safe Mode предназначен для коротких, атомарных операций: добавить несколько правил, проверить, подтвердить. Если настройка занимает часы — Safe Mode не подходит. TCP-сессия может оборваться по естественным причинам (нестабильный интернет), и все изменения откатятся.

Решение: для долгих настроек используйте backup + поэтапное применение. Вносите изменения блоками, подтверждая каждый блок.

5. Перезагрузка в Safe Mode

Если маршрутизатор перезагрузится во время активного Safe Mode, pending-изменения будут потеряны (откатятся). Это может произойти при:

  • Отключении питания.
  • Принудительной перезагрузке.
  • Обновлении RouterOS.

Решение: не перезагружайте маршрутизатор, находясь в Safe Mode. Сначала подтвердите изменения (Ctrl+X), затем перезагружайте.

Лучшие практики

  1. Всегда используйте Safe Mode при удалённой настройке Firewall. Это главный сценарий, где Safe Mode спасает от блокировки.

  2. Делайте backup перед Safe Mode. Двойная защита: Safe Mode откатит при потере связи, backup спасёт при перезагрузке.

  3. Вносите минимальные изменения за раз. Не добавляйте 50 правил в Safe Mode — добавьте 5, проверьте, подтвердите, войдите в Safe Mode снова.

  4. Проверяйте доступ из второй сессии. Перед подтверждением изменений откройте параллельную сессию WinBox/SSH и убедитесь, что всё работает.

  5. Координируйте с коллегами. Не используйте Safe Mode, если другие администраторы вносят изменения одновременно.

[admin@MikroTik] >
# Типичный рабочий процесс:
# 1. Backup
/system/backup/save name=pre-firewall

# 2. Safe Mode (Ctrl+X)
# 3. Изменения
/ip/firewall/filter/add chain=input protocol=tcp dst-port=443 \
    action=accept comment="Allow HTTPS"

# 4. Проверка (открыть вторую сессию)
# 5. Подтверждение (Ctrl+X)

Резюме

Safe Mode — простой, но мощный механизм защиты от ошибок при удалённом администрировании MikroTik. Он автоматически откатывает изменения при потере связи, что критически важно при настройке Firewall и IP-адресации. Ограничения — одна сессия, неприменимость к скриптам и задержка отката ~9 минут — легко компенсируются правильным рабочим процессом. Комбинация Safe Mode + Backup обеспечивает максимальную защиту от ошибок конфигурации.

[admin@MikroTik] >
[admin@MikroTik] >
[admin@MikroTik] <SAFE> >
[admin@MikroTik] <SAFE> >
# Нажимаем Ctrl+X
[admin@MikroTik] >
# Нажмите Ctrl+X для входа в Safe Mode
[admin@MikroTik] <SAFE> >
/ip/firewall/filter
add chain=input connection-state=established,related action=accept
add chain=input connection-state=invalid action=drop
add chain=input protocol=tcp dst-port=22 action=accept \
    comment="Allow SSH"
add chain=input protocol=tcp dst-port=8291 action=accept \
    comment="Allow WinBox"
add chain=input protocol=icmp action=accept comment="Allow ICMP"
add chain=input action=drop comment="Drop all other input"
# Если всё работает — подтвердите изменения (Ctrl+X)
[admin@MikroTik] <SAFE> >
# Ctrl+X
[admin@MikroTik] >
# Сначала — backup
/system/backup/save name=before-changes
/export file=before-changes-export

# Затем — Safe Mode (Ctrl+X)
[admin@MikroTik] <SAFE> >
# ... вносите изменения ...
Hijacking Safe Mode from admin@192.168.88.100
# Наличие метки <SAFE> в приглашении означает активный Safe Mode
[admin@MikroTik] <SAFE> >
/system/resource/print
# Проверьте активные сессии
/user/active/print
# Создайте задание, которое восстановит backup через 5 минут
/system/scheduler/add name="rollback" interval=0 \
    start-time=startup on-event="/system/backup/load name=before-changes" \
    start-date=[/system/clock/get date]
# Типичный рабочий процесс:
# 1. Backup
/system/backup/save name=pre-firewall

# 2. Safe Mode (Ctrl+X)
# 3. Изменения
/ip/firewall/filter/add chain=input protocol=tcp dst-port=443 \
    action=accept comment="Allow HTTPS"

# 4. Проверка (открыть вторую сессию)
# 5. Подтверждение (Ctrl+X)
Руководства / Safe Mode на MikroTik — защита от ошибок