Как проверить ntp сервер linux

Обновлено: 04.07.2024

NTP можно установить и настроить в Linux, выполнив несколько простых шагов:

  1. Установите службу NTP.
  2. Измените файл конфигурации NTP, ‘/etc/ntp.conf’, добавив необходимые параметры.
  3. Добавьте одноранговые опорные часы в файл конфигурации.
  4. Добавить местоположение файла смещения в файл конфигурации.
  5. Добавьте необязательный каталог статистики в файл конфигурации.
  6. Включите и запустите службу NTP.
  7. Проверьте состояние работы и синхронизации.

Введение

Если вам нужно, чтобы системное время на вашем компьютере с Linux было точным, NTP — это решение. Network Time Protocol — это набор приложений, который позволяет компьютерам координировать свое системное время. Здесь мы опишем простые шаги, необходимые для установки и настройки NTP. Этот процесс применим к большинству дистрибутивов Linux.

Установка NTP в Linux

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

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

Для менее известных дистрибутивов Linux NTP доступен в виде исходного кода для компиляции на хост-системе.

Настройка NTP

NTP настраивается с помощью файла конфигурации – ntp.conf. Файл обычно находится в каталоге /etc/, но может быть расположен и в другом месте, как указано в параметре командной строки «ntpd -c». Файл читается демоном NTP при запуске. Демон необходимо перезапустить, чтобы любые изменения в файле конфигурации вступили в силу.

Файл соответствует стандартному формату, подобному многим другим файлам конфигурации Linux, и может быть изменен с помощью любого стандартного текстового редактора, такого как gedit или nano.

Добавить одноранговые опорные часы

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

Операнд адреса – это доменное имя или IP-адрес NTP-сервера, который будет использоваться для синхронизации.

Опция «prefer» может использоваться для указания предпочтительного однорангового узла. При прочих равных предпочитаемый узел будет выбран NTP из списка равноправных узлов. Предпочтительный параметр следует указывать только один раз.

Кроме того, рекомендуется указывать нечетное количество пиров. В этом случае можно легко обнаружить смещение времени, выходящее за допустимые пределы в любом из одноранговых узлов. Затем одноранговый узел может быть отброшен алгоритмом выбора.

Добавить дрейф-файл

NTP использует файл дрейфа для хранения смещения частоты локального тактового генератора. Сдвиг частоты хранится в миллионных долях (PPM). Файл обновляется службой NTP каждый час. Рекомендуется указать файл дрейфа, поскольку он позволяет NTP быстрее синхронизировать локальные часы при запуске. Дрейф-файл определяется следующим образом:

Указание каталога файла статистики

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

Пример файла конфигурации NTP

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

Однако более полный файл конфигурации будет включать в себя несколько серверов, дрейф-файл и каталог статики:

Включение и запуск службы NTP

NTP можно включить и запустить с правами суперпользователя с помощью команды Linux systemctl:

Служба NTP должна быть перезапущена, чтобы любые изменения конфигурации вступили в силу:

Службу также можно остановить или отключить следующим образом:

Тестирование и отладка NTP

Вы можете в любой момент проверить работу службы NTP с помощью команды ntpq.

Команда предоставляет список настроенных одноранговых узлов и связанных с ними характеристик производительности синхронизации.

Первый символ в списке одноранговых узлов – это контрольный код, указывающий на состояние синхронизации. Если символ представляет собой звездочку (*), то одноранговый узел в настоящее время используется для синхронизации. Это указывает на то, что локальные системные часы синхронизированы с узлом.

Типичные значения итогового кода:

'*' — узел объявлен системным узлом и используется для синхронизации.

'+' — одноранговый узел находится в допуске и используется в алгоритме объединения. Одноранговый узел может использоваться в случае отказа от системного однорангового узла. Другие символы обычно указывают на то, что часы были отброшены алгоритмом выбора.

Другие поля в списке одноранговых узлов:

Remote — определяет адрес узла.

Refid — указывает источник синхронизации однорангового узла. Обычно GPS или GNSS для обозначения аппаратных часов слоя 1. Однако это также может быть адрес, если одноранговый узел находится на более низком уровне в иерархии NTP. Уровень 1 — самый высокий уровень, уровень 15 — самый низкий.

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

Когда — когда был получен последний пакет в секундах.

Опрос — период опроса узла в секундах.

Reach — восьмеричное представление флагов синхронизации.

Delay — задержка при опросе в миллисекундах.

Смещение — текущее смещение или разница во времени между одноранговым и локальным системным временем.

Джиттер — измерение отклонения пакетов синхронизации от однорангового узла в миллисекундах. Это показатель качества часов. Меньшее дрожание указывает на более высокое качество синхронизации.

Безопасность NTP

Защита NTP осуществляется с помощью «криптографии с симметричным ключом» или «аутентификации», как это более известно. Это позволяет клиенту аутентифицировать сервер для надежного обмена информацией.

Аутентификация основана на ряде согласованных ключей или паролей, доступных как клиенту, так и серверу.

Когда сообщение передается с сервера клиенту, к нему добавляется зашифрованная версия одного из ключей. Ключи хранятся в файле с именем «ntp.keys». Ключи хранятся в файле в следующем формате:

Первое поле — это уникальный индикатор номера ключа. Второе поле обозначает алгоритм шифрования, который следует использовать для шифрования ключа, «M» указывает на наиболее распространенное шифрование MD5. Последнее поле — это сам фактический ключ. Можно указать любое количество ключей.

Помимо согласованных ключей, вы также можете указать, какой из ключей является доверенным. Следовательно, подмножество ключей может быть указано для использования в любое конкретное время. Например, указанные выше клавиши 2, 8 и 15 можно использовать в течение определенного периода времени. Доверенные ключи указываются в файле конфигурации NTP «ntp.conf» с помощью команды trustkey с номерами ключей, разделенными пробелами:

Отладка

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

Устранение неполадок

NTP использует UDP-порт 123 для связи с одноранговым узлом. Поэтому вы должны убедиться, что порт открыт в любом сетевом брандмауэре. Вам также нужно будет оставить порт открытым в любом приложении хост-брандмауэра. Кроме того, убедитесь, что не используется другое клиентское приложение NTP, например timesyncd или любое стороннее программное обеспечение.

Протокол сетевого времени (NTP) используется для синхронизации времени между несколькими серверами. Целью NTP является обеспечение «точности» часов отдельного узла. Для этого узел периодически синхронизирует свои часы с эталонным сервером. Вы можете указать несколько серверов, чтобы обеспечить избыточность в случае, если один или несколько серверов времени недоступны. Правильная синхронизация времени важна для поведения Couchbase Server for Expiry и для поддержания точной синхронности при разрешении конфликтов на основе временных меток (см. Синхронизация времени).

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

Конфигурация синхронизации времени

ntp config 3

На следующем рисунке показана рекомендуемая топология для синхронизации времени с использованием NTP.

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

В идеале NTP-сервер в каждом кластере должен ссылаться на один и тот же NTP-сервер в Интернете, чтобы иметь одинаковое время.

Базовая установка и конфигурация

Конфигурация NTP-сервера

Рекомендуемая конфигурация NTP-сервера

Для клиентов NTP, установленных на узлах Couchbase, доступны различные модели развертывания NTP для синхронизации времени, например:

Использование внешнего NTP-сервера для независимой синхронизации каждого узла Couchbase.

Использование выделенного сервера NTP (главного сервера, возможно, работающего на отдельном экземпляре) в кластере Couchbase. Этот сервер синхронизируется с внешними NTP-серверами (через Интернет), а остальная часть кластера будет синхронизироваться с этим сервером.

Использование выделенного пула серверов NTP в кластере Couchbase. Эти NTP-серверы в пуле синхронизируются с внешними NTP-серверами (через Интернет), а остальная часть кластера будет синхронизироваться с этим сервером.

В случае большого масштабируемого кластера Couchbase рекомендует запустить собственный пул серверов NTP, который синхронизируется извне.У вас должно быть как минимум два источника NTP в той же локальной сети, что и каждая группа серверов Couchbase. См. Управление группами. Эта конфигурация обеспечит идеальную относительную и абсолютную синхронизацию часов, высокую доступность и простоту обслуживания.

Couchbase рекомендует настраивать серверы/пул NTP в качестве одноранговых узлов в кластерах. Это позволяет серверам/пулу NTP в одном кластере иметь связь между серверами/пулом NTP другого кластера.

Конфигурация NTP-клиента

Для эффективной синхронизации часов в кластере Couchbase Server необходимо:

Запустите NTP на каждом узле.

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

Например, следующая команда запускает демон:

Направьте каждый экземпляр NTP на один и тот же набор эталонных серверов.

Укажите серверы времени в файле конфигурации NTP (обычно /etc/ntp.conf). Вы можете указать несколько серверов, по одному серверу в строке.

Рекомендуется настроить собственный NTP-сервер и синхронизировать NTP-клиенты.

Файл конфигурации считывается при запуске службы NTP. Таким образом, если вы измените файл конфигурации после запуска NTP, остановите и перезапустите службу, чтобы новые параметры конфигурации вступили в силу.

После того, как ntp.conf настроен с правильными настройками, запустите демон ntp.

Вы увидите, что NTP начнет медленно синхронизировать время вашего Linux-компьютера с NTP-сервером.

Как отмечено в документации NTP, важно помнить, что ntpdate с надуманными сценариями cron не заменяет демона NTP, который использует сложные алгоритмы для максимальной точности и надежности при минимальном использовании ресурсов.< /td>

Проверка конфигурации NTP

Чтобы убедиться, что ваша конфигурация NTP работает правильно, выполните следующее:

Используйте команду ntpstat для просмотра состояния службы NTP в экземпляре.

Если ваши выходные данные похожи на приведенные ниже, это означает, что NTP работает правильно на экземпляре.

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

Не запускайте XDCR, пока каждый узел в каждом кластере не будет указан как синхронизированный.

Если в выводе указано "Невозможно связаться с демоном NTP. Он запущен?", возможно, вам необходимо запустить службу NTP и включить ее автоматический запуск во время загрузки.

(Необязательно) Вы можете использовать команду ntpq -p, чтобы просмотреть список одноранговых узлов, известных серверу NTP, и сводку их состояния.

Если выходные данные этой команды не показывают активности, проверьте, не блокируют ли ваши группы безопасности, сетевые ACL или брандмауэры доступ к порту NTP.

NTP — это сокращение от «Network Time Protocol», которое используется для синхронизации времени сервера и клиентского компьютера. В этом процессе клиентская машина запрашивает у сервера текущее время, и сервер отправляет данные в виде пакетов. Существует универсальный стандарт времени, которому следуют все, известный как UTC (Универсальное координированное время). Порт 123 по умолчанию выделен серверу NTP, и весь этот процесс сопровождается протоколом пользовательских дейтаграмм (UDP).

В этом посте мы сосредоточимся на поиске NTP-сервера путем установки и настройки NTP в Debian.

Как мне найти свой NTP-сервер в Debian

NTP — это процесс, в котором клиентский компьютер запрашивает у сервера установку времени. Итак, сначала мы поймем, как установить и настроить сервер NTP, а затем узнаем, как узнать IP-адреса NTP.

Установка и настройка NTP: сначала мы обновим репозиторий Debian:


Мы установим последний доступный пакет NTP:


По умолчанию после установки NTP должен иметь активный статус, вы можете подтвердить это, проверив его статус, но если он неактивен, вы можете запустить сервер NTP:


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


Следовательно, NTP запущен. Теперь мы настроим брандмауэр так, чтобы он позволял клиенту запрашивать сервер, в противном случае он будет ограничивать отправку клиентом любого запроса и для этой цели сначала перейдет в корневой режим.


Запустите эти две команды здесь, попросив брандмауэр разрешить запросы на порт 123, который по умолчанию выделен для NTP.

iptables -A ВЫВОД -p udp --dport 123 -j ПРИНЯТЬ

iptables -A INPUT -p udp --dport 123 -j ПРИНЯТЬ


Теперь мы выйдем из режима пользователя root следующим образом:

Проверка работы NTP с помощью ntpstat: Команда ntpstat показывает нам, установлено ли соединение между сервером и клиентом, если соединение установлено, то статус будет «синхронизирован». Если ntpstat выдает ошибку «команда не найдена» при выполнении команды:


Затем мы можем установить ntpstat, выполнив следующую команду.

Теперь, чтобы проверить статус, снова запустите команду.


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


Результат «0» означает, что часы клиента синхронизированы с сервером. Другие результаты могут быть либо «1», что означает, что часы клиентского компьютера не синхронизированы с сервером, либо «2», что означает, что клиент не подключен к серверу.

Проверка сервера ntp с помощью команды ntpq: команда Ntpq отслеживает демон NTP, операции ntpd и определяет производительность NTP. Мы будем использовать флаги: p, что означает вывод всего списка пиров, известных серверу, со сводкой их состояния, и n, что означает отображение адресов хостов.


Заключение

NTP позволяет нам синхронизироваться с теми же единицами времени, что и мир. NTP устанавливает время своей машины, запрашивая у сервера информацию о времени, а затем оба синхронизируются со временем в Интернете. В этом посте мы обсудили два метода, с помощью которых мы можем получить информацию о нашем NTP-сервере в Debian. Надеюсь, этот пост поможет вам понять не только то, как найти наш NTP-сервер в Debian, но и установку и настройку NTP как на сервере, так и на клиентской машине.

Об авторе

Хаммад Захид

Я выпускник инженерного факультета, и моя страсть к ИТ привела меня к Linux. Теперь я учусь и делюсь своими знаниями со всем миром.

NTP означает протокол сетевого времени, который синхронизирует часы между компьютерными системами по сети.

Сервер NTP обеспечивает синхронизацию всех серверов с точным временем для выполнения задач, зависящих от времени, в организации. Клиент NTP синхронизирует свои часы с сетевым сервером времени.

Мы уже писали статью об установке и настройке NTP-сервера, клиента. Если вы хотите ознакомиться с этими статьями, перейдите по следующим ссылкам:

Я предполагаю, что мы настроили сервер NTP и клиент NTP, обратившись к приведенным выше ссылкам. В этом руководстве мы покажем вам, как проверить, работает ли настройка NTP?

Состояние синхронизации NTP можно проверить с помощью следующих трех команд:

  • ntpq: ntpq — это стандартная программа запросов NTP.
  • ntpstat: показывает статус синхронизации сетевого времени.
  • timedatectl: управляет системным временем и датой в системе systemd.

Давайте подробно разберем каждую из команд.

Метод 1: проверка состояния NTP с помощью команды ntpq

Команда ‘ntpq’ используется для мониторинга демона NTP и определения производительности, которую можно определить, отправив запрос на серверы NTP, работающие на хосте.

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

Если NTP работает правильно, вы должны получить следующий вывод:

Подробности:

  • -p: вывести список пиров, известных серверу, а также сводку об их состоянии.
  • remote: удаленный сервер NTP
  • st: уровень удаленного партнера.
  • t: тип узла (локальный, одноадресный, многоадресный или широковещательный).
  • когда: время получения последнего пакета, интервал опроса (в секундах).
  • опрос: как часто запрашивать сервер (в секундах)
  • reach: восьмеричная битовая маска успеха или неудачи последних 8 запросов.
  • delay: время прохождения сигнала по сети (в миллисекундах).
  • смещение: разница между локальными и удаленными часами (в миллисекундах).
  • джиттер: разница последовательных значений времени с сервера

Метод 2: Как проверить статус NTP с помощью команды ntpstat

ntpstat сообщит о состоянии синхронизации демона NTP (ntpd), работающего на локальном компьютере.

Если будет обнаружено, что локальная система синхронизирована с эталонным источником времени, ntpstat сообщит приблизительную точность времени.

Команда ntpstat возвращает три типа кодов состояния на основе синхронизации NTP, как указано ниже:

  • 0: возвращает 0, если часы синхронизированы.
  • 1: возвращает 1, если часы не синхронизированы.
  • 2: возвращает 2, если состояние часов не определено, например, если с ntpd невозможно связаться.

Способ 3. Проверка состояния синхронизации NTP с помощью команды timedatectl

команда timedatectl используется для запроса и изменения системных часов и их настроек в системе systemd:

Дополнительные советы:

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

Chronyd меньше по размеру, использует меньше системной памяти и пробуждает ЦП только при необходимости, что лучше для энергосбережения.

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

Запустите команду sources, чтобы отобразить информацию о текущих источниках времени:

Заключение

В этом руководстве вы узнали, как проверить статус синхронизации NTP в Linux с помощью трех разных команд.

Если у вас есть какие-либо вопросы, не стесняйтесь оставлять комментарии. Мы свяжемся с вами как можно скорее.

Читайте также: