Инструкция обновлена 9 августа 2025 г.
Синхронизация времени — это критически важный, но часто недооцененный аспект работы любой IT-инфраструктуры. Несовпадение временных меток всего на несколько секунд может привести к сбоям в аутентификации, ошибкам репликации баз данных и некорректной работе распределенных систем. За корректную синхронизацию времени на компьютерах и серверах, подключенных к сети, отвечает NTP-протокол, являющийся отраслевым стандартом.
Сегодня мы подробно рассмотрим настройку NTP-сервера на операционных системах Ubuntu 24.04, CentOS 9 и Windows Server 2022, а также расскажем, как настроить наш NTP-сервер для синхронизации с клиентами.
vds
Настройка NTP-сервера на Linux
Установим и настроим NTP-сервер на двух Linux-дистрибутивах — Ubuntu 22.04 и CentOS 9. Мы будем использовать Chrony — усовершенствованную и более эффективную реализацию протокола NTP, разработанную с нуля для лучшей работы при нестабильных сетевых условиях и при меньшем потреблении ресурсов, в отличие от классического NTP-демона (ntpd
).
1) Для дистрибутива Ubuntu необходимо использовать команду:
apt update && apt -y install chrony
Для дистрибутива CentOS команда установки будет следующей:
dnf -y install chrony
2) Основной конфигурационный файл Chrony — chrony.conf
. В Ubuntu он находится в директории /etc/chrony/
, в CentOS — в /etc/
. Перед тем как вносить изменения, сделаем резервную копию файла, чтобы можно было откатиться к первоначальным настройкам в случае проблем:
Ubuntu:
cp /etc/chrony/chrony.conf /etc/chrony/chrony.conf.backup
CentOS:
cp /etc/chrony.conf /etc/chrony.conf.backup
3) При помощи любого текстового редактора, например nano
, открываем на редактирование файл chrony.conf
:
Ubuntu:
nano /etc/chrony/chrony.conf
В дистрибутиве CentOS редактор nano
по умолчанию отсутствует. Для его установки выполним команду:
dnf -y install nano
Далее открываем конфигурационный файл:
nano /etc/chrony.conf
Необходимо задать внешние серверы NTP, с которыми будет происходить синхронизация для получения текущего времени. Находим строки, которые начинаются со слова pool
. Удалим значения по умолчанию и добавим новые адреса серверов:
pool 0.ru.pool.ntp.org iburst
pool 1.ru.pool.ntp.org iburst
pool 2.ru.pool.ntp.org iburst
pool 3.ru.pool.ntp.org iburst
Параметр iburst
используется для отправки пакетов с короткими интервалами при первом подключении к NTP-серверу. Это ускоряет начальную синхронизацию, особенно на медленных или ненадежных сетях, помогая быстрее установить начальное время.
4) Перезапускаем сервис chrony
:
Ubuntu:
systemctl restart chrony
CentOS:
systemctl restart chronyd
6) Проверяем статус сервиса:
Ubuntu:
systemctl status chrony
CentOS:
systemctl status chronyd
Если в выводе команды отображается active (running)
, то сервис успешно запущен и работает.
7) Добавляем сервис в автозагрузку:
Ubuntu:
systemctl enable chrony
CentOS:
systemctl enable chronyd
8) Узнать подробный статус, а также получить список всех источников времени (NTP-серверов), которые знает и опрашивает Chrony, можно при помощи команды:
chronyc tracking
В частности, в поле Reference ID
отображается IP-адрес сервера, с которым в данный момент синхронизируется система (источник эталонного времени).
9) Дополнительно можно получить информацию об источниках времени (NTP-серверах), с которыми синхронизируется сервер через Chrony:
chronyc sources -v
На этом установка и настройка сервера NTP завершена. Теперь ваш сервер будет синхронихировать время по указанным публичным NTP-серверам.
Настройка сервера NTP для синхронизации клиентских устройств
В этом разделе рассмотрим, как разрешить доступ клиентам, чтобы они могли использовать настроенный выше NTP-сервер для получения времени. Если «раздача» времени на дополнительные серверы вам не нужна, описанные ниже шаги выполнять не требуется.
1) Открываем на редактирование файл chrony.conf
:
Ubuntu:
nano /etc/chrony/chrony.conf
CentOS:
nano /etc/chrony.conf
В конец файла добавим директиву allow
. В качестве примера укажем IP-адрес клиентского сервера (не забудьте поменять клиентский IP адрес на свой):
allow 45.10.43.232
Также можно указать всю подсеть сразу:
allow 192.168.1.0/24
Сохраняем изменения и выходим из файла.
2) Перезапускаем сервис chrony
:
Ubuntu:
systemctl restart chrony
CentOS:
systemctl restart chronyd
6) Проверяем статус сервиса:
Ubuntu:
systemctl status chrony
CentOS:
systemctl status chronyd
Если в выводе команды отображается active (running)
, то сервис успешно запущен и работает.
Подключение клиентов к NTP-серверу
Перечисленные ниже команды необходимо выполнять на сервере, который будет выступать в роли клиента.
1) Установим сервис chrony
.
Ubuntu:
apt update && apt -y install chrony
CentOS:
dnf -y install chrony
2) Открываем на редактирование конфигурационный файл chrony.conf
:
Ubuntu:
nano /etc/chrony/chrony.conf
CentOS:
nano /etc/chrony.conf
Удаляем или закомментируем все строки, которые начинаются со слова pool
, и меняем их на строку следующего вида:
pool 185.42.14.235 iburst
Где 185.42.14.235
— это IP-адрес нашего NTP-сервера с chrony
.
Сохраняем изменения и выходим из файла.
3) Далее перезапускаем демон chrony
и проверяем его статус.
Ubuntu:
systemctl restart chrony && systemctl status chrony
CentOS:
systemctl restart chronyd && systemctl status chronyd
Если в выводе команды отображается active (running)
, то сервис успешно запущен и работает.
4) Для проверки синхронизации времени с ранее настроенным сервером chrony
выполняем команду:
chronyc tracking
В параметре Reference ID
должен быть указан адрес нашего сервера. Если IP-адрес отображается корректно, то наш клиентский сервер успешно синхронизируется с сервером chrony
.
Настройка NTP-сервера на Windows Server 2022
В Windows Server настройку NTP выполним при помощи PowerShell.
1) Открываем PowerShell. Для начала необходимо запустить службу NTP:
Start-Service w32time
2) Настроим службу времени Windows для синхронизации с NTP-сервером по адресу 0.ru.pool.ntp.org
:
w32tm /config /syncfromflags:manual /manualpeerlist:"0.ru.pool.ntp.org" /reliable:yes /update
3) Добавим конфигурацию сервера в реестр при помощи команд:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\W32Time\Parameters" -Name "Type" -Value "NTP"
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\W32Time\Config" -Name "AnnounceFlags" -Value 5
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer" -Name "Enabled" -Value 1
4) Перезапускаем сервис w32time
:
Restart-Service -Name w32time -Force
5) Стоит обратить внимание, что по умолчанию в Windows Server 2022 порт 123, который использует протокол NTP, заблокирован для входящих подключений. Создадим правило чтобы клиентские компьютеры могли получить доступ до нашего NTP сервера:
New-NetFirewallRule -DisplayName "NTP Server (UDP 123)" -Direction Inbound -Protocol UDP -LocalPort 123 -Action Allow
6) Проверим конфигурацию:
w32tm /query /configuration
На этом этапе настройка NTP-сервера успешно завершена.
Подключение клиентов к NTP-серверу
В этом разделе мы рассмотрим, как настроить ваш сервер на «раздачу» времени — чтобы другие серверы в вашей инфраструктуре могли синхронизировать время по нему, если такая настройка вам необходима.
Перечисленные ниже действия необходимо выполнять на сервере с Windows Server, который будет выступать в роли клиента.
1) Открываем PowerShell. Для начала необходимо запустить службу NTP:
Start-Service w32time
2) Настроим подключение к серверу NTP при помощи команды:
w32tm /config /syncfromflags:manual /manualpeerlist:5.129.246.154 /update
Где 5.129.246.154
— это адрес нашего NTP-сервера.
3) Включаем NTP-клиент:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\W32Time\Parameters" -Name "Type" -Value "NTP"
4) Перезапускаем сервис w32time
:
Restart-Service -Name w32time -Force
5) Принудительно синхронизируем время с ранее настроенным NTP-сервером:
w32tm /resync /force
6) Для проверки статуса синхронизации выполним команду:
w32tm /query /status
В параметре Source
должен отображаться сервер с NTP, к которому мы подключились на предыдущем шаге.
Заключение
Грамотная конфигурация синхронизации времени по протоколу NTP служит краеугольным камнем для обеспечения отказоустойчивости и согласованности работы всех компонентов IT-инфраструктуры. В статье мы детально разобрали, как развернуть и настроить NTP-сервер, а также его клиенты в операционных системах Linux и Windows Server.
Ключевые выгоды внедрения NTP-синхронизации заключаются в следующем:
-
Необходимость: Точное время — это не удобство, а требование для работы современных сетевых протоколов безопасности, распределенных приложений и корректного анализа логов.
-
Универсальность: Несмотря на платформенные различия, принципы работы NTP едины: выбор источников и контроль синхронизации.
-
Контроль: Обязательным элементом является мониторинг для проверки статуса синхронизации и своевременного выявления расхождений.