Home » Настройка синхронизации времени на Ubuntu 24.04
Настройка синхронизации времени на Ubuntu 24.04

Настройка синхронизации времени на Ubuntu 24.04

В этой статье разберёмся, как правильно и быстро настроить синхронизацию времени на Ubuntu 24.04. Почему это важно? Потому что от точного времени на сервере зависит очень многое: от корректной работы логов, cron-задач, сертификатов и безопасности до синхронизации кластеров, работы баз данных и даже успешного прохождения PCI DSS аудита. Если время на сервере уедет хотя бы на пару минут — можно словить кучу багов, отвалов и даже потерять клиентов. Поэтому сегодня — только практика, только хардкор: как работает синхронизация времени, как её настроить за 5 минут, какие грабли бывают и как их обойти. Погнали!

Как это работает? Немного теории, чтобы не словить багов

В мире Linux (и не только) синхронизация времени обычно реализуется через протоколы NTP (Network Time Protocol) или более свежий и модный systemd-timesyncd. Суть проста: сервер периодически сверяет свои часы с эталонными серверами времени (NTP-серверами), чтобы не отставать и не убегать вперёд. Это особенно критично для серверов, которые работают в кластере, обрабатывают транзакции, или просто должны быть надёжными.

  • NTP (Network Time Protocol) — старый, проверенный временем протокол. Позволяет синхронизировать время с точностью до миллисекунд. Работает через отдельный демон ntpd или chronyd.
  • systemd-timesyncd — встроенный в systemd минималистичный сервис для синхронизации времени. Легковесный, не требует отдельной установки, но не такой гибкий, как NTP.
  • Chrony — современная альтернатива ntpd, отлично работает на виртуалках, быстро синхронизируется даже при нестабильном соединении.

Ubuntu 24.04 по умолчанию использует systemd-timesyncd, но никто не мешает поставить chrony или классический ntpd, если хочется больше контроля или специфических фич.

Как быстро и просто всё настроить?

Переходим к практике. Вот пошаговая инструкция для Ubuntu 24.04, чтобы синхронизация времени работала как часы (буквально).

1. Проверяем, что у нас сейчас


timedatectl status

В выводе ищем строки:

  • NTP service: active — значит, синхронизация уже работает.
  • System clock synchronized: yes — всё ок, время синхронизировано.

Если видим no или inactive — идём дальше.

2. Включаем systemd-timesyncd (по умолчанию в Ubuntu 24.04)


sudo systemctl enable systemd-timesyncd --now

Проверяем статус:


systemctl status systemd-timesyncd

Если всё ок — сервис активен, ошибок нет.

3. Настраиваем NTP-серверы (по желанию)

По умолчанию Ubuntu использует pool.ntp.org. Если хочется указать свои (например, корпоративные или локальные), редактируем файл:


sudo nano /etc/systemd/timesyncd.conf

Добавляем или меняем строки:


NTP=ntp1.example.com ntp2.example.com
FallbackNTP=ntp.ubuntu.com

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


sudo systemctl restart systemd-timesyncd

4. Проверяем результат


timedatectl status

Если System clock synchronized: yes — победа!

5. Альтернатива: Chrony (если нужен продвинутый контроль)

Chrony — отличный выбор для серверов, особенно виртуальных, где ntpd может тупить из-за особенностей виртуализации.


sudo apt update
sudo apt install chrony
sudo systemctl enable chrony --now

Настраиваем сервера в /etc/chrony/chrony.conf (аналогично NTP).


server ntp1.example.com iburst
server ntp2.example.com iburst

Проверяем статус:


chronyc tracking

Примеры, схемы, практические советы

Сценарий Рекомендация Пояснение
Обычный VPS, нет особых требований systemd-timesyncd Просто, быстро, встроено. Не надо ничего ставить.
Кластер, база данных, HA Chrony Быстрее синхронизируется, устойчив к сетевым лагам, лучше работает на виртуалках.
PCI DSS, аудит, строгие требования Chrony или ntpd + свои NTP-сервера Можно указать только свои сервера, вести логи, контролировать источники времени.
Сервер без доступа в интернет Локальный NTP-сервер Настроить один сервер с доступом к интернету, остальные синхронизировать с ним.

Кейс из жизни: На одном проекте база данных PostgreSQL периодически “теряла” транзакции. Оказалось, что время на двух серверах отличалось на 3 минуты — один был в UTC, другой в локальном часовом поясе, плюс не было синхронизации. После настройки chrony и единого часового пояса баг исчез.

Анти-кейс: На VPS с минимальной установкой Ubuntu забыли включить синхронизацию времени. Через месяц сертификаты SSL перестали обновляться, cron-задачи запускались не по расписанию, а логи были с “будущей” датой. Итог — потеря клиентов и бессонная ночь.

Команды для быстрой настройки (шпаргалка)


# Проверить статус времени
timedatectl status

# Включить systemd-timesyncd
sudo systemctl enable systemd-timesyncd --now

# Перезапустить сервис после изменения конфигурации
sudo systemctl restart systemd-timesyncd

# Проверить работу chrony
chronyc tracking

# Установить chrony
sudo apt update
sudo apt install chrony
sudo systemctl enable chrony --now

Похожие решения, программы и утилиты

  • ntpd — классика, но уже немного устарел. Всё ещё актуален для специфических задач.
  • OpenNTPD — минималистичный демон от OpenBSD, прост в настройке, но не так гибок.
  • systemd-timesyncd — по умолчанию в Ubuntu 24.04, идеален для большинства задач.
  • Chrony — современный, быстрый, гибкий. Лучший выбор для серверов и виртуалок.

Официальные ссылки:

Статистика и сравнение решений

Решение Потребление памяти Время синхронизации после старта Гибкость Поддержка виртуализации
systemd-timesyncd ~1-2 МБ 10-30 сек Минимальная Средняя
chrony ~3-5 МБ 1-5 сек Высокая Отличная
ntpd ~5-10 МБ 10-60 сек Высокая Средняя

Интересный факт: chrony может корректировать время даже при очень нестабильном соединении, а systemd-timesyncd — нет. Если у вас сервер на VPS с “прыгающим” интернетом — chrony реально спасает.

Нестандартные способы использования и лайфхаки

  • Можно настроить свой сервер как NTP-источник для других машин в локалке — удобно для корпоративных сетей без выхода в интернет.
  • В скриптах удобно использовать timedatectl для проверки синхронизации перед запуском критичных задач (например, деплой или бэкап).
  • Для автоматизации можно добавить проверку времени в healthcheck сервисов — если время не синхронизировано, сервис считается “больным”.
  • В Docker-контейнерах обычно не стоит запускать свои демоны синхронизации — лучше синхронизировать время на хосте.

Какие новые возможности открываются? Автоматизация и скрипты

Синхронизация времени — это не только про “чтобы часы не убегали”. Это фундамент для автоматизации:

  • Точные логи — проще дебажить, искать ошибки, анализировать нагрузку.
  • Корректная работа cron, systemd timers, сертификатов SSL/TLS.
  • Возможность строить отказоустойчивые кластеры, где время — критичный параметр (например, Galera Cluster, Ceph, Kubernetes).
  • Безопасность: многие системы мониторинга и SIEM требуют точного времени для корреляции событий.
  • Возможность автоматизировать healthcheck: если время не синхронизировано — скрипт может отправить алерт или даже перезапустить сервис.

Пример простого скрипта для healthcheck:


#!/bin/bash
if timedatectl status | grep -q "System clock synchronized: yes"; then
echo "OK"
else
echo "Time not synced!" | mail -s "Time Alert" [email protected]
fi

Вывод — почему, как и где использовать

Синхронизация времени — это не “ещё одна галочка”, а базовая штука для любого сервера. На Ubuntu 24.04 всё стало проще: systemd-timesyncd работает из коробки, но если хочется больше контроля — ставим chrony. Не забываем проверять статус после установки, указывать свои NTP-сервера при необходимости, и обязательно следим за синхронизацией в автоматизации и мониторинге. Это сэкономит кучу нервов, времени и денег.

Если нужен VPS для экспериментов — заказать VPS. Для серьёзных задач — выделенный сервер. А время пусть всегда будет точным!


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

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked