Настройка локального сервера времени - ключевая задача системного администратора. В локальной сети всегда есть устройства с критической необходимостью точного отсчет времени - системы СКУД, часофикации, системы видеонаблюдения. Кроме того, на любом устройстве в сети с предустановленным браузером можно просто не выйти в Интернет, поскольку сертификаты безопасность SSL требуют точной настройки времени на хосте.
Итак приступим к созданию локального сервера времени на базе Ubuntu 26.04.
Для начала, если в системе остался старый пакет ntp, его лучше удалить, чтобы избежать конфликтов.
sudo apt purge ntp
Также проверьте systemd-timesyncd — если он активен, остановите и отключите его:
sudo systemctl stop systemd-timesyncd; sudo systemctl disable systemd-timesyncd
В Ubuntu 26.04 для роли NTP-сервера удобнее всего использовать пакет chrony - он стал стандартом для серверных версий.
Если chrony ещё не установлен, выполните:
sudo apt update; sudo apt install chrony
По умолчанию chrony не разрешает подключения от других машин. Нужно явно задать правила, какие сети или хосты смогут к нему обращаться.
Я рекомендую не править основной файл /etc/chrony/chrony.conf, а создать отдельный фрагмент в /etc/chrony/conf.d/ — так проще поддерживать настройки при обновлениях. Например:
sudo nano /etc/chrony/conf.d/local-ntp-server.conf
В этот файл добавьте директиву allow, указав подсети клиентов. Например:
allow 192.168.1.0/24
Можно добавить несколько строк allow для разных подсетей.
Опционально: если сервер может потерять связь с внешним источником времени, добавьте строку local stratum 10. Это позволит серверу продолжать раздавать время, опираясь на собственные системные часы (уровень stratum 10).
Чтобы сам сервер мог брать эталонное время, нужно указать источники. Для этого создайте файл в /etc/chrony/sources.d/. Например:
sudo nano /etc/chrony/sources.d/custom.sources
Добавьте строки с адресами серверов. Для публичных пулов или серверов, поддерживающих NTS (Network Time Security), укажите опцию nts:
server time.cloudflare.com iburst ntspool pool.ntp.org iburst maxsources 4
Для внутренних серверов без NTS опцию nts опускают. Опция iburst ускоряет начальную синхронизацию.
После редактирования файла выполните:
sudo chronyc reload sources
NTP использует UDP-порт 123. Если на сервере активен брандмауэр (например, UFW), разрешите входящий трафик:
sudo ufw allow 123/udp
После всех изменений перезагрузите systemd и перезапустите службу:
sudo systemctl daemon-reloadsudo systemctl restart chrony
Проверьте статус:
sudo systemctl status chrony
А также посмотрите, с какими серверами синхронизируется сам сервер и какие клиенты к нему подключаются:
sudo chronyc trackingsudo chronyc sources
Несколько советов
- Безопасность. Не открывайте доступ всем подряд - ограничивайте подсети в директиве allow.
- NTS. Если клиенты и сервер поддерживают NTS, включите эту опцию для шифрования трафика.
- Логи. При проблемах смотрите логи chrony
journalctl -u chrony.