Разберем несколько способов отключить (включить) сетевой интерфейс MikroTik или отключить интернет, по расписанию: правило Firewall, NAT, планировщик заданий MikroTik или скрипт.
Содержание
- Firewall правило: как отключить (включить) интерфейс по расписанию
- NAT: как разрешить (запретить) интернет по расписанию
- Планировщик: отключение (включение) интерфейса по времени
- 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."
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."
Планировщик: выключение (включение) интерфейса по времени
Выключите 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 и Планировщика заданий.
Создать скрипт
Укажите в скрипте следующие переменные:
- InterfaceName — имя интерфейса (в примере wlan2-5GHz);
- StartEnableTime — время начиная с которого интерфейс должен быть включен (в примере 08:00:00);
- 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 по расписанию или разрешить (запретить) доступ к интернету по времени, обсуждалось в этой статье. Надеюсь вы выбрали подходящий способ управления состоянием интерфейса. Однако, если вы столкнетесь с каким-то проблемами при настройке, не стесняйтесь написать в комментариях. Я постараюсь помочь.
Скрипт проверен: hAP ac lite [RouterBOARD 952Ui-5ac2nD], RouterOS 6.48.1 (stable).
Можете объяснить как работает эта команда?
/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).