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

by itisgood

Продолжая тему NTP прошлой статьи:

Как установить NTP-сервер и клиент на Ubuntu 18.04 LTS

В этом уроке мы обсудим, как установить и настроить 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 daemon, если он еще не запущен:

$ 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 в директиве сервера или пула в файле конфигурации 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 для управления и мониторинга демона (chronyd).

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

$ 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

Мы можем проверить текущие источники времени, которые инструмент использует  командой:

$ 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

 

You may also like

1 comment

Leave a Comment