MikroTik: Как отключить (включить) интерфейс по расписанию

Разберем несколько способов отключить (включить) сетевой интерфейс MikroTik или отключить интернет, по расписанию: правило Firewall, NAT, планировщик заданий MikroTik или скрипт.

Содержание

  1. Firewall правило: как отключить (включить) интерфейс по расписанию
  2. NAT: как разрешить (запретить) интернет по расписанию
  3. Планировщик: отключение (включение) интерфейса по времени
  4. MikroTik скрипт: как отключить (включить) интерфейс

Статья на других языках:
?? — MikroTik: How to disable (enable) the interface on a schedule
?? — MikroTik: Cómo deshabilitar (habilitar) la interfaz en un horario
?? — MikroTik: Comment désactiver (activer) l’interface selon un calendrier
?? — MikroTik: So deaktivieren (aktivieren) Sie die Schnittstelle nach einem Zeitplan
?? — MikroTik: Hoe de interface volgens een schema uit te schakelen (in te schakelen)

Firewall правило: как отключить (включить) интерфейс по расписанию

Чтобы отключить или включить интерфейсы по расписанию, можно использовать настройку правила межсетевого экрана (Firewall) на вкладке Extra.

⚠️ Для работы правила, интерфейс должен являться master интерфейсом.

Например: ограничим работу WiFi интерфейса (wlan2-5GHz) в нерабочее время, с 19:00 до 07:00.

Создайте правило:

[IP] -> [Firewall] -> [Filter Rules] -> [+] -> [General: Chain=forward, In. interface=wlan2-5GHz; Extra: Time=19:00:00-07:00:00; Comment="Blocking traffic on the interface, according to the schedule."]

в терминале:

/ip firewall filter add action=reject chain=forward in-interface=wlan2-5GHz reject-with=icmp-network-unreachable time=9h-7h,sun,mon,tue,wed,thu,fri,sat comment="Blocking traffic on the interface, according to the schedule."

Если вы желаете запретить работу интерфейса в субботу и воскресенье (полный день), установите значения времени:

[IP] -> [Firewall] -> [Filter Rules] -> [+] -> [General: Chain=forward, In. interface=wlan2-5GHz; Extra: Time=00:00:00-1d 00:00:00, Days=sun, sat; Comment="Blocking traffic on the interface, according to the schedule."]

в терминале:

/ip firewall filter add action=drop chain=forward in-interface=wlan2-5GHz time=0s-1d,sun,sat comment="Blocking traffic on the interface, according to the schedule."
Firewall правило: как отключить (включить) интерфейс по расписанию

NAT: как разрешить (запретить) интернет по расписанию

Вы можете запрещать или разрешать доступ к интернету по времени, используя настройку правила masquerade (NAT).

Отредактируйте правило masquerade, на вкладке Extra:

[IP] -> [Firewall] -> [NAT] -> [Extra: Time=19:00:00-07:00:00, Days: mon,tue,wed,thu,fri; Comment="Rule runs on schedule."]

в терминале:

/ip firewall nat add action=masquerade chain=srcnat out-interface-list=ExternalInterfaces time=8h-20h,mon,tue,wed,thu,fri comment="Rule runs on schedule."
NAT: как разрешить (запретить) интернет по расписанию

Планировщик: выключение (включение) интерфейса по времени

Выключите WiFi интерфейс wlan2-5GHz после 20:00:00, используя Планировщик MikroTik:

[System] -> [Schedule] -> [+] -> [Name: "Interface: Disable WiFi"; Start Time: 20:00:00; Interval: 1d 00:00:00; Policy: read, write, policy, test; text: "[/interface set wlan2-5GHz disabled=yes]"; Comment: Disable the interface at the specified time]

или выполните в терминале:

/system scheduler add name="Interface: Disable WiFi" start-date=feb/22/2021 start-time=20:00:00 interval=1d on-event="[/interface set wlan2-5GHz disabled=yes]" policy=read,write,policy,test comment="Disable the interface at the specified time"

Включите WiFi интерфейс wlan2-5GHz с 08:00:00, используя Планировщик MikroTik:

[System] -> [Schedule] -> [+] -> [Name: "Interface: Enable WiFi"; Start Time: 20:00:00; Interval: 1d 00:00:00; Policy: read, write, policy, test; text: "[/interface set wlan2-5GHz disabled=no]"; Comment: Disable the interface at the specified time]

или выполните в терминале:

/system scheduler add name="Interface: Enable WiFi" start-date=feb/22/2021 start-time=08:00:00 interval=1d on-event="[/interface set wlan2-5GHz disabled=no]" policy=read,write,policy,test comment="Enable the interface at the specified time"
Планировщик: выключение (включение) интерфейса по времени

MikroTik скрипт: как отключить (включить) интерфейс

Выключать или включать интерфейс можно так же с помощью скрипта MikroTik и Планировщика заданий.

Создать скрипт

Укажите в скрипте следующие переменные:

  1. InterfaceName — имя интерфейса (в примере wlan2-5GHz);
  2. StartEnableTime — время начиная с которого интерфейс должен быть включен (в примере 08:00:00);
  3. EndEnableTime — время после которого интерфейс должен быть выключен (в примере 20:00:00).
[System] -> [Scripts] -> [+] -> [Name: WorkTimeInterface] -> [Policy: read, write, test, policy]

Код скрипта:

# Name: WorkTimeInterface v1
# Description: Enable or disable the selected interface on a schedule.
# Author: Yun Sergey [MHelp.pro] © 2021
# License: GPL-3.0 License
# Description, purpose and questions: https://mhelp.pro/mikrotik-how-to-disable-enable-the-interface-on-a-schedule/
# More scripts Mikrotik: https://mhelp.pro/tag/mikrotik-scripts/
# Verified: RouterBOARD 952Ui-5ac2nD, RouterOS 6.48.1 (stable)

:local InterfaceName wlan2-5GHz;
:local StartEnableTime [:totime "08:00:00"];
:local EndEnableTime [:totime "20:00:00"];

:local StatusInterface [/interface get $InterfaceName disabled];
:local CurrenTime [/system clock get time];

#:log info "Script WorkTimeInterface running. Interface $InterfaceName disabled: $StatusInterface.";

:if ( $StartEnableTime < $CurrenTime and $CurrenTime < $EndEnableTime) do={
    #:log info "Script WorkTimeInterface: work time.";
    :if  ($StatusInterface) do={
        [/interface set $InterfaceName disabled=no];
        :log info "Script WorkTimeInterface: interface $InterfaceName was disabled, enabled the interface.";
    } else={
        #:log info "Script WorkTimeInterface: skip enable interface, $InterfaceName already enabled.";
    };

} else={
    #:log info "Script WorkTimeInterface: not work time";
    :if  (!$StatusInterface) do={
        [/interface set $InterfaceName disabled=yes];
        :log info "Script WorkTimeInterface: interface $InterfaceName was enabled, disabled the interface."
    }
}
#:log info "Script WorkTimeInterface finished. Interface $InterfaceName disabled: $StatusInterface.";

Если скрипт не работает или работает некорректно, раскомментируйте строки :log (удалите символ # перед началом строки) и проверьте лог MikroTik при запуске скрипта.

Добавить скрипт в Планировщик

Для запуска скрипта необходимы разрешения: read, write, test, policy.

[System] -> [Schedule] -> [+] -> [Name: "Interface: Enable/Disable WiFi"; Start Time: 00:00:50; Interval: 00:15:00; Policy: read, write, policy, test; text: "[/system script run WorkTimeInterface]"; Comment: "Run script Enable/Disable interface"]
MikroTik скрипт: как отключить (включить) интерфейс

? Как отключить или включить интерфейс MikroTik по расписанию или разрешить (запретить) доступ к интернету по времени, обсуждалось в этой статье. Надеюсь вы выбрали подходящий способ управления состоянием интерфейса. Однако, если вы столкнетесь с каким-то проблемами при настройке, не стесняйтесь написать в комментариях. Я постараюсь помочь.

Скрипт проверен: hAP ac lite [RouterBOARD 952Ui-5ac2nD], RouterOS 6.48.1 (stable).

2 комментария к “MikroTik: Как отключить (включить) интерфейс по расписанию”

  1. Можете объяснить как работает эта команда?

    /ip firewall filter add action=reject chain=forward in-interface=wlan2-5GHz reject-with=icmp-network-unreachable time=9h-7h,sun,mon,tue,wed,thu,fri,sat comment="Blocking traffic on the interface, according to the schedule."

    А точнее часть про время «time=9h-7h,sun,mon,tue,wed,thu,fri,sat»
    Чуть выше вы написали буквально следующее: «ограничим работу WiFi интерфейса (wlan2-5GHz) в нерабочее время, с 19:00 до 09:00.»
    Но в команде не вижу 19:00-9:00.
    При этом в разных источниках пишут по-разному, где-то что первое значение это начало, а второе это длительность, в других источниках, что второй параметр это тоже время.

    Заранее спасибо

    Ответить
    • Здравствуйте, вы нашли опечатку, поправил.
      Описание теперь соответствует команде » в нерабочее время, с 19:00 до 07:00.».
      Указывается именно интервал времени от начала до конца, это можно легко проверить: откройте вкладку firewall в Winbox, попробуйте отредактировать время действия правила или включите отображение дополнительных столбцов на этой вкладке (Time/Time).

      Ответить

Оставьте комментарий