Настройка NTP и времени на MikroTik
Точное время на маршрутизаторе — не роскошь, а необходимость. Без корректных часов невозможно анализировать логи (все записи будут с неправильными метками времени), работать с SSL/TLS-сертификатами (просроченные или «будущие» сертификаты отклоняются), использовать Scheduler для автоматизации задач и корректно функционировать с протоколами вроде WireGuard и OSPF.
В этой статье настроим синхронизацию времени через NTP-клиент, сделаем MikroTik NTP-сервером для локальной сети и разберём типичные проблемы.
Инструкция актуальна для RouterOS 7.20+.
Описание
Почему точное время важно
Логирование. Все записи в /log содержат метки времени. Если часы сбиты, анализ инцидентов и корреляция событий между устройствами становится невозможной. При расследовании проблем с firewall или маршрутизацией неправильное время в логах — прямой путь к ошибочным выводам.
SSL/TLS-сертификаты. Сертификаты имеют период действия (Not Before / Not After). Если часы маршрутизатора отстают или спешат, валидные сертификаты будут отклоняться. Это затрагивает:
- HTTPS (WebFig, REST API).
- Let's Encrypt.
- DOH (DNS over HTTPS).
- VPN с сертификатной аутентификацией (IKEv2, OpenVPN).
Scheduler. Планировщик задач RouterOS опирается на системные часы. Если время неверное — бэкапы, скрипты и уведомления будут выполняться не по расписанию.
WireGuard. Протокол WireGuard использует метки времени в handshake для предотвращения replay-атак. Существенное расхождение времени между пирами может привести к отказу установления туннеля.
OSPF и маршрутизация. Некоторые протоколы маршрутизации используют таймеры, которые зависят от точности системных часов. Хотя OSPF не требует синхронизированных часов между роутерами напрямую, точное время важно для корректной работы логов и мониторинга.
Как хранится время на MikroTik
RouterBOARD хранит время в энергонезависимой памяти. Однако не все модели имеют батарейку для часов реального времени (RTC battery). На устройствах без батарейки после перезагрузки часы сбрасываются на дефолтное значение (обычно Jan/01/1970 или дату компиляции firmware).
Модели с батарейкой RTC: CCR-серия, RB5009, некоторые CRS. На этих устройствах время сохраняется между перезагрузками.
Модели без батарейки RTC: большинство hAP, hEX, mAP, SXT. Время теряется при перезагрузке и восстанавливается только после синхронизации NTP.
Настройка часового пояса
Первый шаг — установить правильный часовой пояс. Без этого даже точно синхронизированное время будет отображаться неверно.
[admin@MikroTik] >/system/clock/set time-zone-name=Europe/Moscow
Для других часовых поясов России:
[admin@MikroTik] ># Калининград (UTC+2) /system/clock/set time-zone-name=Europe/Kaliningrad # Москва (UTC+3) /system/clock/set time-zone-name=Europe/Moscow # Самара (UTC+4) /system/clock/set time-zone-name=Europe/Samara # Екатеринбург (UTC+5) /system/clock/set time-zone-name=Asia/Yekaterinburg # Омск (UTC+6) /system/clock/set time-zone-name=Asia/Omsk # Красноярск (UTC+7) /system/clock/set time-zone-name=Asia/Krasnoyarsk # Иркутск (UTC+8) /system/clock/set time-zone-name=Asia/Irkutsk # Якутск (UTC+9) /system/clock/set time-zone-name=Asia/Yakutsk # Владивосток (UTC+10) /system/clock/set time-zone-name=Asia/Vladivostok # Магадан (UTC+11) /system/clock/set time-zone-name=Asia/Magadan # Камчатка (UTC+12) /system/clock/set time-zone-name=Asia/Kamchatka
Для Украины:
[admin@MikroTik] >/system/clock/set time-zone-name=Europe/Kiev
Для Беларуси:
[admin@MikroTik] >/system/clock/set time-zone-name=Europe/Minsk
Для Казахстана:
[admin@MikroTik] ># Западный Казахстан (UTC+5) /system/clock/set time-zone-name=Asia/Aqtau # Восточный Казахстан (UTC+6) /system/clock/set time-zone-name=Asia/Almaty
Проверить текущие настройки:
[admin@MikroTik] >/system/clock/print
Пример вывода:
codetime: 14:35:22 date: Mar/28/2026 time-zone-name: Europe/Moscow gmt-offset: +03:00 dst-active: no
Настройка NTP-клиента
Базовая настройка
В RouterOS 7 NTP-клиент настраивается через /system/ntp/client:
[admin@MikroTik] >/system/ntp/client/set enabled=yes
Добавьте NTP-серверы:
[admin@MikroTik] >/system/ntp/client/servers add address=pool.ntp.org add address=time.google.com add address=time.cloudflare.com
Рекомендуется указывать несколько серверов для надёжности — если один недоступен, клиент переключится на следующий.
Использование региональных NTP-пулов
Для минимизации задержки используйте серверы, географически близкие к маршрутизатору:
[admin@MikroTik] >/system/ntp/client/servers add address=0.ru.pool.ntp.org add address=1.ru.pool.ntp.org add address=2.ru.pool.ntp.org add address=3.ru.pool.ntp.org
Для других стран:
[admin@MikroTik] ># Украина add address=0.ua.pool.ntp.org # Беларусь add address=0.by.pool.ntp.org # Казахстан add address=0.kz.pool.ntp.org # Германия (популярный выбор для VPS) add address=0.de.pool.ntp.org
Режим работы NTP-клиента
RouterOS 7 NTP-клиент работает в режиме unicast — стандартный запрос-ответ к конкретным серверам. Настройки режима:
[admin@MikroTik] >/system/ntp/client/set mode=unicast
В большинстве случаев режим unicast — единственный необходимый. RouterOS 7 убрал поддержку broadcast/multicast-режимов NTP-клиента, так как они менее безопасны.
Частота синхронизации
NTP-клиент RouterOS автоматически определяет оптимальную частоту запросов на основе качества соединения с сервером. Обычно это раз в несколько минут при стабильном подключении, с постепенным увеличением интервала до нескольких часов.
Принудительно частоту опроса задать нельзя — алгоритм NTP сам регулирует интервал для достижения оптимальной точности.
Проверка синхронизации
Статус NTP-клиента
[admin@MikroTik] >/system/ntp/client/print
Пример вывода:
codeenabled: yes mode: unicast status: synchronized freq-drift: 4.294 PPM synced-server: 185.209.85.222 synced-stratum: 2 system-offset: -0.496 ms
Ключевые поля:
status: synchronized— время синхронизировано. Еслиstatus: waitingилиerror— есть проблема.synced-server— адрес сервера, с которым произошла синхронизация.synced-stratum— уровень (stratum) NTP-сервера. 1 = атомные часы/GPS, 2 = синхронизирован с stratum 1, и т.д.system-offset— смещение локальных часов относительно сервера. Значение в миллисекундах, чем ближе к 0, тем точнее.
Проверка текущего времени
[admin@MikroTik] >/system/clock/print
Сравните отображаемое время с реальным (например, с часами телефона или time.is).
Список NTP-серверов и их статус
[admin@MikroTik] >/system/ntp/client/servers/print detail
Пример:
code0 address=pool.ntp.org auth-key=none stratum=2 reach=yes current-address=185.209.85.222 1 address=time.google.com auth-key=none stratum=1 reach=yes current-address=216.239.35.8 2 address=time.cloudflare.com auth-key=none stratum=3 reach=yes current-address=162.159.200.1
Поле reach=yes означает, что сервер доступен и отвечает на запросы.
MikroTik как NTP-сервер для LAN
Если в сети несколько устройств (коммутаторы, серверы, IoT), разумно сделать маршрутизатор MikroTik NTP-сервером. Клиенты в LAN будут получать время от него, а он — от внешних NTP-серверов. Это снижает внешний трафик и обеспечивает единообразие времени.
Включение NTP-сервера
[admin@MikroTik] >/system/ntp/server/set enabled=yes
После этого маршрутизатор начнёт отвечать на NTP-запросы (UDP порт 123) от любых клиентов, которые к нему обратятся.
Ограничение доступа через Firewall
NTP-сервер следует ограничить только LAN-клиентами. Не открывайте его в интернет — это создаёт риск NTP amplification-атак:
[admin@MikroTik] >/ip/firewall/filter/add chain=input protocol=udp dst-port=123 \ src-address=192.168.88.0/24 action=accept \ comment="Allow NTP from LAN" /ip/firewall/filter/add chain=input protocol=udp dst-port=123 \ in-interface-list=WAN action=drop \ comment="Block NTP from WAN"
Настройка клиентов
На Linux-машинах в LAN:
[admin@MikroTik] ># /etc/systemd/timesyncd.conf [Time] NTP=192.168.88.1
На Windows-машинах:
powershellw32tm /config /manualpeerlist:"192.168.88.1" /syncfromflags:manual /update w32tm /resync
Раздача NTP через DHCP (Option 42)
DHCP-опция 42 позволяет автоматически передавать адрес NTP-сервера клиентам при получении IP-адреса. Это избавляет от ручной настройки на каждом клиенте.
Настройка DHCP Option 42
[admin@MikroTik] >/ip/dhcp-server/option/add name=ntp-server code=42 \ value="'192.168.88.1'"
Обратите внимание на формат значения — IP-адрес в одинарных кавычках внутри двойных.
Альтернативный способ — указать IP в hex-формате:
[admin@MikroTik] >/ip/dhcp-server/option/add name=ntp-server code=42 \ value="0xC0A85801"
Где 0xC0A85801 = 192.168.88.1 в шестнадцатеричном формате.
Привязка опции к DHCP-серверу
[admin@MikroTik] >/ip/dhcp-server/network/set [find address=192.168.88.0/24] \ dhcp-option=ntp-server
Или при создании новой DHCP-сети:
[admin@MikroTik] >/ip/dhcp-server/network/add address=192.168.88.0/24 \ gateway=192.168.88.1 dns-server=192.168.88.1 \ dhcp-option=ntp-server
Проверка на клиенте
После обновления DHCP-lease на клиенте проверьте, что NTP-сервер получен:
[admin@MikroTik] ># Linux systemctl status systemd-timesyncd # Windows w32tm /query /status
Не все клиентские ОС автоматически применяют DHCP Option 42. Windows и Linux обычно используют эту опцию, но поведение может зависеть от дистрибутива и настроек.
GPS как источник времени
Некоторые модели MikroTik поддерживают GPS-модули (LtAP, SXT LTE, некоторые модели с mini-PCIe GPS). GPS предоставляет чрезвычайно точное время (stratum 0), что делает маршрутизатор полноценным NTP-сервером stratum 1.
Настройка GPS
[admin@MikroTik] >/system/gps/set enabled=yes port=serial0
Проверка GPS-статуса:
[admin@MikroTik] >/system/gps/monitor
Пример вывода:
codedate-and-time: Mar/28/2026 14:35:22 latitude: 55.7558° N longitude: 37.6173° E altitude: 156.4 m speed: 0.000 km/h valid: yes satellites: 12
Когда GPS-модуль захватывает спутники (valid: yes), RouterOS автоматически использует GPS как источник времени с максимальным приоритетом. NTP-сервер на этом маршрутизаторе будет отдавать stratum 1.
Когда использовать GPS
- Когда маршрутизатор не имеет доступа к интернету (изолированные сети).
- Когда нужна максимальная точность времени.
- Когда маршрутизатор выступает первичным NTP-сервером для крупной сети.
Для большинства стандартных задач NTP-серверы из интернета предоставляют достаточную точность (единицы миллисекунд).
Проверка корректности всей цепочки
После настройки рекомендуется проверить всю цепочку: внешний NTP → MikroTik → клиенты LAN.
На MikroTik
[admin@MikroTik] ># 1. NTP-клиент синхронизирован /system/ntp/client/print # Ожидаем: status=synchronized # 2. Время корректно /system/clock/print # Ожидаем: правильная дата, время и часовой пояс # 3. NTP-сервер включён /system/ntp/server/print # Ожидаем: enabled=yes # 4. Порт 123 открыт для LAN /ip/firewall/filter/print where dst-port=123
С клиента в LAN
[admin@MikroTik] ># Linux — запрос NTP к маршрутизатору ntpdate -q 192.168.88.1
Или:
[admin@MikroTik] ># Через sntp (если установлен) sntp 192.168.88.1
Типичные ошибки
1. Время сбрасывается после перезагрузки
Причина: устройство не имеет батарейки RTC (большинство hAP, hEX, mAP). После перезагрузки часы сбрасываются.
Решение: NTP-клиент восстановит время автоматически после получения ответа от сервера. Убедитесь, что NTP-клиент включён и настроен. Обычно синхронизация происходит в течение нескольких секунд после загрузки (при наличии интернета).
[admin@MikroTik] ># Проверить, что NTP-клиент включён и серверы добавлены /system/ntp/client/print /system/ntp/client/servers/print
Между перезагрузкой и NTP-синхронизацией может быть окно в несколько секунд с неправильным временем. Это может повлиять на скрипты Scheduler, запланированные на время, близкое к перезагрузке.
2. NTP блокируется Firewall
Причина: правило Firewall блокирует исходящий UDP-порт 123 (NTP-запросы к внешним серверам) или входящий UDP-порт 123 (NTP-ответы от серверов для локальных клиентов).
Решение: убедитесь, что Firewall разрешает NTP-трафик:
[admin@MikroTik] ># Разрешить исходящие NTP-запросы (обычно не нужно при правильном Firewall) # Проверьте chain=output — он обычно не фильтруется # Разрешить NTP-ответы от серверов (established/related обычно покрывает) /ip/firewall/filter/print where connection-state=established,related
Если используете строгий Firewall с chain=output:
[admin@MikroTik] >/ip/firewall/filter/add chain=output protocol=udp dst-port=123 \ action=accept comment="Allow NTP out"
3. Статус «waiting» — нет синхронизации
Причина: NTP-серверы недоступны. Возможные причины:
- Нет интернета.
- DNS не работает (если указаны доменные имена серверов).
- Firewall блокирует UDP 123.
Решение:
[admin@MikroTik] ># Проверить DNS /ip/dns/print /tool/ping address=8.8.8.8 count=3 /tool/ping address=pool.ntp.org count=3 # Если DNS не работает — используйте IP-адреса NTP-серверов /system/ntp/client/servers add address=216.239.35.0 add address=216.239.35.4 add address=216.239.35.8 add address=216.239.35.12
Это IP-адреса Google NTP (time.google.com).
4. Неправильный часовой пояс
Причина: часовой пояс не настроен или настроен неверно. Время синхронизировано по UTC, но отображается без учёта часового пояса.
Решение:
[admin@MikroTik] >/system/clock/print # Проверить gmt-offset /system/clock/set time-zone-name=Europe/Moscow
Полный список часовых поясов можно увидеть через Tab-completion:
[admin@MikroTik] >/system/clock/set time-zone-name=
Нажмите Tab дважды для отображения всех доступных вариантов.
5. NTP-сервер MikroTik открыт в интернет
Причина: NTP-сервер включён, но Firewall не ограничивает доступ из WAN. Маршрутизатор может быть использован для NTP amplification DDoS-атаки.
Решение:
[admin@MikroTik] >/ip/firewall/filter/add chain=input protocol=udp dst-port=123 \ in-interface-list=WAN action=drop \ comment="Block NTP from WAN" place-before=0
6. Проблемы с SSL-сертификатами после восстановления бэкапа
После восстановления backup на устройстве без RTC-батарейки часы могут сброситься. SSL-сертификаты (например, Let's Encrypt) перестанут валидироваться, DOH не будет работать, VPN с сертификатами откажет в подключении.
Решение: убедитесь, что NTP-клиент настроен и приоритет его запуска высок. После восстановления backup дождитесь NTP-синхронизации перед проверкой сертификатов:
[admin@MikroTik] ># Подождать синхронизации /system/ntp/client/print # Ждём status=synchronized # Проверить сертификаты /certificate/print
Мониторинг точности времени
Для критичных инфраструктур рекомендуется мониторить точность NTP-синхронизации. Добавьте скрипт, который проверяет статус и отправляет уведомление при рассинхронизации:
[admin@MikroTik] >/system/scheduler/add name="ntp-check" interval=1h \ on-event={ :local ntpStatus [/system/ntp/client/get status] :if ($ntpStatus != "synchronized") do={ /log warning "NTP is not synchronized! Status: $ntpStatus" } }
Для интеграции с Zabbix или Grafana — экспортируйте метрику system-offset через SNMP или REST API.
Резюме
Настройка NTP на MikroTik — обязательный шаг при вводе маршрутизатора в эксплуатацию. Установите часовой пояс, добавьте несколько NTP-серверов, включите NTP-сервер для LAN и раздайте адрес через DHCP Option 42. Не забудьте защитить порт UDP 123 от доступа из интернета и учитывать, что устройства без RTC-батарейки теряют время при перезагрузке.
/system/clock/set time-zone-name=Europe/Moscow
# Калининград (UTC+2)
/system/clock/set time-zone-name=Europe/Kaliningrad
# Москва (UTC+3)
/system/clock/set time-zone-name=Europe/Moscow
# Самара (UTC+4)
/system/clock/set time-zone-name=Europe/Samara
# Екатеринбург (UTC+5)
/system/clock/set time-zone-name=Asia/Yekaterinburg
# Омск (UTC+6)
/system/clock/set time-zone-name=Asia/Omsk
# Красноярск (UTC+7)
/system/clock/set time-zone-name=Asia/Krasnoyarsk
# Иркутск (UTC+8)
/system/clock/set time-zone-name=Asia/Irkutsk
# Якутск (UTC+9)
/system/clock/set time-zone-name=Asia/Yakutsk
# Владивосток (UTC+10)
/system/clock/set time-zone-name=Asia/Vladivostok
# Магадан (UTC+11)
/system/clock/set time-zone-name=Asia/Magadan
# Камчатка (UTC+12)
/system/clock/set time-zone-name=Asia/Kamchatka
/system/clock/set time-zone-name=Europe/Kiev
/system/clock/set time-zone-name=Europe/Minsk
# Западный Казахстан (UTC+5)
/system/clock/set time-zone-name=Asia/Aqtau
# Восточный Казахстан (UTC+6)
/system/clock/set time-zone-name=Asia/Almaty
/system/clock/print
time: 14:35:22
date: Mar/28/2026
time-zone-name: Europe/Moscow
gmt-offset: +03:00
dst-active: no
/system/ntp/client/set enabled=yes
/system/ntp/client/servers
add address=pool.ntp.org
add address=time.google.com
add address=time.cloudflare.com
/system/ntp/client/servers
add address=0.ru.pool.ntp.org
add address=1.ru.pool.ntp.org
add address=2.ru.pool.ntp.org
add address=3.ru.pool.ntp.org
# Украина
add address=0.ua.pool.ntp.org
# Беларусь
add address=0.by.pool.ntp.org
# Казахстан
add address=0.kz.pool.ntp.org
# Германия (популярный выбор для VPS)
add address=0.de.pool.ntp.org
/system/ntp/client/set mode=unicast
/system/ntp/client/print
enabled: yes
mode: unicast
status: synchronized
freq-drift: 4.294 PPM
synced-server: 185.209.85.222
synced-stratum: 2
system-offset: -0.496 ms
/system/clock/print
/system/ntp/client/servers/print detail
0 address=pool.ntp.org auth-key=none stratum=2
reach=yes current-address=185.209.85.222
1 address=time.google.com auth-key=none stratum=1
reach=yes current-address=216.239.35.8
2 address=time.cloudflare.com auth-key=none stratum=3
reach=yes current-address=162.159.200.1
/system/ntp/server/set enabled=yes
/ip/firewall/filter/add chain=input protocol=udp dst-port=123 \
src-address=192.168.88.0/24 action=accept \
comment="Allow NTP from LAN"
/ip/firewall/filter/add chain=input protocol=udp dst-port=123 \
in-interface-list=WAN action=drop \
comment="Block NTP from WAN"
# /etc/systemd/timesyncd.conf
[Time]
NTP=192.168.88.1
### Раздача NTP через DHCP (Option 42)
DHCP-опция 42 позволяет автоматически передавать адрес NTP-сервера клиентам при получении IP-адреса. Это избавляет от ручной настройки на каждом клиенте.
#### Настройка DHCP Option 42
Обратите внимание на формат значения — IP-адрес в одинарных кавычках внутри двойных.
Альтернативный способ — указать IP в hex-формате:
Где `0xC0A85801` = 192.168.88.1 в шестнадцатеричном формате.
#### Привязка опции к DHCP-серверу
Или при создании новой DHCP-сети:
#### Проверка на клиенте
После обновления DHCP-lease на клиенте проверьте, что NTP-сервер получен:
Не все клиентские ОС автоматически применяют DHCP Option 42. Windows и Linux обычно используют эту опцию, но поведение может зависеть от дистрибутива и настроек.
### GPS как источник времени
Некоторые модели MikroTik поддерживают GPS-модули (LtAP, SXT LTE, некоторые модели с mini-PCIe GPS). GPS предоставляет чрезвычайно точное время (stratum 0), что делает маршрутизатор полноценным NTP-сервером stratum 1.
#### Настройка GPS
Проверка GPS-статуса:
Пример вывода:
Когда GPS-модуль захватывает спутники (`valid: yes`), RouterOS автоматически использует GPS как источник времени с максимальным приоритетом. NTP-сервер на этом маршрутизаторе будет отдавать stratum 1.
#### Когда использовать GPS
- Когда маршрутизатор не имеет доступа к интернету (изолированные сети).
- Когда нужна максимальная точность времени.
- Когда маршрутизатор выступает первичным NTP-сервером для крупной сети.
Для большинства стандартных задач NTP-серверы из интернета предоставляют достаточную точность (единицы миллисекунд).
### Проверка корректности всей цепочки
После настройки рекомендуется проверить всю цепочку: внешний NTP → MikroTik → клиенты LAN.
#### На MikroTik
#### С клиента в LAN
Или:
### Типичные ошибки
#### 1. Время сбрасывается после перезагрузки
**Причина:** устройство не имеет батарейки RTC (большинство hAP, hEX, mAP). После перезагрузки часы сбрасываются.
**Решение:** NTP-клиент восстановит время автоматически после получения ответа от сервера. Убедитесь, что NTP-клиент включён и настроен. Обычно синхронизация происходит в течение нескольких секунд после загрузки (при наличии интернета).
Между перезагрузкой и NTP-синхронизацией может быть окно в несколько секунд с неправильным временем. Это может повлиять на скрипты Scheduler, запланированные на время, близкое к перезагрузке.
#### 2. NTP блокируется Firewall
**Причина:** правило Firewall блокирует исходящий UDP-порт 123 (NTP-запросы к внешним серверам) или входящий UDP-порт 123 (NTP-ответы от серверов для локальных клиентов).
**Решение:** убедитесь, что Firewall разрешает NTP-трафик:
Если используете строгий Firewall с chain=output:
#### 3. Статус «waiting» — нет синхронизации
**Причина:** NTP-серверы недоступны. Возможные причины:
- Нет интернета.
- DNS не работает (если указаны доменные имена серверов).
- Firewall блокирует UDP 123.
**Решение:**
Это IP-адреса Google NTP (time.google.com).
#### 4. Неправильный часовой пояс
**Причина:** часовой пояс не настроен или настроен неверно. Время синхронизировано по UTC, но отображается без учёта часового пояса.
**Решение:**
Полный список часовых поясов можно увидеть через Tab-completion:
Нажмите Tab дважды для отображения всех доступных вариантов.
#### 5. NTP-сервер MikroTik открыт в интернет
**Причина:** NTP-сервер включён, но Firewall не ограничивает доступ из WAN. Маршрутизатор может быть использован для NTP amplification DDoS-атаки.
**Решение:**
#### 6. Проблемы с SSL-сертификатами после восстановления бэкапа
После восстановления backup на устройстве без RTC-батарейки часы могут сброситься. SSL-сертификаты (например, Let's Encrypt) перестанут валидироваться, DOH не будет работать, VPN с сертификатами откажет в подключении.
**Решение:** убедитесь, что NTP-клиент настроен и приоритет его запуска высок. После восстановления backup дождитесь NTP-синхронизации перед проверкой сертификатов:
### Мониторинг точности времени
Для критичных инфраструктур рекомендуется мониторить точность NTP-синхронизации. Добавьте скрипт, который проверяет статус и отправляет уведомление при рассинхронизации: