Поиск по сайту:

Как установить NTP с помощью Chrony в Linux


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

Старый добрый демон ntpd, который использовался для синхронизации настроек времени и даты, устарел и недоступен для современных систем Linux, таких как Ubuntu 20.04, Fedora 30 и CentOS 8. Вместо него у нас есть chrony , который является реализацией NTP, разработанной RedHat.

Chrony делает лучший выбор по следующим причинам:

  • Chrony синхронизирует время намного быстрее, чем его предшественник NTP.

  • Это компенсирует проблемы с задержкой и задержки в сети.

  • Он по-прежнему хорошо работает даже при деградации сети.

  • Вы можете настроить локальный сервер с chrony для работы в качестве сервера времени, с которого остальные клиентские ПК могут получать настройки даты и времени.

Структура Хрони

Chrony состоит из демона chronyd и инструмента командной строки chronyc. Демон chronyd работает в фоновом режиме и синхронизирует системное время с серверами, указанными в файле /etc/chrony.conf.

Утилита командной строки chronyc позволяет пользователям взаимодействовать с chrony и извлекать как можно больше информации.
Мы начнем с установки Chrony в различных дистрибутивах Linux.

Установите Chronyd в Linux

В современных системах Chronyd устанавливается по умолчанию. Однако chrony не включен в старые системы Linux, которые все еще полагаются на устаревший пакет NTP.

Итак, вот как вы можете установить Chrony.

В Ubuntu/Debian/Mint

$ sudo apt-get install chronyd

В CentOS/RHEL

$ sudo yum install chronyd

После установки включите и запустите демон Chronyd следующим образом:

$ sudo systemctl --enable now chronyd

Затем подтвердите статус следующим образом:

$ sudo systemctl status chronyd

Как вы можете видеть, демон chronyd активен и работает, как и ожидалось.

Конфигурационный файл Хрони

Настройки Chrony определяются в файле конфигурации /etc/chrony.conf или /etc/chrony/chrony.conf. Первоначально вмешательство не требуется, поскольку значения по умолчанию уже синхронизируют вашу систему с доступными пулами серверов NTP. Основные дистрибутивы Linux, такие как Ubuntu, CentOS, RHEL и Fedora, имеют свои пулы NTP по умолчанию.

Из приведенного ниже файла конфигурации пул серверов NTP, с которым синхронизируется система Linux, называется pool 2.centos.pool.ntp.org iburst.

Для Ubuntu это выглядит так, как показано.

Проверить синхронизацию времени с Chronyc

Чтобы убедиться, что Chrony действительно запущен, и просмотреть пиры и серверы, к которым он подключен, выполните команду:

$ chronyc activity

Чтобы просмотреть подробный список серверов времени, их IP-адресов, перекоса времени и смещения, а также нескольких параметров, выполните:

$ chronyc sources

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

$ chronyc sources -v

Вы также можете подтвердить, что хрония синхронизирована, используя приведенную ниже команду. Идентификатор ссылки дает вам имя сервера, на который ваша система указывает для получения настроек времени и даты. Другие детали, такие как Последнее смещение и Системное время, указывают, насколько далеко система находится от сервера NTP.

$ chronyc tracking

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

Настроить NTP-клиент

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

На NTP-сервере перейдите к файлу конфигурации Chrony, раскомментируйте директиву allow и укажите маску подсети. В моем случае маска подсети — 192.168.2.0/24.

Сохраните и выйдите из файла конфигурации.

Обязательно разрешите службу NTP через брандмауэр. В моем случае я открою брандмауэр на CentOS 8 следующим образом:

$ sudo firewall-cmd --permanent --add-service=ntp

Затем перезагрузите, чтобы изменения вступили в силу:

$ sudo firewall-cmd --reload

Затем перезапустите демон chronyd.

$ sudo systemctl restart chronyd

В клиентской или удаленной системе раскомментируйте все пулы NTP и добавьте показанную строку. Предоставленный IP-адрес является IP-адресом NTP-сервера. Для вашего случая это, конечно, будет иначе, поэтому отредактируйте это соответствующим образом.

сервер 192.168.2.109

Снова перезапустите демон chronyd, чтобы изменения отразились.

$ sudo systemctl restart chronyd

Теперь клиентская система будет направлена на сервер NTP в той же сети, как показано.

Заключение

Мы продемонстрировали, как установить NTP в Linux с помощью службы Chrony и как настроить клиентскую систему так, чтобы она указывала на сервер NTP.

Статьи по данной тематике: