В этой статье мы обсудим, как установить и настроить Chrony, альтернативный клиент и сервер NTP для Unix-подобных систем. Chrony может быстрее синхронизировать системные часы с лучшей точностью времени, и он может быть особенно полезен для систем, которые не работают в сети все время. Chrony является бесплатным, с открытым исходным кодом и поддерживает варианты GNU/Linux и BSD, такие как FreeBSD, NetBSD, macOS и Solaris.
Установка Chrony
Chrony доступен по умолчанию в репозиториях для большинства дистрибутивов Linux. Если вы работаете в Arch Linux, запустите следующую команду:
$ sudo pacman -S chrony
На Debian, Ubuntu, Linux Mint:
$ sudo apt-get install chrony
На Fedora:
$ sudo dnf install chrony
После установки запустите демон chronyd.service, если он еще не запущен:
$ sudo systemctl start chronyd.service
Настройте его автоматически запускаться при каждой перезагрузке с помощью команды:
$ sudo systemctl enable chronyd.service
Чтобы проверить, запущен ли сервис Chronyd.service, выполните:
$ sudo systemctl status chronyd.service
Если все в порядке, вы увидите вывод, как показано ниже.
● chrony.service - chrony, an NTP client/server Loaded: loaded (/lib/systemd/system/chrony.service; enabled; vendor preset: ena Active: active (running) since Wed 2018-10-17 10:34:53 UTC; 3min 15s ago Docs: man:chronyd(8) man:chronyc(1) man:chrony.conf(5) Main PID: 2482 (chronyd) Tasks: 1 (limit: 2320) CGroup: /system.slice/chrony.service └─2482 /usr/sbin/chronyd Oct 17 10:34:53 ubuntuserver systemd[1]: Starting chrony, an NTP client/server... Oct 17 10:34:53 ubuntuserver chronyd[2482]: chronyd version 3.2 starting (+CMDMON Oct 17 10:34:53 ubuntuserver chronyd[2482]: Initial frequency -268.088 ppm Oct 17 10:34:53 ubuntuserver systemd[1]: Started chrony, an NTP client/server. Oct 17 10:35:03 ubuntuserver chronyd[2482]: Selected source 85.25.84.166 Oct 17 10:35:03 ubuntuserver chronyd[2482]: Source 85.25.84.166 replaced with 2403 Oct 17 10:35:03 ubuntuserver chronyd[2482]: Selected source 91.189.89.199 Oct 17 10:35:06 ubuntuserver chronyd[2482]: Selected source 106.10.186.200
Как вы можете видеть, сервис Chrony запущен и работает!
Настройка Chrony
Клиенты NTP должны знать, с какими серверами NTP он должен связаться, чтобы получить текущее время. Мы можем указать серверы NTP в директиве server или pool в файле конфигурации NTP. Обычно конфигурационный файл по умолчанию: /etc/chrony/chrony.conf или /etc/chrony.conf в зависимости от версии дистрибутива Linux. Для повышения надежности рекомендуется указать не менее трех серверов.
Следующие строки – это всего лишь пример, взятый с сервера Ubuntu 18.04 LTS.
[...] # About using servers from the NTP Pool Project in general see (LP: #104525). # Approved by Ubuntu Technical Board on 2011-02-08. # See http://www.pool.ntp.org/join.html for more information. pool ntp.ubuntu.com iburst maxsources 4 pool 0.ubuntu.pool.ntp.org iburst maxsources 1 pool 1.ubuntu.pool.ntp.org iburst maxsources 1 pool 2.ubuntu.pool.ntp.org iburst maxsources 2 [...]
Как видно из вышесказанного, NTP Pool Project был установлен как сервер времени по умолчанию. Для тех, кто задается вопросом, проект пула NTP представляет собой кластер временных серверов, который обеспечивает службу NTP для десятков миллионов клиентов по всему миру. Это сервер времени по умолчанию для Ubuntu и большинства других основных дистрибутивов Linux.
Вот:
- параметр iburst используется для ускорения начальной синхронизации.
- к maxsources относится максимальное число источников NTP.
Убедитесь, что выбранные вами серверы NTP хорошо синхронизированы, стабильны и близки к вашему местоположению, чтобы улучшить точность времени с помощью источников NTP.
Управление Chronyd из командной строки
У Chrony есть утилита командной строки с именем chronyc для управления и мониторинга демона chrony (chronyd).
Чтобы проверить синхронизацию chrony, мы можем использовать команду tracking, как показано ниже.
$ chronyc tracking Reference ID : 6A0ABAC8 (t1.time.sg3.yahoo.com) Stratum : 3 Ref time (UTC) : Wed Oct 17 11:48:51 2018 System time : 0.000984587 seconds slow of NTP time Last offset : -0.000912981 seconds RMS offset : 0.007983995 seconds Frequency : 23.704 ppm slow Residual freq : +0.006 ppm Skew : 1.734 ppm Root delay : 0.089718960 seconds Root dispersion : 0.008760406 seconds Update interval : 515.1 seconds Leap status : Normal
Мы можем проверить текущие источники времени, которые использует с командой chrony:
$ chronyc sources 210 Number of sources = 8 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- chilipepper.canonical.com 2 10 377 296 +102ms[ +104ms] +/- 279ms ^- golem.canonical.com 2 10 377 302 +105ms[ +107ms] +/- 290ms ^+ pugot.canonical.com 2 10 377 297 +36ms[ +38ms] +/- 238ms ^- alphyn.canonical.com 2 10 377 279 -43ms[ -42ms] +/- 238ms ^- dadns.cdnetworks.co.kr 2 10 377 1070 +40ms[ +42ms] +/- 314ms ^* t1.time.sg3.yahoo.com 2 10 377 169 -13ms[ -11ms] +/- 80ms ^+ sin1.m-d.net 2 10 275 567 -9633us[-7826us] +/- 115ms ^- ns2.pulsation.fr 2 10 377 311 -75ms[ -73ms] +/- 250ms
Утилита Chronyc может найти статистику каждого источника, например, скорость дрейфа и процесс оценки смещения, используя команду sourcestats.
$ chronyc sourcestats 210 Number of sources = 8 Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ============================================================================== chilipepper.canonical.com 32 16 89m +6.293 14.345 +30ms 24ms golem.canonical.com 32 17 89m +0.312 18.887 +20ms 33ms pugot.canonical.com 32 18 89m +0.281 11.237 +3307us 23ms alphyn.canonical.com 31 20 88m -4.087 8.910 -58ms 17ms dadns.cdnetworks.co.kr 29 16 76m -1.094 9.895 -83ms 14ms t1.time.sg3.yahoo.com 32 16 91m +0.153 1.952 +2835us 4044us sin1.m-d.net 29 13 83m +0.049 6.060 -8466us 9940us ns2.pulsation.fr 32 17 88m +0.784 9.834 -62ms 22ms
Если ваша система не подключена к Интернету, вам необходимо уведомить Chrony о том, что система не подключена к Интернету. Для этого запустите:
$ sudo chronyc offline [sudo] password for sk: 200 OK
Чтобы проверить статус источников NTP, просто запустите:
$ chronyc activity 200 OK 0 sources online 8 sources offline 0 sources doing burst (return to online) 0 sources doing burst (return to offline) 0 sources with unknown address
Как вы видите, все мои источники NTP в данный момент недоступны.
Как только вы подключитесь к Интернету, просто сообщите Chrony, что ваша система снова подключена к сети, используя команду:
$ sudo chronyc online 200 OK
Чтобы просмотреть состояние источника(ов) NTP, выполните:
$ chronyc activity 200 OK 8 sources online 0 sources offline 0 sources doing burst (return to online) 0 sources doing burst (return to offline) 0 sources with unknown address
Для более подробного объяснения всех параметров и параметров см. Справочные страницы.
$ man chronyc
$ man chronyd
И это все на данный момент. Надеемся, это было полезно. В последующих руководствах мы увидим, как настроить локальный NTP-сервер с помощью Chrony и настроить клиентов для его использования для синхронизации времени.
Оставайтесь в курсе!