Синхронизация времени с использованием Chrony
Chrony — это служба синхронизации времени, предназначенная для точного поддержания системного времени. В отличие от классического NTP-демона, Chrony обеспечивает более высокую точность в условиях нестабильных сетей, при больших задержках, а также на системах с нерегулярной загрузкой (например, на виртуальных машинах).
Chrony состоит из двух основных компонентов:
- chronyd — демон, выполняющий синхронизацию времени;
- chronyc — консольная утилита для управления демоном и получения статистики.
Основной файл конфигурации размещается по адресу /etc/chrony.conf.
В базовой конфигурации определяются:
- список внешних NTP-серверов:
ыserver ntp.server.example iburst
- файл дрейфа часов (погрешности локального кварца):
driftfile /var/lib/chrony/drift
- параметры доступа клиентов (при использовании Chrony как сервера):
allow 192.168.0.0/24
После внесения изменений необходимо перезапустить службу:
systemctl restart chronyd
Проверка, что служба запущена и работает корректно:
systemctl status chronyd
Служба chronyd отвечает за работу Chrony как клиента или сервера синхронизации времени. Управление службой осуществляется стандартными инструментами systemd:
- запуск и остановка службы:
systemctl start chronyd
systemctl stop chronyd
- включение автозапуска:
systemctl enable chronyd
- проверка статуса:
systemctl status chronyd
- перезагрузка службы для применения изменений конфигурации:
systemctl restart chronyd
Для проверки состояния и источников времени Chrony предоставляет две основные утилиты: chronyc tracking и chronyc sources.
Для просмотра текущего статуса синхронизации, который показывает, насколько локальное время синхронизировано с источником, используется:
chronyc tracking
Основные параметры утилиты:
- Reference ID / Name — с каким сервером синхронизируется система;
- Stratum — уровень источника времени;
- Last offset — последняя измеренная временная разница;
- Frequency — корректировка частоты локального генератора;
- Leap status — корректность времени (normal / insert / delete).
Для вывода всех доступных серверов времени используется:
chronyc sources -v
Статусы источников указываются в выводе в колонке MS:
- * — главный используемый источник (selected);
- + — кандидат на использование;
- ? — источник недоступен;
- x — источник отклонён как неверный;
- ~ — источник нестабилен.
Проверка смещения времени:
chronyc sourcestats
Проверка корректности локального времени (используется для принудительного мгновенного исправления времени):
chronyc makestep
Настройка Chrony в качестве сервера времени
В случае необходимости центральной синхронизации времени для группы рабочих станций Chrony может быть использован как локальный NTP-сервер. Это позволяет обеспечить единообразие времени в закрытом контуре или при отсутствии доступа к внешним серверам.
Чтобы предоставить другим узлам возможность синхронизироваться с данной машиной, в файле конфигурации /etc/chrony.conf требуется добавить строку:
allow <подсеть>
Например, для разрешения доступа внутренней сети 192.168.1.0/24:
allow 192.168.1.0/24
Необходимо убедиться, что служба chronyd запущена:
systemctl restart chronyd
Если сервер должен быть эталонным источником при отсутствии доступа к Интернету или NTP-сетям, используется директива:
local stratum 10
Директива указывает, что сервер предоставляет локальное время с определённым (не нулевым) stratum.
Для проверки доступности сервера со стороны клиента на клиентских системах необходимо выполнить команду:
chronyc sources
Сервер должен отображаться в списке источников времени со статусом "*" или "+".