uz
KA
июня 23, 2025
Обновлено июня 23, 2025

Как настроить NTP на Rocky Linux?

Linux Rocky Linux Сети

Время на устройствах в информационно-вычислительных системах играет ключевую роль, при реализации функций электронно цифровых подписей, TLS/SSL подключения, машин реального времени, АСУ ТП и многих других. Без точного представления о времени будет не возможна передача данных по HTTPS на чем основано много сервисов, мониторинг логов приложений для систем и администраторов будет затруднено. Ведь понимание, когда произошло, то или иное событие может играть ключевую роль! Для решения данной задачи о предоставлении устройствам точного времени был разработан сервис и протокол NTP!

Что такое NTP и как оно работает?

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

Эталонным значением для начала передачи служат достоверные источники времени, которые имеют наименьшую погрешность: атомные часы или системы GPS, они предоставляют информацию первому или же нулевому уровню  по протоколу RS232, с помощью которого данные передаются по физическому каналу связи на Stratum 0. Далее в ход вступает протокол NTP, у которого реализация представлена в виде приложения на устройстве, которое может предоставлять данные о текущем времени по запросам клиентов. Таким образом, уровень Stratum 1 является клиентом серверов Stratum 0, и так далее по иерархической цепочке высший уровень является клиентом для низших.

Схема работы NTP сервиса
Скриншот №1 — Схема работы NTP сервиса

Если рассматривать данный базовый инфраструктурный сервис в контексте корпоративной сети, то для работы выделяется сервер. Это может быть выделенная область VPS или часть пространства ОС в контейнере с работающим приложением, которые обрабатывают запросы клиента. И он уже получает данные с доверенных Stratum и предоставляет данные устройствам в локальной сети. Для отказоустойчивости обычно используют несколько подобных решений. В качестве их доверенного источника может выступать Глонасс-сервер, который перехватывает GPS сигнал и передает время на устройства.

Алгоритм работы протокола предусматривает использование UDP по 123 порту, а так же передачу сообщений от клиента серверу и обратно:

Схема работы протокола

Клиент отправляет запрос серверу о получении времени с меткой T1, которая содержит время отправки запроса клиента. Затем сервер фиксирует получение запроса и направляет пакет с метками T1, T2, T3, последние фиксируют время получения запроса и ответа клиенту. После того, как сетевое взаимодействие законченно клиент фиксирует время T4 – получения пакета и рассчитывает задержки, а так же текущее время.

Как установить и настроить NTP?

В дистрибутивах Rocky Linux // CentOS на смену популярному пакету ntpd, пришел chrony, который функционально и по настройке мало отличается от своего предшественника. Установим пакет командой:

dnf install chrony
Установка
Скриншот №2 — Установка

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

nano /etc/chrony.conf
Конфигурационный файл
Скриншот №3 — Конфигурационный файл

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

pool 0.eu.pool.ntp.org iburst
pool 1.eu.pool.ntp.org prefer
server ntpo.NL.net
server ntp2.vniiftri.ru
server ntp.ix.ru
server ntps1-1.cs.tu-berlin.de
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
allow 192.168.0.0/16
# Specify directory for log files.
logdir /var/log/chrony
# Select which information is logged.
#log measurements statistics tracking
makestep 1 -1

В качестве сервера времени, можно указать любой из пулов серверов доменной зоны страны. Чтобы найти их список можно воспользоваться поисковым запросом «Список серверов NTP» или же прописать приведенные выше в настройках. Метки Burst и Prefer определяют более точные показатели времени и предпочитаемый пул/сервер соответственно.

Все действия были выполнены в среде облачного сервера от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:

Создание сервера
Скриншот №4 — Создание сервера

Потребуется некоторое время для развертывания серверных мощностей. После чего вы можете подключиться любым из удобных способов. На основе предлагаемы VPS и VDS серверов, так же можно развернуть уже свою виртуальную инфраструктуру.

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

systemctl daemon-reload && systemctl enable --now chronyd
Запущенная служба
Скриншот №5 — Запущенная служба

Для проверки работоспособности нашего сервиса обратимся к утилите chronyc с запросом:

chronyc sources
Список Stratum
Скриншот №6 — Список Stratum

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

timedatectl list-timezones
Time Zones
Скриншот №7— Time Zones

После чего выберем необходимый следующей командой:

timedatectl set-timezone Asia/Tokyo && date
Смена часового пояса
Скриншот №8 — Смена часового пояса

Отлично, после необходимо настроить клиент, так же устанавливаем пакет chrony:

dnf install chrony  &&  nano /etc/chrony.conf

Перейдя в файл необходимо указать наш созданный сервер:

server 192.168.1.2 iburst

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

systemctl saemon-reload && systemctl enable--now chrony

После чего проверить работу можно так же через утилиту chronyc:

chronyc sources

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

Оценка:
5 из 5
Аverage rating : 5
Оценок: 1
100029 Ташкент Улица Якка Чинар, дом 2/1
ООО «ИТГЛОБАЛКОМ ЛАБС»

Вам также может быть интересно...