yandex
Калькулятор ценТарифыАкцииДокументацияО насКарьера в Cloud.ruНовостиЮридические документыКонтактыРешенияРеферальная программаКейсыПартнерство с Cloud.ruБезопасностьEvolutionAdvancedEvolution StackОблако VMwareML SpaceВ чем отличия платформ?БлогОбучение и сертификацияМероприятияИсследования Cloud.ruЛичный кабинетВойтиЗарегистрироватьсяEvolution ComputeEvolution Managed KubernetesEvolution Object StorageEvolution Managed PostgreSQL®Облако для мобильных и веб‑приложенийАналитика данных в облакеEvolution Bare MetalEvolution SSH KeysEvolution ImageСайт в облакеEvolution DNSEvolution VPCEvolution Load BalancerEvolution Magic RouterEvolution DiskХранение данных в облакеEvolution Container AppsEvolution Artifact RegistryEvolution Managed ArenadataDBEvolution Managed TrinoEvolution Managed SparkАналитика данных в облакеEvolution ML InferenceEvolution Distributed TrainEvolution ML FinetuningEvolution NotebooksCurator Anti-DDoSCurator Anti‑DDoS+WAFUserGate: виртуальный NGFWStormWall: Anti-DDoSEvolution TagsEvolution Task HistoryCloud MonitoringCloud LoggingАренда GPUAdvanced Object Storage ServiceAdvanced Elastic Cloud ServerAdvanced Relational Database Service for PostgreSQLРазработка и тестирование в облакеAdvanced Image Management ServiceAdvanced Auto ScalingDirect ConnectCDNCross-platform connectionAdvanced Enterprise RouterAdvanced Cloud Backup and RecoveryAdvanced Data Warehouse ServiceAdvanced Elastic Volume ServiceAdvanced Cloud Container EngineAdvanced FunctionGraphAdvanced Container Guard ServiceAdvanced Software Repository for ContainerAdvanced Document Database Service with MongoDBAdvanced Relational Database Service for MySQLAdvanced Relational Database Service for SQL ServerCloud AdvisorAdvanced Server Migration ServiceAdvanced Data Replication ServiceAdvanced API GatewayAdvanced CodeArtsAdvanced Distributed Message Service for KafkaAdvanced Distributed Message Service for RabbitMQAdvanced DataArts InsightAdvanced CloudTableAdvanced MapReduce ServiceAdvanced Cloud Trace ServiceAdvanced Application Performance ManagementAdvanced Identity and Access ManagementAdvanced Enterprise Project Management ServiceVMware: виртуальный ЦОД с GPUVMware: виртуальный ЦОДУдаленные рабочие столы (VDI)VMware: сервер Bare MetalИнфраструктура для 1С в облакеУдаленные рабочие столыМиграция IT‑инфраструктуры в облако3D-моделирование и рендерингVMware: резервное копирование виртуальных машинVMware: резервный ЦОДVMware: резервное копирование в облакоVMware: миграция виртуальных машин
Поиск
Связаться с нами

Настройка NTP на сервере Ubuntu Linux

Чтобы компьютерные системы, особенно распределенные, корректно работали, применяется механизм синхронизации времени. Точное время важно для сетевых взаимодействий, записи логов и информации в базы данных, обеспечения безопасности, настройки расписаний. Для синхронизации чаще всего применяется протокол Network Time Protocol (NTP). Разберем тонкости его работы и алгоритм настройки на Ubuntu Linux.

Инструкции
Иллюстрация для статьи на тему «Настройка NTP на сервере Ubuntu Linux»
Продукты из этой статьи:
Иконка-Evolution Bare Metal
Evolution Bare Metal

Как функционирует NTP

Network Time Protocol — протокол синхронизации времени, который позволяет привести системные часы на серверах и пользовательских устройствах к эталонному времени UTC с учетом сетевых задержек. 

Протокол NTP устроен по иерархическому принципу. NTP-серверы распределяются по уровням (stratum):

  • Stratum 0 — источники эталонного времени. Они получают показатели с атомных часов, радиопередатчиков, систем спутниковой навигации;

  • Stratum 1 — серверы, которые напрямую взаимосвязаны со Stratum 0;

  • Stratum 2, 3, 4 и т.д. — серверы, которые синхронизируются со Stratum 1. 

Принцип синхронизацииПринцип синхронизации
Дарим до 20 000 бонусов
Дарим до 20 000 бонусов
4 000 бонусов — физическим лицам, 20 000 бонусов — юридическим

Протокол работает поверх протокола UDP на порту 123 по клиент-серверной модели. NTP-клиент отправляет к серверу запросы, фиксируя время отправки. Сервер принимает запрос и посылает ответ. Клиент получает ответ и фиксирует время. Выходит, что в процессе обмена используются такие метки, как: 

  • момент запроса клиента;

  • время получения запроса сервером;

  • момент направления ответа от сервера; 

  • время получения ответа клиентом.  

Эти метки нужны клиенту для расчета сетевых задержек и смещения локальных часов. Показатели вычисляются с учетом времени в пути запроса и ответа. 

Расчет времениРасчет времени

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

Если в процессе участвует несколько серверов, NTP применяет алгоритмы отбора, которые позволяют исключить источники с недостоверными данными.

Установка NTP-сервера на Ubuntu

Для работы NTP-сервера на современных версиях Ubuntu (начиная с 20.04) потребуется пакет chrony, который включает демон chronyd, конфигурационные файлы и инструменты управления. Он часто предустановлен по умолчанию. Если его нет, установите из официальных репозиториев:

При использовании chrony конфликта с systemd-timesyncd, как правило, не возникает, так как chrony автоматически становится основным сервисом синхронизации, а systemd-timesyncd останавливается. Однако для гарантии можно проверить и отключить его:

Если в системе остался пакет ntp, его необходимо полностью удалить (sudo apt purge ntp), чтобы избежать конфликтов с chrony.

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

Настройка NTP-сервера

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

Основная конфигурация

Основной конфигурационный файл находится по пути /etc/chrony/chrony.conf. Для удобства поддержки рекомендуется создавать отдельные файлы в директории /etc/chrony/conf.d/, например, sudo nano /etc/chrony/conf.d/local-server.conf.

Пример содержимого конфигурационного файла: 

Параметр driftfile по-прежнему актуален. Для управления доступом клиентов используется директива allow, а не restrict. Остальные ограничения (nopeer, noquery и т.д.) в классическом виде не применяются — безопасность обеспечивается через allow и настройки брандмауэра.

После настроек перезапустите службу с помощью команды:

Выбор приоритетных серверов

Рекомендуется использовать несколько внешних источников времени. Директива pool автоматически выбирает из пула доступные серверы. Либо можно обозначить их вручную. Пример:

Приоритетный сервер выбирается с помощью параметра prefer:

При равных условиях сервер prefer будет служить основным источником времени для синхронизации. 

В корпоративной инфраструктуре в качестве приоритетных серверов лучше выбирать внутренние NTP-серверы организации. Для этого используйте параметр prefer:

 

server ntp.corp.local iburst prefer

pool 0.pool.ntp.org iburst

 

Внешние серверы из пула будут использоваться как резервные, если основной недоступен. Параметр iburst, как и в ntp, ускоряет начальную синхронизацию.

Настройка безопасности

Настройки безопасности включают несколько аспектов:

1. Ограничение доступа: В chrony доступ клиентов регулируется директивой allow. Ограничьте доступ только доверенными подсетями:

По умолчанию доступ запрещен всем.

2. Брандмауэр: Откройте UDP-порт 123 в брандмауэре только для доверенных сетей.

3. Аутентификация (NTS): Современные версии chrony (и Ubuntu 22.04+) поддерживают протокол Network Time Security (NTS) для шифрования и аутентификации NTP-трафика. Это предотвращает атаки "человек посередине" и подмену времени. Для использования NTS с публичными пулами (например, Cloudflare) укажите в конфигурации:

Для корпоративных серверов также можно настроить NTS.

Evolution Bare Metal
Evolution Bare Metal
Готовые конфигурации и гибкое управление
Подробнее

Подключение и настройка клиентов

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

Синхронизация клиентских устройств

На клиентской машине также должен быть установлен chrony. Откройте конфигурационный файл:

Закомментируйте или удалите строки с общедоступными серверами pool или server, укажите адрес вашего внутреннего NTP-сервера, например:

Параметр iburst поможет обеспечить быструю начальную синхронизацию при первом запуске.

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

Убедитесь, что все правильно работает:

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

Эта команда отобразит перечень серверов. У активных источников синхронизации в столбце S будет символ ^* (или *+). Для просмотра детальной информации о текущем состоянии используйте:

Команда ntpq -p может работать, если установлены пакеты совместимости, но ее использование не рекомендуется.

Принудительная однократная синхронизация

Если вам нужно немедленно и принудительно синхронизировать время (например, при сильном расхождении), не дожидаясь медленной подстройки демоном chronyd, используйте встроенную команду chronyc:

Эта команда заставит chronyd выполнить коррекцию времени скачком (step), если это разрешено в конфигурации. Останавливать службу chrony при этом не нужно. Утилита ntpdate устарела и не рекомендуется к использованию в современных версиях Ubuntu.

Тестирование и устранение проблем

После установки и настройки NTP убедитесь, что служба работает, и сервер Ubuntu Linux синхронизируется с источниками точного времени. Периодически могут возникать ошибки, которые нужно быстро исправлять. Подсказываем проверенные решения.  

Проверка работы NTP-сервера

После всех настроек еще раз убедитесь, что служба запущена и правильно работает. Выполните команду: 

Если видите active или running, значит, служба работает. Если нет, выполните:

Устранение ошибок 

Типичные ошибки и способы их устранения: 

Проблема
Вероятная причина
Проверка
Решение
Служба NTP не запускается
Сервис конфликтует с systemd-timesyncd
systemctl status ntp или timedatectl status
Удалите ненужный сервис с помощью sudo apt remove systemd-timesyncd и перезапустите NTP
Время не синхронизируется
Нет доступа к NTP-серверам
chronyc sources -v
Проверьте подключение к интернету и настройки серверов в конфигурационным файле /etc/chrony/chrony.conf. Можно заменить внутренние источники на внешние
Сильное смещение времени
Постоянная разница в системном времени
chronyc sources -v для анализа параметра offset
Остановите службу NTP и выполните синхронизацию вручную командой sudo chronyc -a makestep, потом перезапустите сервис
Брандмауэр не пускает NTP-трафик
Закрытый рабочий порт
sudo ufw status или iptables -L
Откройте порт командой sudo ufw allow 123/udp
Сервер не отвечает
Неверные ограничения в конфигурации chrony
Проверка файла /etc/chrony/chrony.conf или файлов в /etc/chrony/conf.d/
Убедитесь, что добавлена директива allow для нужной подсети, например: allow 192.168.1.0/24. Проверьте, что нет конфликтующих правил.
Служба работает, но время не обновляется
Некорректно выбранный источник времени
chronyc activity
Укажите не доменные имена серверов, а IP-адреса
Предупреждение no server suitable for synchronization found
Серверы недоступны либо не выполняют запрос
chronyc sources -v
Проверьте сетевые ограничения и настройки брандмауэра. Если там все нормально, но ситуация не меняется, выберите другой пул серверов

Резюме

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

Продукты из этой статьи:
Иконка-Evolution Bare Metal
Evolution Bare Metal
17 марта 2026

Вам может понравиться