Гид по технологиям

Установка и настройка Chrony (NTP) на Rocky Linux

• 6 min read • DevOps • Обновлено 21 Nov 2025
Chrony: NTP на Rocky Linux — установка и настройка
Chrony: NTP на Rocky Linux — установка и настройка

Схема работы NTP и Chrony на сервере и клиенте

Что такое NTP и Chrony

NTP (Network Time Protocol) — протокол для синхронизации системных часов в сети. Chrony — современная реализация NTP для Unix‑подобных систем. Chrony быстрее конвергирует и лучше работает на системах с переменным подключением, в виртуальных машинах и контейнерах.

Краткое определение: Chrony — демон (chronyd) и клиентская утилита (chronyc) для точной и устойчивой синхронизации времени.

Для кого это руководство

Это руководство рассчитано на системных администраторов и инженеров DevOps, у которых есть две машины Rocky Linux: одна будет сервером времени, другая — клиентом. Подойдёт как для Rocky Linux 8, так и для Rocky Linux 9.

Important: Требуется не‑root пользователь с sudo‑привилегиями на обоих хостах.

Сетевые примеры в руководстве

Используемые тестовые хосты:

Hostname        IP Address        Used as
-------------------------------------------
rocky8          192.168.5.100     NTP Server
client1         192.168.5.120     NTP Client

Установка Chrony

Chrony доступен в стандартном репозитории baseos Rocky Linux.

Проверьте пакет:

sudo dnf info chrony

Выполните установку:

sudo dnf install chrony -y

Запустите и включите сервис chronyd, чтобы он стартовал при загрузке:

sudo systemctl enable --now chronyd

Проверьте статус сервиса:

sudo systemctl status chronyd

Статус службы chronyd в systemctl

Быстрая методология настройки (mini‑метод)

  1. Установите chrony на все хосты.
  2. На сервере: укажите внешние источники времени и откройте доступ клиентам.
  3. На клиентах: укажите внутренний NTP‑сервер.
  4. Перезапустите сервис и проверьте синхронизацию через chronyc.

Настройка Chrony как NTP‑сервера

На сервере (rocky8, 192.168.5.100) откройте конфигурацию:

sudo nano /etc/chrony.conf

Советы по содержимому конфигурации:

  • Укажите пул NTP серверов ближе к вашей географии. Список доступен на https://www.ntppool.org/en/.
  • Используйте параметр iburst для ускоренного первоначального скачка времени.
  • Разрешите доступ клиентам через директиву allow.

Пример блоков в /etc/chrony.conf:

# список внешних серверов (пример для Швеции)
server 0.se.pool.ntp.org iburst
server 1.se.pool.ntp.org iburst
server 2.se.pool.ntp.org iburst
server 3.se.pool.ntp.org iburst

# разрешённая подсеть клиентов
allow 192.168.5.0/24

# при первом запуске шагнуть, если расхождение > 1.0 с в течение 3 обновлений
makestep 1.0 3

# файл ключей для аутентификации (при необходимости)
keyfile /etc/chrony.keys

# использовать базу временной зоны для сек/прыжков
leapsectz right/UTC

Сохраните изменения и перезапустите сервис:

sudo systemctl restart chronyd

Проверьте источники времени, которые использует сервер:

chronyc sources
chronyc sources -v

Список NTP источников на сервере

Подробная информация об источниках NTP

Настройка брандмауэра (firewalld)

Откройте сервис NTP во firewalld:

sudo firewall-cmd --add-service=ntp --permanent
sudo firewall-cmd --reload

Или добавьте более точное правило только для подсети:

sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.5.0/24' service='ntp' accept"
sudo firewall-cmd --reload

Проверьте текущие правила:

sudo firewall-cmd --list-all

Набор правил firewalld с открытым NTP

Security note: если у вас есть зональная политика, применяйте правила в нужную зону (например public или internal). Открывайте доступ только для нужных подсетей.

Настройка Chrony как NTP‑клиента

На клиенте (client1, 192.168.5.120) убедитесь, что chrony установлен:

sudo dnf install chrony -y

Откройте /etc/chrony.conf и укажите ваш локальный NTP‑сервер:

sudo nano /etc/chrony.conf

Замените или добавьте строку сервера:

server 192.168.5.100 iburst prefer

Параметры:

  • iburst — первое ускоренное обновление при старте.
  • prefer — ставит этот сервер в приоритет при выборе источника.

Перезапустите службу:

sudo systemctl restart chronyd

Проверьте состояние синхронизации на клиенте:

chronyc tracking

Вы увидите, к какому серверу синхронизируется клиент и текущее смещение.

Результат chronyc tracking с адресом сервера

Подробные данные о соединении:

chronyc ntpdata

Вывод покажет Remote address (адрес NTP‑сервера) и Local address (адрес клиента).

Вывод chronyc ntpdata с Remote и Local address

Список источников на клиенте:

chronyc sources
chronyc sources -v

Список источников на клиенте с предпочитаемым локальным сервером

Команды‑шпаргалка (cheat sheet)

  • sudo systemctl enable –now chronyd — включить и запустить сервис.
  • sudo systemctl restart chronyd — перезапустить сервис.
  • sudo systemctl status chronyd — статус сервиса.
  • chronyc tracking — текущее состояние синхронизации.
  • chronyc sources — активные источники времени.
  • chronyc sources -v — подробные сведения об источниках.
  • chronyc ntpdata — детальные данные соединения к удалённому серверу.
  • chronyc makestep — принудительно скорректировать системное время (редко требуется).

Диагностика и распространённые проблемы

Когда синхронизация не проходит:

  1. Проверьте, доступен ли NTP‑порт (UDP/123) между клиентом и сервером:
    sudo ss -u -a | grep 123 или sudo nc -vzu 192.168.5.100 123
  2. Убедитесь, что в /etc/chrony.conf разрешены нужные подсети (allow).
  3. Проверьте правила firewalld/iptables и SELinux (если включён).
  4. На клиенте посмотрите chronyc sources -v — если сервер помечен с «?», то есть проблемы связи.
  5. Если виртуальная машина теряет время при старте, добавьте makestep 1.0 3 в конфиг.

Пример: если клиент пишет «No association», значит он не может установить связь с сервером (сетевая проблема или брандмауэр).

Когда Chrony не подходит — альтернативы

  • ntpd (традиционный демон NTP): более старый, хорошо известен, но медленнее в некоторых сценариях.
  • systemd‑timesyncd: лёгкий клиент без серьезных серверных возможностей, подходит для простых десктопов.

Выбор: для инфраструктуры с требованиями к точности и устойчивости Chrony обычно предпочтительнее.

Рекомендации по безопасности и жёсткие настройки

  • Ограничьте доступ директивой allow только нужными подсетями.
  • Если требуется аутентификация NTP, настройте ключи в /etc/chrony.keys и включите соответствующие параметры.
  • Включите журналирование и мониторинг (syslog/journald) для chronyd.
  • Обновляйте пакет Chrony из официального репозитория и следите за CVE‑оповещениями.

Роли и чек-листы (role‑based checklists)

Администратор сети:

  • Убедиться, что порт UDP/123 открыт между серверами и клиентами.
  • Настроить firewalld rich rule для нужной подсети.

Системный администратор сервера времени:

  • Настроить внешние NTP‑пулы с iburst.
  • Добавить makestep для первоначального выравнивания.
  • Настроить мониторинг наличия входящих запросов.

Инженер DevOps на клиенте:

  • Проверить, что клиент указывает на правильный сервер.
  • Верифицировать синхронизацию через chronyc tracking.
  • Проверить логи на предмет ошибок.

Критерии приёмки

  • Сервер chronyd активен и использует внешние источники (chronyc sources -v).
  • Клиент показывает состояние SYNCH (synchronized) в chronyc tracking.
  • Пакеты NTP (UDP/123) доходят от клиента к серверу (проверка сети).
  • Firewalld содержит правило для сервиса ntp или соответствующую rich rule.

Тестовые сценарии (test cases)

  1. Установка: после dnf install chrony служба должна быть доступна (systemctl status).
  2. Серверные источники: chronyc sources показывает внешние сервера.
  3. Клиентская синхронизация: chronyc tracking показывает смещение < 1 с и режим SYNCH.
  4. Отказ сети: при блокировке UDP/123 клиент теряет связь — проверка корректной обработки ошибок.

Тонкости и когда подход не сработает

  • На системах с крайне нестабильным сетевым соединением или с очень редким подключением лучше использовать более агрессивные параметры iburst и makestep, но делать это осторожно — резкие перескоки времени могут нарушить работу приложений.
  • В средах с распределёнными дата‑центрами и SLA по 1–10 мс рассмотрите NTP вкупе с PTP (Precision Time Protocol) для локальных подсетей.

Быстрое руководство по откату (rollback)

Если после изменения конфигурации начали проблемы, сделайте:

sudo cp /etc/chrony.conf.bak /etc/chrony.conf   # если вы заранее сохранили бэкап
sudo systemctl restart chronyd

Если бэкапа нет, восстановите конфигурацию с минимальными рабочими параметрами: внешние серверы из ntppool и уберите специфичные правила allow, затем перезапустите.

Факто‑бокс: ключевые команды и файлы

  • Конфигурация: /etc/chrony.conf
  • Демон: chronyd
  • CLI: chronyc
  • Открыть порт в firewalld: firewall‑cmd –add-service=ntp
  • Проверка связи: chronyc sources -v, chronyc tracking

Заключение

Поздравляем — вы установили и настроили Chrony как NTP‑сервер и NTP‑клиент на Rocky Linux. Вы узнали, какие параметры важны для начальной настройки, как открыть порт во фаерволе, как проверить работу через chronyc и какие шаги предпринять при проблемах.

Summary: настройте сервер с пулом внешних источников, разрешите доступ только нужным подсетям, настройте клиентов указывать на локальный сервер и протестируйте синхронизацию.

Notes: для продакшн‑инфраструктуры добавьте мониторинг доступности NTP и периодическую проверку смещения времени.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро