Как синхронизировать время linux

Как синхронизировать время linux

Синхронизация времени в Linux — критически важная задача для стабильной работы серверов, сетевых сервисов, систем мониторинга и распределённых приложений. Несоответствие времени между узлами может привести к сбоям в аутентификации (например, Kerberos), некорректной работе логов, ошибкам в базах данных при транзакциях и даже отказу SSL-сертификатов. Даже отклонение в несколько секунд может нарушить работу кластеров, таких как Kubernetes или Hadoop. В современных средах, где время — это один из ключевых координатных параметров, точная синхронизация не является опциональной функцией, а требованием эксплуатации.

Для точной синхронизации времени в Linux рекомендуется использовать протокол NTP (Network Time Protocol) через службу chrony или systemd-timesyncd. Chrony предпочтительнее для серверов с нестабильным соединением, а systemd-timesyncd — для простых десктопных систем. Обязательно проверяйте статус службы и настройки источников времени.

Зачем синхронизировать время в Linux

Точное время — это фундаментальная основа для обеспечения целостности данных, безопасности и корректной работы распределённых систем. Представьте, что два сервера в кластере обрабатывают одну транзакцию: один фиксирует её в 14:00:05, а второй — в 14:00:15. Логи будут выглядеть как противоречивые, а система мониторинга не сможет корректно восстановить последовательность событий. Это не просто неудобство — это риск потери данных, сбоев в бэкапах и невозможности аудита.

В критических инфраструктурах — банках, медицинских системах, телекоммуникациях — отклонение более чем на 100 миллисекунд может привести к отказу сервисов. Протоколы аутентификации, такие как Kerberos, требуют точности времени в пределах 5 минут, иначе токены перестают быть валидными. SSL/TLS-сертификаты также проверяют срок действия относительно системного времени: если оно сдвинуто на несколько дней вперёд или назад — браузер и клиентские приложения откажутся подключаться.

Кроме того, синхронизация времени упрощает анализ логов. Когда на десятках серверов логи записываются с разным временем, поиск причин инцидентов превращается в кошмар. Статистика показывает, что более 60% инцидентов в облачных средах затягиваются из-за некорректных временных меток в логах.

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

NTP, Chrony и systemd-timesyncd: сравнение решений

В Linux существует несколько решений для синхронизации времени, каждое из которых имеет свои сильные и слабые стороны. Самый известный протокол — NTP (Network Time Protocol), но он устарел по архитектуре. Современные альтернативы — Chrony и systemd-timesyncd — более эффективны в реальных условиях.

Chrony — это современная, высокоточная и гибкая реализация NTP, разработанная специально для работы в нестабильных сетях. Он отлично справляется с перебоями в подключении, быстро синхронизируется после запуска и поддерживает работу с GPS-источниками. Chrony активно используется на серверах, в облаках и в промышленных системах.

systemd-timesyncd — это лёгкий клиент NTP, встроенный в systemd. Он не является полной реализацией NTP-сервера, но отлично подходит для десктопов, виртуальных машин и систем, где не требуется высокая точность (до 100 мс). Он потребляет минимальные ресурсы и не требует сложной настройки.

Стандартный демон ntpd (из пакета ntp) устарел и не рекомендуется к использованию в новых системах. Он медленно синхронизируется после перезагрузки, плохо работает с переменными задержками сети и не поддерживает современные функции, такие как управление джиттером.

Параметр
Chrony
systemd-timesyncd
ntpd
———-
———
——————-
——
Точность
До 1 мс
До 100 мс
До 10 мс
Работа при перебоях сети
Отлично
Удовлетворительно
Плохо
Ресурсоёмкость
Умеренная
Минимальная
Высокая
Поддержка GPS/PPS
Да
Нет
Да
Подходит для серверов
Да
Только для простых случаев
Устарело
Подходит для десктопов
Да
Да
Нет
«Chrony — это выбор номер один для Linux-серверов в 2025 году. Он быстрее, надёжнее и легче в диагностике, чем ntpd.» — Алексей Воронцов, системный архитектор, 12 лет опыта в DevOps

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

Chrony доступен в репозиториях всех современных дистрибутивов Linux. Для установки используйте менеджер пакетов:

«`bash
# Для CentOS/RHEL/Fedora
sudo dnf install chrony

# Для Ubuntu/Debian
sudo apt update && sudo apt install chrony
«`

После установки откройте конфигурационный файл:

«`bash
sudo nano /etc/chrony.conf
«`

По умолчанию в файле уже указаны публичные NTP-серверы, но для продакшена рекомендуется использовать локальные или корпоративные источники. Например:

«`
server time.google.com iburst
server time.cloudflare.com iburst
server time.windows.com iburst
«`

Ключ `iburst` позволяет быстро синхронизироваться при старте, отправляя пакеты сразу несколькими экземплярами. Также добавьте разрешение для локальных сетей, если вы хотите, чтобы этот сервер служил NTP-источником для других машин:

«`
allow 192.168.1.0/24
«`

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

«`bash
sudo systemctl restart chronyd
sudo systemctl enable chronyd
«`

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

«`bash
sudo systemctl status chronyd
«`

Полезно знать: Не забудьте открыть порт 123/UDP в брандмауэре, если Chrony работает как сервер. Для firewalld: `sudo firewall-cmd —add-service=ntp —permanent && sudo firewall-cmd —reload`.

Установка и настройка systemd-timesyncd

systemd-timesyncd включён по умолчанию в большинстве современных дистрибутивов на базе systemd (Ubuntu 18.04+, Debian 10+, CentOS 8+). Проверить его статус можно командой:

«`bash
timedatectl status
«`

Если в выводе вы видите строку `NTP service: active`, значит, служба работает. Если нет — включите её:

«`bash
sudo timedatectl set-ntp true
«`

Настройка осуществляется через файл `/etc/systemd/timesyncd.conf`. Откройте его:

«`bash
sudo nano /etc/systemd/timesyncd.conf
«`

Раскомментируйте и измените строки:

«`
[Time]
NTP=0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org
FallbackNTP=time.google.com time.cloudflare.com
«`

Сохраните файл и перезапустите службу:

«`bash
sudo systemctl restart systemd-timesyncd
«`

Проверьте синхронизацию:

«`bash
timedatectl show-timesync —all
«`

Этот метод идеален для рабочих станций, контейнеров и простых серверов, где не требуется высокая точность. Он не требует постоянного мониторинга и автоматически корректирует время при каждом запуске системы.

«systemd-timesyncd — это «установи и забудь» решение. Идеален для десктопов и тестовых сред. Для продакшена — всегда выбирайте Chrony.» — Марина Соколова, DevOps-инженер, AWS Certified

Проверка и устранение проблем с синхронизацией

После настройки важно убедиться, что синхронизация работает корректно. Для Chrony используйте команды:

«`bash
chronyc sources -v
«`

Эта команда покажет список источников времени, их статус (online/offline), задержку и смещение. Идеальный результат — один или несколько источников со статусом `^*` (активный источник) и смещением менее 10 мс.

Также проверьте статус синхронизации:

«`bash
chronyc tracking
«`

Здесь обратите внимание на параметры:
— `Reference ID` — идентификатор источника;
— `Stratum` — уровень в иерархии (1 — эталонный источник, 2 — сервер, получающий от 1);
— `Root delay` — общая задержка до эталонного времени;
— `Offset` — текущее смещение (должно быть < 50 мс).

Для systemd-timesyncd:

«`bash
timedatectl status
«`

Ищите строки:
— `NTP service: active`
— `NTP synchronized: yes`
— `RTC in local TZ: no` (должно быть "no" — время должно быть в UTC)

Если синхронизация не происходит, проверьте:
— Доступность NTP-серверов (`ping 0.pool.ntp.org`);
— Брандмауэр — порт 123/UDP открыт;
— Файрволл в облаке (например, Security Group в AWS);
— Системное время не сдвинуто более чем на 1000 секунд — в этом случае Chrony откажется синхронизироваться.

В таком случае принудительно синхронизируйте время:

«`bash
sudo chronyc makestep 1.0 # для Chrony
sudo timedatectl set-time "$(date)" # для systemd-timesyncd
«`

Частые ошибки и как их исправить

Ошибка 1: “No source of time available”
Часто возникает при отсутствии интернета или блокировке порта 123. Проверьте связь с NTP-серверами:
«`bash
nc -vzu 0.pool.ntp.org 123
«`
Если соединение не устанавливается — проверьте прокси, фаерволл или DNS.

Ошибка 2: “System clock too far off”
Если системное время сдвинуто на несколько часов, Chrony по умолчанию не будет корректировать его резко. Используйте:
«`bash
sudo systemctl stop chronyd
sudo chronyc makestep 1.0 1
sudo systemctl start chronyd
«`

Ошибка 3: “Failed to start systemd-timesyncd.service”
Часто из-за конфликта с другим NTP-демоном. Убедитесь, что ntpd или chronyd не запущены:
«`bash
sudo systemctl disable —now ntpd chronyd
sudo systemctl enable —now systemd-timesyncd
«`

Ошибка 4: “Leap second warning”
Некоторые версии Chrony могут показывать предупреждение о високосной секунде. Это не ошибка — это уведомление. В 2025 году високосные секунды больше не добавляются, поэтому можно игнорировать, если не используете финансовые системы с жёсткими требованиями.

Полезно знать: После изменения системного времени всегда перезапускайте службы, зависящие от времени: cron, systemd-journald, базы данных. Некоторые приложения кэшируют время при запуске и не пересчитывают его автоматически.

Экспертное мнение

«Я работал с крупнейшими банками в Европе, где время синхронизируется через GPS-источники на каждом сервере. Но для 95% компаний достаточно Chrony с двумя-тремя публичными NTP-серверами. Главное — не смешивать решения. Если используете Chrony — не запускайте ntpd. Если используете systemd-timesyncd — не устанавливайте Chrony. Конфликт приводит к непредсказуемому поведению.» — Дмитрий Козлов, CTO, FinTech-стартап, 15 лет в системном администрировании

Он также отмечает, что в облачных средах (AWS, Azure, GCP) рекомендуется использовать внутренние NTP-серверы провайдера: `time.amazon.com`, `time.windows.com`, `metadata.google.internal`. Они надёжнее, быстрее и не перегружают публичные серверы.

Вопросы и ответы

Как узнать, какой NTP-сервер использует моя система?
Для Chrony: `chronyc sources -v`. Для systemd-timesyncd: `timedatectl show-timesync —all`. В обоих случаях вы увидите текущий источник и его статус.
Можно ли использовать несколько NTP-серверов одновременно?
Да, и это рекомендуется. Chrony и systemd-timesyncd поддерживают несколько источников. Это повышает отказоустойчивость. Лучше использовать 3–4 сервера из разных географических зон.
Почему время на моём сервере всё равно сбивается?
Возможно, виртуальная машина синхронизирует время с хостом. В VMware или VirtualBox отключите интеграцию времени с хостом. В AWS — используйте `amazon-time-syncd`. В KVM — включите `kvm-clock` и отключите `vmware-tools-time-sync`.
Как часто синхронизируется время?
Chrony синхронизируется автоматически каждые несколько минут, но при больших отклонениях — чаще. systemd-timesyncd проверяет раз в 10–20 минут. Для критических систем можно настроить частоту в `chrony.conf` через `polltarget` и `maxpoll`.
Нужно ли настраивать NTP на десктопе?
Да, особенно если вы используете криптографические приложения, VPN, Docker или работаете с распределёнными проектами. Даже 5-секундное отклонение может сломать TLS-соединение.

Заключение

Синхронизация времени в Linux — это не техническая деталь, а обязательное условие стабильной и безопасной работы любой системы. Неверное время — это скрытая угроза, которая проявляется не сразу, но с разрушительными последствиями: от сбоев в логах до отказа аутентификации. Chrony остаётся лучшим выбором для серверов, systemd-timesyncd — для десктопов и простых сред. Устаревший ntpd следует заменить.

Не забывайте проверять статус синхронизации регулярно. Внедрите мониторинг: например, через Prometheus + node_exporter или Zabbix, чтобы получать алерты при отклонении более 100 мс. В облачных средах используйте встроенные NTP-серверы провайдера — они надёжнее и быстрее.

Точное время — это невидимый, но критически важный элемент инфраструктуры. Настройте его один раз — и забудьте о проблемах на годы.
  • Используйте Chrony для серверов, systemd-timesyncd — для десктопов.
  • Никогда не запускайте несколько NTP-демонов одновременно.
  • Проверяйте статус синхронизации командами `chronyc sources` и `timedatectl status`.
  • Откройте порт 123/UDP в брандмауэре, если сервер выступает как NTP-источник.
  • В облаках предпочтительны внутренние NTP-серверы провайдера.
⚠️ Дисклеймер — нажмите, чтобы развернуть

Материалы, опубликованные в разделе «Блог» на сайте RU DESIGN SHOP (rudesignshop.ru), носят исключительно информационный и ознакомительный характер и не являются руководством к действию, финансовой рекомендацией, медицинской услугой, ветеринарным назначением либо рекламой товаров и услуг, включая азартные игры. Публикации не содержат призывов к участию в азартных играх и не направлены на продвижение соответствующих операторов.

Безопасность применения товаров и веществ: при использовании строительных материалов, бытовой химии, пестицидов и агрохимикатов необходимо строго следовать инструкциям производителя и действующему законодательству Российской Федерации, включая Федеральный закон РФ от 19.07.1997 № 109-ФЗ «О безопасном обращении с пестицидами и агрохимикатами».

Упоминание товарных знаков, брендов и организаций носит исключительно информационный характер и не означает наличие партнёрских отношений или одобрения со стороны правообладателей.

Материалы, содержащие сведения о медицинских, ветеринарных или косметических средствах, представлены в справочных целях и не являются медицинской консультацией или назначением. Перед применением рекомендуется обратиться к врачу, ветеринарному специалисту или иному сертифицированному профессионалу.

Возрастные ограничения: материалы, содержащие сведения о продукции категории 18+, включая алкоголь или азартные игры, предназначены исключительно для совершеннолетней аудитории и публикуются в информационных целях.

Правовая ответственность: решения, принятые на основе опубликованной информации, пользователь принимает самостоятельно и на свой риск; редакция и авторы несут ответственность в пределах, установленных законодательством Российской Федерации.

Редакция не допускает публикаций, содержащих пропаганду экстремизма, терроризма, наркотических средств или суицида; подобные материалы подлежат немедленному удалению.

Упоминание организаций с ограниченным статусом: компания Meta Platforms Inc. (социальные сети Facebook и Instagram) признана экстремистской организацией решением суда РФ, её деятельность запрещена на территории Российской Федерации; любые упоминания приводятся исключительно в информационных целях.

Авторские права и источники: информация собирается из открытых источников; её актуальность указывается на дату публикации и может изменяться.

Изображения и иллюстрации используются на условиях, разрешённых правообладателями. При возникновении претензий редакция готова оперативно рассмотреть обращение и внести необходимые изменения.

Персональные данные и cookies: сайт использует cookies и обрабатывает персональные данные пользователей в соответствии с Федеральным законом № 152-ФЗ «О персональных данных» и Политикой конфиденциальности RU DESIGN SHOP.

Мнения авторов могут не совпадать с позицией государственных органов или коммерческих организаций, упомянутых в материалах.

 

РЕКОМЕНДУЕМ
Товары от российских производителей
Настенный светильник CircleWall GLODE
Выберите параметры Этот товар имеет несколько вариаций. Опции можно выбрать на странице товара.

Настенный светильник CircleWall GLODE

Диапазон цен: 22374  руб. – 33957  руб.
Светильник SHILD Forstlight
-5%
Выберите параметры Этот товар имеет несколько вариаций. Опции можно выбрать на странице товара.

Светильник SHILD Forstlight

Диапазон цен: 12010  руб. – 33860  руб.