- Home »

Настройка синхронизации времени на 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. Для серьёзных задач — выделенный сервер. А время пусть всегда будет точным!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.