Linux синхронизация времени (Установка настройка и диагностика chrony)

Оцените статью

Наш проект по миграции на отечественное ПО наконец то перешёл в Production-фазу и все теоретические наработки теперь переносим на физическое железо. С учётом закрытого контура и уже реальной инфраструктуры периодически наступаю на грабли.

Вчера например при запуске первого FreeIPA сервера я наступил на синхронизацию времени с Windows NTP-сервером. Таким образом я умудрился выпустить сертификат из будущего (not yet valid).

Установка и настройка chrony

Chrony — это современная, гибкая реализация протокола сетевого времени (NTP) для Linux-based систем, используемая для точной синхронизации системных часов. Она быстрее и точнее настраивает время, чем ntpd, особенно при перебоях в сети или частом включении/выключении. Состоит из демона chronyd и утилиты командной строки chronyc.

Устанавливаем и активируем chrony.

# dnf install chrony
# systemctl enable chrony

Добавляем в конфигурацию NTP-сервера из локальной сети (файл /etc/chrony.conf).

server 10.54.50.3 iburst
server 10.54.50.2 iburst

Перезапускаем сервис и проверяем статус.

# systemctl restart chronyd
# systemctl status chronyd
● chronyd.service - NTP client/server
     Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; preset: enabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Tue 2026-03-03 15:07:42 MSK; 11s ago
       Docs: man:chronyd(8)
             man:chrony.conf(5)
    Process: 35103 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
   Main PID: 35105 (chronyd)
      Tasks: 1 (limit: 2246)
     Memory: 832.0K
        CPU: 51ms
     CGroup: /system.slice/chronyd.service
             └─35105 /usr/sbin/chronyd

Запрашиваем статус синхронизации.

# timedatectl status
               Local time: Вт 2026-03-03 15:09:42 MSK
           Universal time: Вт 2026-03-03 12:09:42 UTC
                 RTC time: Вт 2026-03-03 12:10:56
                Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no

И вот здесь мы видим, что синхронизация не работает, проверим, что сервис NTP на NTP-сервере запущен.

# nmap -sU -p 123 -sV 10.54.50.3
Starting Nmap 7.98 ( https://nmap.org ) at 2026-03-03 15:11 +0300
Nmap scan report for dc02-vm-nux.sngp.com (10.54.50.3)
Host is up (0.0013s latency).

PORT    STATE SERVICE VERSION
123/udp open  ntp     NTP v3

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.32 seconds

Сервис запущен, но синхронизация не работает. Теперь запросим состояние обмена данными с источниками NTP.

# chronyc sources -v

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^? dc02-vm-nux.dom.com          2   6   377    54  +17923s[+17923s] +/-  10.4s
^? dc01-nux.dom.com             1   6   377    57  +17923s[+17923s] +/-  10.3s

Обратите внимание на статус ‘?’ = unusable для Source state. Это как раз особенность работы с Windows NTP-серверами и иногда может стрельнуть иногда нормально работает. Для устранения ошибки вносим правки в файл /etc/chrony.conf.

maxdistance 16.0

Презапускаем и проверяем, что синхронизация работает.

# systemctl restart chrony
# timedatectl status
              Local time: Вт 2026-03-03 10:19:54 MSK
          Universal time: Вт 2026-03-03 07:19:54 UTC
                RTC time: Вт 2026-03-03 07:19:54
               Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
             NTP service: active
         RTC in local TZ: no

С этой проблемой разобрались и синхронизация теперь работает. Также стоит отметить, что NTP-сервера в сети если они выдаются при помощи DHCP можно найти командой.

# nmap --script broadcast-dhcp-discover

Настройка часового пояса

Теперь нам надо установить системный часовой пояс сервера и это можно сделать так. Первым делом ищем как правильно называется наш часовой пояс.

# timedatectl list-timezones | grep Y
America/New_York
America/Yakutat
America/Yellowknife
Asia/Yakutsk
Asia/Yangon
Asia/Yekaterinburg
Asia/Yerevan
Australia/Yancowinna
Canada/Yukon
Pacific/Yap

Устанавливаем часовой пояс.

# timedatectl set-timezone Asia/Yekaterinburg
[root@rdc02-vm-nux etc]# date 
Вт 03 мар 2026 12:26:52 +05

Вот собственно так с проблемой и разобрался.

Диагностика и мониторинг

Основные команды chronyc

  • tracking — показывает текущую информацию о синхронизации.
    # chronyc tracking
    Ключевые поля:
    • Reference ID — источник времени.
    • Stratum — уровень иерархии NTP (1 — атомные часы, 2–3 — надёжные серверы).
    • System time — насколько системные часы отличаются от эталонных.
  • sources — список источников времени и их статус.
    # chronyc sources
    Поля:
    • ^* — текущий активный сервер.
    • ^- — сервер в списке, но не используется.
    • MS — метрика качества (чем меньше, тем лучше).
  • sourcestats — статистика по каждому источнику.
    # chronyc sourcestats # Показывает дрейф, задержки и другие параметры.
  • activity — количество активных/онлайн источников.
    # chronyc activity
  • manual — ручное управление (например, коррекция времени).
    # chronyc -a manual on chronyc -a manual set 10 # скорректировать на 10 секунд
    # chronyc -a manual off

Дополнительные настройки

  • Ограничение скорости запросов (чтобы не перегружать серверы): maxupdateskew 100
  • Автоматическое переключение на резервные серверы:
    Chrony делает это автоматически, если указаны несколько server/pool.
  • Синхронизация аппаратных часов (RTC):
    Добавьте в конфиг: rtcsync

Похожие записи

Топ-9 нейросетей для генерации изображений в 2026 году

Когда я решил побаловаться и поиграть с AI генераторами изображений я и не знал что их так много и раз уж начал веселиться, то поздно останавливаться. Я подготовил для вас…

Настройка взаимодействия RED ADM и Windows Active Directory

Сегодня проведем несколько экспериментов по настройке взаимодействия RED ADM и Windows Active Directory. Есть несколько способов настройки доверия для упрощения миграции с решений Microsoft на Российское ПО и сегодня их…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Топ-9 нейросетей для генерации изображений в 2026 году

Топ-9 нейросетей для генерации изображений в 2026 году

Настройка взаимодействия RED ADM и Windows Active Directory

Настройка взаимодействия RED ADM и Windows Active Directory

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Установка основного контроллера домена на базе REDADM

Установка основного контроллера домена на базе REDADM

zVirt работа с шаблонами виртуальных машин

zVirt работа с шаблонами виртуальных машин

Подробная инструкция по работе с томами (volumes) в Docker

Подробная инструкция по работе с томами (volumes) в Docker