Как синхронизировать время линукс
Синхронизация времени в Linux — критически важная задача для стабильной работы серверов, сетевых сервисов, баз данных и систем автоматизации. Несоответствие времени между устройствами может привести к сбоям аутентификации, ошибкам в логах, сбоям в расписаниях cron, проблемам с TLS-сертификатами и даже потере данных в распределённых системах. Даже отклонение в несколько секунд может нарушить работу критически важных приложений, таких как банковские платформы, системы бронирования или кластеры Kubernetes. Точное время — не роскошь, а базовая инфраструктурная потребность.
Почему синхронизация времени критична в Linux
Представьте, что два сервера в одном кластере работают с разными временными метками: один считает, что сейчас 14:00, а другой — 14:05. При попытке синхронизации базы данных, проверки SSL-сертификатов или логирования событий система начнёт фиксировать противоречивые данные. Это приведёт к невозможности отладки, ложным алертам и даже отказу в доступе через Kerberos или OAuth. В логах появятся сообщения вроде “clock skew detected” — и это лишь верхушка айсберга.
Согласно исследованиям Gartner, более 60% инцидентов в распределённых системах, связанных с аутентификацией и безопасностью, вызваны ошибками синхронизации времени. Особенно уязвимы системы, использующие TLS-сертификаты: если время на клиенте отстаёт, браузер может отклонить валидный сертификат, считая его ещё не действительным. В корпоративной среде это означает отказ в доступе к критическим сервисам без явных причин.
NTP, Chrony и systemd-timesyncd: сравнение протоколов
Linux предлагает несколько решений для синхронизации времени, каждое из которых подходит под определённые сценарии. Традиционный демон NTP (Network Time Protocol) — мощный, но тяжеловесный. Он требует постоянного соединения и активно использует ресурсы, что делает его неоптимальным для виртуальных машин или устройств с нестабильным интернетом.
Chrony — современная альтернатива, разработанная специально для динамичных сред. Он эффективно работает при прерывистом соединении, быстро компенсирует дрейф часов и потребляет меньше памяти. Chrony подходит для серверов, контейнеров, облачных инстансов и даже Raspberry Pi.
systemd-timesyncd — лёгкий клиент, встроенный в systemd. Он не является полноценным NTP-сервером, но отлично справляется с базовой синхронизацией на десктопах, ноутбуках и простых серверах. Не требует дополнительной настройки — включён по умолчанию в большинстве современных дистрибутивов, таких как Ubuntu 20.04+, Fedora 32+ и Debian 11+.
Функция |
Chrony |
systemd-timesyncd |
Traditional NTP |
|---|---|---|---|
Поддержка прерывистого соединения |
Да |
Частично |
Нет |
Ресурсоёмкость |
Низкая |
Очень низкая |
Высокая |
Серверная функция |
Да |
Нет |
Да |
Скорость синхронизации |
Высокая |
Средняя |
Средняя |
Рекомендуемое применение |
Серверы, облака, виртуализация |
Десктопы, простые системы |
Старые системы, специализированные сети |
Установка и настройка Chrony
Чтобы установить Chrony, используйте менеджер пакетов вашего дистрибутива:
«`bash
# Ubuntu/Debian
sudo apt update && sudo apt install chrony
# CentOS/RHEL/Fedora
sudo dnf install chrony
# или для старых версий: sudo yum install chrony
«`
После установки откройте конфигурационный файл:
«`bash
sudo nano /etc/chrony/chrony.conf
«`
В файле убедитесь, что указаны надёжные NTP-серверы. Рекомендуется использовать пул NTP проекта `pool.ntp.org`:
«`
pool pool.ntp.org iburst
server time.google.com iburst
server time.windows.com iburst
«`
Параметр `iburst` ускоряет начальную синхронизацию, отправляя пакеты пачкой при старте. Для серверов, которые должны предоставлять время другим устройствам, добавьте:
«`
allow 192.168.1.0/24
«`
Это разрешит синхронизацию клиентам из локальной сети.
После изменений перезапустите службу:
«`bash
sudo systemctl restart chronyd
sudo systemctl enable chronyd
«`
Настройка systemd-timesyncd
systemd-timesyncd — идеальное решение для пользователей, которым не нужна сложная настройка. По умолчанию он уже включён и использует серверы `time.google.com`, `time.windows.com` и `time.apple.com`.
Проверьте статус:
«`bash
timedatectl status
«`
Если служба отключена, включите её:
«`bash
sudo systemctl enable systemd-timesyncd
sudo systemctl start systemd-timesyncd
«`
Для изменения серверов создайте файл конфигурации:
«`bash
sudo nano /etc/systemd/timesyncd.conf
«`
Раскомментируйте и измените строку:
«`
[Time]
NTP=pool.ntp.org
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org
«`
Перезагрузите службу:
«`bash
sudo systemctl restart systemd-timesyncd
«`
Проверка статуса синхронизации
После настройки важно убедиться, что время синхронизировано. Используйте команды, зависящие от используемого сервиса.
Для Chrony:
«`bash
chronyc sources -v
chronyc tracking
«`
Вывод `chronyc sources -v` покажет список серверов, их статус (например, `^*` — активный источник, `^+` — резервный), задержку и смещение. Оптимальное смещение — менее 10 мс.
Для systemd-timesyncd:
«`bash
timedatectl show-timesync —all
«`
Или просто:
«`bash
timedatectl status
«`
В выводе обратите внимание на строки:
— `NTP synchronized: yes`
— `RTC in local TZ: no` (должно быть `no`, если используется UTC)
— `System clock synchronized: yes`
Если видите `no` — проблема с сетью, брандмауэром или серверами. Проверьте логи:
«`bash
journalctl -u chronyd -n 50
# или
journalctl -u systemd-timesyncd -n 50
«`
Открытие портов в брандмауэре
NTP работает через UDP-порт 123. Если на сервере включён firewall (ufw, firewalld, iptables), убедитесь, что порт открыт.
Для ufw:
«`bash
sudo ufw allow 123/udp
«`
Для firewalld:
«`bash
sudo firewall-cmd —permanent —add-service=ntp
sudo firewall-cmd —reload
«`
Для iptables:
«`bash
sudo iptables -A INPUT -p udp —dport 123 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4
«`
Частые ошибки и способы их устранения
Ошибки синхронизации времени — одни из самых коварных. Они проявляются не сразу, а через дни или недели.
Ошибка 1: «No source of time» или «Not synchronised»
— Проверьте интернет-соединение.
— Убедитесь, что NTP-серверы доступны: `ping pool.ntp.org`.
— Проверьте, не блокирует ли провайдер UDP-порт 123 (особенно в корпоративных сетях).
— Используйте `chronyc sourcestats` — если все источники показывают высокую дисперсию, замените их на более надёжные.
Ошибка 2: «Leap second warning»
— Это не ошибка, а предупреждение. Система готовится к вставке високосной секунды. Обычно решается автоматически, но можно принудительно синхронизировать: `chronyc makestep 1.0 2`.
Ошибка 3: Время «прыгает» после перезагрузки
— Chrony по умолчанию не позволяет резких изменений. Включите опцию `makestep` в конфиге:
«`
makestep 1.0 3
«`
Это разрешит корректировку до 1 секунды в течение первых 3 запусков.
Ошибка 4: Разница во времени между сервером и клиентом > 1000 секунд
— Chrony не синхронизирует при смещении > 1000 сек. Вручную установите правильное время:
«`bash
sudo chronyc makestep 1000 1
«`
После этого повторите `sudo systemctl restart chronyd`.
Экспертное мнение
В крупных инфраструктурах рекомендуется выделять один-два сервера в качестве локальных NTP-источников, которые синхронизируются с внешними серверами. Все остальные устройства получают время от них. Это снижает нагрузку на интернет, повышает отказоустойчивость и упрощает аудит. Для таких задач Chrony — идеальный выбор благодаря поддержке клиент-серверной модели и точности до микросекунд.
Вопросы и ответы
Заключение
Синхронизация времени в Linux — это не опциональная настройка, а фундаментальная практика, обеспечивающая стабильность, безопасность и корректность работы всей инфраструктуры. Неважно, используете ли вы десктоп, виртуальную машину или кластер из сотен серверов — точное время остаётся критически важным компонентом. Chrony — современное, эффективное и надёжное решение для большинства сценариев. systemd-timesyncd — отличный выбор для простых систем, где важна минималистичность. Традиционный NTP остаётся актуальным только в узкоспециализированных средах.
- Используйте Chrony для серверов и systemd-timesyncd для десктопов.
- Всегда проверяйте статус синхронизации через `chronyc tracking` или `timedatectl status`.
- Открывайте UDP-порт 123 в брандмауэре только при необходимости и с ограничениями по IP.
- Не полагайтесь на ручную установку времени — она не решает дрейф.
- Настройте локальный NTP-источник в крупных сетях для повышения отказоустойчивости.
⚠️ Дисклеймер — нажмите, чтобы развернуть
Материалы, опубликованные в разделе «Блог» на сайте RU DESIGN SHOP (rudesignshop.ru), носят исключительно информационный и ознакомительный характер и не являются руководством к действию, финансовой рекомендацией, медицинской услугой, ветеринарным назначением либо рекламой товаров и услуг, включая азартные игры. Публикации не содержат призывов к участию в азартных играх и не направлены на продвижение соответствующих операторов.
Безопасность применения товаров и веществ: при использовании строительных материалов, бытовой химии, пестицидов и агрохимикатов необходимо строго следовать инструкциям производителя и действующему законодательству Российской Федерации, включая Федеральный закон РФ от 19.07.1997 № 109-ФЗ «О безопасном обращении с пестицидами и агрохимикатами».
Упоминание товарных знаков, брендов и организаций носит исключительно информационный характер и не означает наличие партнёрских отношений или одобрения со стороны правообладателей.
Материалы, содержащие сведения о медицинских, ветеринарных или косметических средствах, представлены в справочных целях и не являются медицинской консультацией или назначением. Перед применением рекомендуется обратиться к врачу, ветеринарному специалисту или иному сертифицированному профессионалу.
Возрастные ограничения: материалы, содержащие сведения о продукции категории 18+, включая алкоголь или азартные игры, предназначены исключительно для совершеннолетней аудитории и публикуются в информационных целях.
Правовая ответственность: решения, принятые на основе опубликованной информации, пользователь принимает самостоятельно и на свой риск; редакция и авторы несут ответственность в пределах, установленных законодательством Российской Федерации.
Редакция не допускает публикаций, содержащих пропаганду экстремизма, терроризма, наркотических средств или суицида; подобные материалы подлежат немедленному удалению.
Упоминание организаций с ограниченным статусом: компания Meta Platforms Inc. (социальные сети Facebook и Instagram) признана экстремистской организацией решением суда РФ, её деятельность запрещена на территории Российской Федерации; любые упоминания приводятся исключительно в информационных целях.
Авторские права и источники: информация собирается из открытых источников; её актуальность указывается на дату публикации и может изменяться.
Изображения и иллюстрации используются на условиях, разрешённых правообладателями. При возникновении претензий редакция готова оперативно рассмотреть обращение и внести необходимые изменения.
Персональные данные и cookies: сайт использует cookies и обрабатывает персональные данные пользователей в соответствии с Федеральным законом № 152-ФЗ «О персональных данных» и Политикой конфиденциальности RU DESIGN SHOP.
Мнения авторов могут не совпадать с позицией государственных органов или коммерческих организаций, упомянутых в материалах.