timedatectl, а системные часы синхронизирует chrony: демон chronyd и его клиент chronyc. После настройки недостаточно увидеть активную службу: проверьте timedatectl, выбранный NTP-источник в chronyc sources и состояние синхронизации в chronyc tracking. Команды ниже относятся к явно перечисленным релизам; для другого выпуска имена unit, пути и исходную конфигурацию нужно сверить с документацией поставщика ОС и chrony.Поддерживаемые релизы и различия в chrony
Инструкция составлена по документации Ubuntu Server 22.04 LTS и 24.04 LTS, Debian 12, RHEL 8 и 9, Rocky Linux 8 и 9, AlmaLinux 8 и 9, а также CentOS Stream 9. CentOS Linux 7 и CentOS Linux 8 сюда не входят: их статус и различия с Stream разобраны в статье «CentOS Stream и CentOS 7: статус поддержки, различия и выбор сценария».
Пакет, unit и основной файл конфигурации для указанных релизов
| Семейство и релизы | Пакет | Systemd unit | Основной конфигурационный файл |
|---|---|---|---|
| Ubuntu Server 22.04/24.04; Debian 12 | chrony | chrony.service | /etc/chrony/chrony.conf |
| RHEL 8/9; Rocky Linux 8/9; AlmaLinux 8/9; CentOS Stream 9 | chrony | chronyd.service | /etc/chrony.conf |
Проверяйте конкретный релиз
chrony обычно устанавливает и chronyd, и chronyc, но имена unit, включаемые файлы и исходные источники могут меняться между дистрибутивами и релизами. Не переносите путь, unit или конфигурацию с другого сервера без проверки. Точный синтаксис директив и доступные поля chronyc сверяйте с руководством chrony, поставляемым для вашего выпуска ОС.Сначала определите ОС и текущее состояние времени
Не смешивайте три сущности. Системные часы — время, которым пользуются ядро и процессы. RTC, или аппаратные часы, сохраняют время при выключенном сервере. Часовой пояс — правило представления локального времени. Смена часового пояса не исправляет неверные системные часы: она меняет только отображение local time и расчёт локального времени для программ.
cat /etc/os-release && uname -rtimedatectl statusLocal time: Sat 2026-09-26 14:30:00 MSK
Universal time: Sat 2026-09-26 11:30:00 UTC
RTC time: Sat 2026-09-26 11:30:01
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: noLocal time — отображение с учётом зоны; Universal time — UTC-представление системных часов; RTC time — показания аппаратных часов. System clock synchronized: yes означает, что systemd считает системные часы синхронизированными. NTP service отражает службу, которую systemd распознаёт как поставщика синхронизации, а не обязательно именно chrony. RTC in local TZ: no обычно означает хранение RTC в UTC.
Не исправляйте время сменой зоны и не устанавливайте дату вручную без необходимости
Для серверов обычно удобен RTC в UTC, но это не универсальное требование: учиты вайте политику организации, гипервизор, ОС в dual boot и рекомендации поставщика платформы. timedatectl показывает текущий режим через RTC in local TZ. Не меняйте его только ради устранения неверного отображения local time — сначала настройте часовой пояс и синхронизацию системных часов.
Установите правильный часовой пояс через timedatectl
Поиск и установка часового пояса
timedatectl работает в системах с systemd. Команда изменения зоны не должна использоваться для ручной коррекции отставания или спешки часов.
- 1Найдите идентификатор зоныВыведите известные зоны и отфильтруйте нужный регион. Например, для поиска московской зоны используйте
timedatectl list-timezones | grep -i moscow. Выберите идентификатор форматаRegion/City, а не сокращение вродеMSK. - 2Установите зонуВыполните
sudo timedatectl set-timezone Europe/Moscow, заменив значение на выбранный идентификатор. Команда меняет настройку часового пояса; системное время при этом не должно сдвигаться. - 3Подтвердите результатВыполните
timedatectl status. Убедитесь, что строкаTime zoneсодержит ожидаемый идентификатор и смещение. СверьтеUniversal timeиLocal time: разница должна соответствовать зоне.
По документации systemd, timedatectl set-timezone устанавливает системную временную зону, а timedatectl set-ntp true|false запрашивает включение или отключение доступной службы сетевой синхронизации. Наличие команды, перечень отображаемых полей и фактический результат зависят от версии systemd, дистрибутива и установленной NTP-службы. set-ntp true не обязан устанавливать, выбирать или настраивать chrony; на части систем он управляет systemd-timesyncd, а без подходящей службы может завершиться ошибкой.
Установите chrony и исключите второй NTP-клиент
Chrony состоит из демона chronyd, который корректирует системные часы, и chronyc — утилиты просмотра состояния и управления. До установки или включения chrony установите, какая служба уже управляет временем. Одновременная работа нескольких NTP-клиентов на одном хосте создаёт конфликтующие корректировки.
timedatectl status
systemctl list-units --type=service --state=running | grep -Ei 'chrony|chronyd|timesync|ntp'
systemctl list-unit-files --type=service | grep -Ei 'chrony|chronyd|timesync|ntp'Если активен systemd-timesyncd.service или другой NTP-клиент, не запускайте chrony параллельно. Подтвердите назначение текущего клиента, затем остановите и отключите именно его штатным способом, если по политике сервера его заменяет chrony. Для systemd-timesyncd на системах, где этот unit существует, обычно применяют sudo systemctl disable --now systemd-timesyncd.service; затем повторно проверьте статус. Не выполняйте команду вслепую: unit может отсутствовать, быть маскированным либо пакет chrony может штатно заменять или отключать другой time-daemon. Различия сверяйте по официальным материалам: Ubuntu Server — синхронизация времени с chrony, пакет chrony в Debian 12, руководства RHEL 8 и RHEL 9, а для производных дистрибутивов — официальные записи пакета chrony в репозиториях Rocky Linux, AlmaLinux и CentOS Stream.
Перед установкой обновите индекс пакетов и проверьте план пакетной операции по инструкциям «APT в Ubuntu и Debian: установка, обновление, удаление и очистка пакетов» или «DNF и YUM: установка, обновление и удаление пакетов».
Установка chrony
- 1Ubuntu Server или DebianНа Ubuntu Server 22.04/24.04 LTS и Debian 12 установите пакет:
sudo apt update && sudo apt install chrony. - 2RHEL-подобная системаНа RHEL 8/9, Rocky Linux 8/9, AlmaLinux 8/9 и CentOS Stream 9 установите пакет:
sudo dnf install chrony. В среде, гдеyumостаётся совместимой командой, предпочтительнее ориентироваться наdnfиз документации текущего релиза. - 3Проверьте установкуВыполните
chronyc -vиrpm -q chronyв RPM-семействе либоdpkg-query -W chronyв DEB-семействе. Версия chrony понадобится при сравнении формата вывода с документацией.
Настройка NTP-источников в chrony
Используйте только NTP-серверы, разрешённые организацией, или пулы, рекомендованные поставщиком ОС для конкретной сети. На корпоративном сервере источники нередко задаются внутренней политикой, DHCP или средствами управления конфигурацией. Не заменяйте работающий список случайными публичными серверами: это может нарушить требования безопасности, маршрутизацию и ожидаемую схему времени.
В Ubuntu Server и Debian 12 основной файл — /etc/chrony/chrony.conf; в RHEL 8/9, Rocky Linux 8/9, AlmaLinux 8/9 и CentOS Stream 9 — /etc/chrony.conf. Внутри могут быть include, confdir или sourcedir: источники могут поступать из дополнительных файлов. До правки сохраните исходный файл и выясните, какие директивы уже подключены. Не удаляйте неизвестные строки: среди них могут быть параметры доступа, журналирования, сохранения дрейфа или источники, управляемые ОС.
# Пример: замените имена на источники, утверждённые в вашей сети
server ntp1.example.internal iburst
server ntp2.example.internal iburst
# Либо используйте разрешённый политикой пул:
# pool pool.example.internal iburstДиректива server задаёт один NTP-источник по имени или адресу; pool задаёт пул, из которого chrony выбирает несколько источников. Опция iburst ускоряет начальные измерения после запуска или появления источника. driftfile задаёт файл, где chronyd хранит оценку систематического хода часов; путь зависит от дистрибутива и исходного конфига, поэтому сохраните используемое в нём значение. Формат makestep threshold limit разрешает скачкообразную коррекцию, если требуемое смещение больше threshold, но только для ограниченного числа обновлений limit; отрицательное значение лимита допускает такое поведение без ограничения. Доступные опции и их точная семантика зависят от версии chrony.
makestep может резко изменить системное время
makestep chronyd обычно корректирует время постепенно, изменяя частоту системных часов. Step-коррекция сразу меняет значение часов. Пример makestep 1.0 3 часто используют, чтобы исправить крупную ошибку вскоре после старта, но он не является обязательным и безопасным для каждого приложения. Не добавляйте makestep с неограниченным лимитом на работающий сервер без оценки последствий.Изменение источников chrony
- 1Сохраните и прочитайте текущую конфигурациюДля DEB-систем используйте
sudo cp -a /etc/chrony/chrony.conf /etc/chrony/chrony.conf.bak, для RPM-систем —sudo cp -a /etc/chrony.conf /etc/chrony.conf.bak. Затем просмотрите файл и его директивы включения. - 2Добавьте либо замените источникиОтредактируйте основной файл или предусмотренный поставщиком подключаемый файл. Оставьте только согласованный набор
serverи/илиpool, если именно это является целью изменения. Не дублируйте старые и новые источники случайно. - 3При мените изменения и проверьте источникПерезапустите целевой unit chrony, затем выполните
chronyc sources -vиchronyc tracking. Точный способ перезапуска и расширенная диагностика unit описаны в «systemd и systemctl: управление службами и автозагрузкой Linux».
Запустите chronyd и включите автозагрузку
Имя Systemd unit зависит от семейства ОС: на Ubuntu Server и Debian из перечисленных релизов используется chrony.service, в указанных RHEL-подобных системах — chronyd.service. active означает, что процесс службы запущен, но само по себе не доказывает синхронизацию.
| Система | Запуск и автозагрузка | Проверка |
|---|---|---|
| Ubuntu Server 22.04/24.04; Debian 12 | sudo systemctl enable --now chrony.service | systemctl status chrony.service |
| RHEL 8/9; Rocky Linux 8/9; AlmaLinux 8/9; CentOS Stream 9 | sudo systemctl enable --now chronyd.service | systemctl status chronyd.service |
После изменения конфигурации используйте sudo systemctl restart chrony.service или sudo systemctl restart chronyd.service для соответствующего релиза. Если unit не найден, не подставляйте имя от другого дистрибутива: проверьте установленный пакет и systemctl list-unit-files. Разбор состояний failed, inactive и Unit not found находится в «Служба systemd не запускается: диагностика ошибок и восстановление».
Проверка NTP-синхронизации через chronyc
Сразу после запуска службы, перезагрузки или замены источников синхронизация может ещё не установиться. Дайте chronyd получить измерения, затем провер яйте состояние несколькими командами. Набор полей и формат вывода различаются между версиями chrony, поэтому ориентируйтесь на признаки, а не на фиксированные столбцы.
chronyc sources -vИщите строку с `^*`: это источник, выбранный для синхронизации. `^+` — пригодный дополнительный кандидат. `^?` обычно означает, что источник пока недоступен или от него нет валидных измерений. Поле Reach — восьмеричный регистр недавних успешных ответов: `0` означает отсутствие успешных ответов, а ненулевое значение — что ответы были.chronyc trackingПроверьте `Reference ID` или имя источника, `Stratum`, `System time`, `Last offset` и `Leap status`. Обычное синхронизированное состояние — `Leap status : Normal`. Значения `Insert second` и `Delete second` могут появиться при объявленной вставке или удалении секунды и сами по себе не означают потерю синхронизации. `Not synchronised` означает, что chronyd не синхронизировал часы.chronyc activitytimedatectl statusЕсли chrony запущен, но время не синхронизируется
Проблема
Служба active, но chronyc tracking показывает Not synchronised
Возможные причины
- В конфигурации неверное имя источника, адрес либо включаемый файл.
- После запуска ещё не накоплены измерения.
- Одновременно действует другой NTP-клиент.
- Служба читает не тот файл, который был отредактирован, либо конфигурация не была применена.
Решение
Проверьте systemctl status целевого unit, фактические server и pool в основном файле и подключаемых файлах, затем chronyc sources -v, chronyc activity и chronyc tracking. Убедитесь, что второй клиент времени остановлен. Посмотрите сообщения chronyd через journalctl -u chrony.service в Ubuntu/Debian или journalctl -u chronyd.service в RHEL-подобной системе. Работа с журналами подробно описана в «Журналы Linux: journalctl, rsyslog и logrotate». Если локальная конфигурация и состояние службы корректны, а ответы от источников не появляются, переходите к отдельной диагностике сети, маршрутизации, UDP-пути и DNS.
Как избежать
Фиксируйте утверждённые источники времени в управляемой конфигурации, не запускайте несколько NTP-клиентов и проверяйте `sources -v` с `tracking` после каждого изменения.
Проблема
Время в журналах выглядит неверным
Возможные причины
- Неверно выбран часовой пояс.
- Ранее системные часы были неверны, и старые записи уже получили неверные метки.
- При загрузке системные часы были инициализированы из неверно настроенного RTC до последующей NTP-коррекции.
- Была выполнена крупная step-коррекция.
Решение
Сначала сравните Local time, Universal time, RTC time, Time zone и RTC in local TZ в timedatectl status. Небольшое текущее расхождение между RTC и системными часами само по себе не доказывает ошибку. Если выбрана неверная зона, установите правильную способом из раздела выше: это исправит локальное представление абсолютных меток в инструментах, использующих текущую системную зону. Затем подтвердите текущую NTP-синхронизацию через chronyc tracking. Смена зоны или ручная установка даты не перепишет метки, созданные при неверных системных часах, и не исправит локальное время, уже записанное приложением непосредственно в текст журнала. Для поиска и интерпретации записей используйте «Журналы Linux: journalctl, rsyslog и logrotate».
Как избежать
Устанавливайте часовой пояс при вводе сервера в эксплуатацию, храните RTC в согласованном с платформой режиме и контролируйте NTP-синхронизацию до запуска критичных приложений.
Граница этой инструкции
chronyc sources -v показывает недоступные источники или имя не разрешается, сначала сверьте записи server и pool с утверждённым списком вашей организации и исправьте опечатки либо устаревшие значения. Не подменяйте диагностику случайным выбором публичных серверов. Если конфигурация верна, но разрешение имён или ответы от источников не появляются, переходите к отдельной диагностике маршрутиз ации, фильтрации NTP-трафика и сетевой достижимости. Настройка системного DNS разобрана в «Настройка DNS-резолвера в Linux: resolv.conf и systemd-resolved».Термины в статье
- Гипервизор
- Программный слой, который абстрагирует ресурсы физического хоста, выполняет виртуальные машины и управляет ими.
- Демон
- Демон — обычно длительно работающий неинтерактивный процесс, который в фоне выполняет системную, сетевую или прикладную функцию.
- Дистрибутив Linux
- Дистрибутив Linux — готовая операционная система на базе ядра Linux, включающая набор программ, репозитории, пакетный менеджер и правила обновления и сопровождения.
- Индекс пакетов
- Индекс пакетов — набор метаданных репозитория, содержащий сведения о версиях, зависимостях, архитектурах и расположении доступных пакетов.
- Процесс
- Процесс — экземпляр выполняемой программы в Linux с PID, виртуальным адресным пространством, состоянием и связанными с ним ресурсами.
- Системная служба
- Системная служба — программный компонент, которым ОС управляет как логической единицей для фонового выполнения задач или предоставления функций программам и пользователям.
- AlmaLinux
- AlmaLinux — корпоративный дистрибутив Linux, поддерживаемый сообществом и AlmaLinux OS Foundation, ориентированный на совместимость с интерфейсами и экосистемой RHEL.
- CentOS Linux
- CentOS Linux — прекращённый свободно доступный дистрибутив Linux, создававшийс я из исходных пакетов RHEL и ориентированный на бинарную совместимость с соответствующим выпуском RHEL.
- CentOS Stream
- CentOS Stream — дистрибутив Linux с непрерывной поставкой пакетов, формирующих следующую минорную версию Red Hat Enterprise Linux; он расположен между Fedora и RHEL.
- chrony
- chrony — программный комплекс для синхронизации системного времени по NTP, рассчитанный в том числе на нестабильную сеть и периодические подключения.
- Cron
- Cron — служба-планировщик в Unix-подобных ОС, запускающа я команды по расписаниям из таблиц crontab, обычно с минутной дискретностью.
- Debian
- Debian — универсальный дистрибутив Linux с пакетами DEB и системой APT, известный консервативной веткой Stable и разделением репозиториев по веткам разработки.
- journalctl
- journalctl — консольная утилита чтения и фильтрации журнала systemd, выводящая сообщения по времени, юниту, загрузке системы, приоритету и другим полям.
- LTS
- LTS — модель выпуска ПО с продлённым периодом сопровождения, в котором и справления безопасности и критических ошибок поставляются дольше обычного релиза.
- NTP
- NTP — сетевой протокол синхронизации системных часов с источниками точного времени, оценивающий смещение часов и сетевую задержку по временным меткам.
- RHEL
- RHEL — корпоративный дистрибутив Linux от Red Hat с фиксированными основными версиями, сертификационной экосистемой и моделью сопровождения, зависящей от подписки.
- Rocky Linux
- Rocky Linux — корпоративный дистрибу тив Linux, создаваемый из исходных пакетов экосистемы RHEL и ориентированный на совместимость с RHEL без использования его товарных знаков.
- RTC
- RTC — аппаратные часы реального времени, сохраняющие дату и время при выключенном сервере благодаря резервному источнику питания; это не системные часы ОС.
- systemctl
- systemctl — командная утилита управления systemd, которая запускает и останавливает юниты, показывает их состояние и настраивает автоматическую активацию.
- systemd
- systemd — система инициализации и менеджер служб Linux, управляющий службами и другими ресурсами как объектами unit, обычно описанными unit-файлами.
- Ubuntu Server
- Ubuntu Server — серверный вариант дистрибутива Ubuntu на базе Debian с APT и типовыми средствами автоматизации, доступный в виде установочных и готовых образов.
