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

Chrony — альтернативный NTP-клиент и сервер для Unix-подобных систем

В этом руководстве мы обсудим, как установить и настроить Chrony, альтернативный NTP-клиент и сервер для Unix-подобных систем. Chrony может синхронизировать системные часы быстрее и с большей точностью времени, и это может быть особенно полезно для систем, которые не постоянно находятся в сети. Chrony бесплатен, имеет открытый исходный код и поддерживает варианты GNU/Linux и BSD, такие как FreeBSD, NetBSD, macOS и Solaris.

Установка Хрони

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

sudo pacman -S chrony

В Debian, Ubuntu, Linux Mint:

sudo apt-get install chrony

В Федоре:

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 запущен и работает!

Настроить Хрони

Клиентам 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 и настроить клиенты на его использование для синхронизации времени.

Следите за обновлениями!

Ресурс:

  • Главная страница Chrony

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