Сохранение точной даты и времени в системе Linux очень важно, потому что многие службы, такие как задания cron и сценарии, полагаются на точное время, чтобы функционировать должным образом. Протокол сетевого времени, сокращенно NTP, – это протокол, который поддерживает точное время в системе Linux. Это интернет-протокол, который играет роль в синхронизации часов системы Linux с доступными онлайн-серверами NTP.
Старый добрый демон ntpd, который использовался для синхронизации настроек времени и даты, устарел и недоступен для современных систем Linux, таких как Ubuntu 20.04, Fedora 30 и CentOS 8. Вместо него у нас есть chrony, который является реализацией NTP, разработанный RedHat.
Chrony делает лучший выбор по следующим причинам:
- Chrony синхронизирует время намного быстрее, чем его предшественник, NTP.
- Это компенсирует проблемы с задержкой и задержки в сети.
- Он по-прежнему хорошо работает даже при ухудшении качества сети.
- Вы можете настроить локальный сервер с помощью chrony, чтобы он действовал как сервер времени, с которого остальные клиентские ПК могут получать настройки даты и времени.
Структура 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 по умолчанию.
Проверить синхронизацию времени с Chronyc
Чтобы убедиться, что Chrony действительно запущен, и просмотреть пиров и серверы, к которым он подключен, выполните команду:
$ chronyc activity
Чтобы просмотреть подробный список серверов времени, их IP-адреса, временной сдвиг и смещение, не говоря уже о некоторых параметрах, выполните:
$ chronyc sources
С флагом -v вы можете получить более подробную информацию, как показано:
$ chronyc sources -v
Вы также можете подтвердить, что Chrony синхронизирован, используя команду ниже. Reference ID дает вам имя сервера, на которое ваша система указывает для получения настроек времени и даты. Другие подробности, такие как Последнее смещение и Системное время, показывают, как далеко система находится от сервера NTP.
$ chronyc tracking
Команда timedatectl также пригодится и поможет вам узнать, включена ли служба NTP или нет.
Настроить NTP-клиент
Чтобы настроить другую систему в вашей локальной сети в качестве клиента и направить ее на ваш NTP-сервер, выполните следующие действия.
На сервере NTP перейдите к файлу конфигурации Chrony, раскомментируйте директиву allow и укажите маску подсети.
Сохраните и выйдите из файла конфигурации.
Обязательно разрешите службу 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.