• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

Использование NTP в Linux с Chrony

 

NTP обозначает Network TIME Protocol и является стандартом для синхронизации времени между двумя устройствами по сети. Точное время имеет решающее значение для вычислений. Это гарантирует, что ваши журналы имеют правильную метку времени, что упрощает поиск и диагностику проблем, возникших в определенное время. Он также используется для многих методов безопасности, таких как двухфакторная аутентификация , когда токен действителен только в течение определенного времени. Использование NTP считается одним из лучших способов поддерживать точность системного времени. Единственным недостатком является то, что вам нужно поддерживать сетевое соединение. Он также стал важным элементом для устройств IoT, которые могут не иметь собственных аппаратных часов реального времени для экономии энергии и места на печатной плате. Чтобы настроить NTP на вашем устройстве Linux, мы покажем вам, как использовать пакет под названием Chrony.

Что такое Хрони?

Chrony - это реализация протокола сетевого времени, который изначально был написан Ричардом Керноу. Эта реализация была разработана как более современная замена ntpd. Он обладал дополнительными функциями, такими как возможность синхронизации системных часов с использованием аппаратных меток времени. Это помогает повысить точность синхронизации времени по локальной сети (LAN). Кроме того, Chrony может синхронизировать время даже при прерывистом сетевом подключении или перегруженных сетях. Это делает Chrony очевидным выбором по сравнению с исходной реализацией ntp. Chrony стал реализацией NTP по умолчанию для различных операционных систем, включая RHEL 8 и SUSE 15.

Установка клиента Chrony NTP

Прежде чем мы начнем, мы должны убедиться, что у нас установлены демон и клиент Chrony NTP. К счастью для нас, Chrony доступен практически во всех основных дистрибутивах и относительно прост в установке.

1. Поскольку в дистрибутивах Linux используются разные менеджеры пакетов, способ установки Chrony может незначительно отличаться. В операционной системе на основе Debian / Ubuntu , такой как ОС Raspberry Pi, вы можете установить Chrony, используя следующие aptкоманды.

sudo apt install chrony

Если вы используете CentOS или RHEL , вам нужно будет использовать yumpackage mange для установки Chrony.

sudo yum install chrony

Наконец, если вы используете Fedora 22 или новее , вам придется использовать dnfдля установки Chrony в вашей операционной системе.

sudo dnf install chrony

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

sudo systemctl enable chrony

sudo systemctl start chrony

3. Теперь, когда демон Chrony NTP запущен на нашем устройстве Linux, давайте проверим статус служб. Все, что нам нужно сделать, чтобы получить статус службы, - это выполнить следующую команду.

sudo systemctl status chrony

Используя команду status, вы должны получить что-то похожее на то, что показано ниже.

$ sudo systemctl status chrony

● chrony.service - chrony, an NTP client/server

   Loaded: loaded (/lib/systemd/system/chrony.service; enabled; vendor preset: enabled)

   Active: active (running) since Tue 2020-09-08 15:41:17 AEST; 12min ago

     Docs: man:chronyd(8)

           man:chronyc(1)

           man:chrony.conf(5)

 Main PID: 6826 (chronyd)

    Tasks: 2 (limit: 4915)

   Memory: 1.0M

   CGroup: /system.slice/chrony.service

           ├─6826 /usr/sbin/chronyd -F -1

           └─6827 /usr/sbin/chronyd -F -1

 

Sep 08 15:41:17 pimylifeup systemd[1]: Starting chrony, an NTP client/server...

Этот текст указывает на то, что служба в настоящее время активна и работает, и что она была включена.

4.Мы также можем использовать пакет командной строки Chrony « chronyc» для получения активности. Чтобы получить активность, вы можете выполнить следующую команду, указав « chronyc» и ее параметр « activity».

chronyc activity

Эта команда Chrony предоставит вам статус клиента NTP, работающего на вашем устройстве Linux.

$ chronyc activity

200 OK

4 sources online

0 sources offline

0 sources doing burst (return to online)

0 sources doing burst (return to offline)

0 sources with unknown address

Он покажет свой текущий статус и покажет, к скольким серверам он подключен в настоящее время и находятся ли они в сети. Эта команда может быть полезна, чтобы убедиться, что вы не подключены к плохому пулу NTP.

Настройка источников NTP для Chrony

Если есть конкретный пул или сервер NTP, к которому вы хотите подключиться, то настройка Chrony - простая задача. В этом разделе мы будем использовать текстовый редактор nano,  но вы можете использовать любой редактор, который вам удобнее.

1. Чтобы настроить пул NTP, к которому мы подключаемся, нам нужно будет изменить файл конфигурации Chrony. Файл конфигурации может находиться в двух разных местах. Для CentOS , RHEL или Fedora вы можете редактировать файл конфигурации в папке « /etc/chrony.conf».

sudo nano /etc/chrony.conf

Если вы используете систему на основе Ubuntu или Debian , вы можете использовать nano для редактирования файла, расположенного по адресу « /etc/chrony/chrony.conf«.

sudo nano /etc/chrony/chrony.conf

Если вы не нашли файл конфигурации в одном месте, обязательно попробуйте другое.

2. В этом файле есть два разных способа найти указанный NTP-сервер. Первая - это serverдиректива « ». Эта директива позволяет вам указать отдельные NTP-серверы, с которыми вы хотите синхронизировать время. Вы также можете использовать это, чтобы указать несколько серверов NTP. Программа Chrony автоматически выберет лучший.

server 0.pool.ntp.org iburst

server 1.pool.ntp.org iburst

server 2.pool.ntp.org iburst

server 3.pool.ntp.org iburst

Альтернативный метод - использовать poolдирективу « ». Вы используете эту директиву для доменных имен, которые разрешаются в несколько адресов.

pool 0.pool.ntp.org iburst

Как видите, настройка серверов NTP для подключения Chrony - относительно простой процесс.

3. После того, как вы добавили свои конфигурации NTP в файл, сохраните его. Если вы используете nano, вы можете сохранить файл, нажав CTRL+ X, а Yзатем, затем ENTER.

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

sudo systemctl restart chrony

5. Вы можете проверить, что Chrony теперь использует ваши новые источники NTP, используя следующую команду. Эта команда использует инструмент командной строки Chrony для вывода списка активных источников.

chronyc sources

Ниже приведен пример результата, который вы получите от этой команды.

$ chronyc sources

210 Number of sources = 4

MS Name/IP address         Stratum Poll Reach LastRx Last sample

===============================================================================

^- dns01.syd01.privatecloud>     2  10   377   824  +2125us[+1813us] +/-   60ms

^- ec2-13-55-50-68.ap-south>     3  10   377   33m  +3654us[+3436us] +/-  151ms

^+ ntp3.ds.network               4   9   377   237   -553us[ -553us] +/-   29ms

^* time.cloudflare.com           3  10   377   798    -82us[ -396us] +/-   15ms

Проверка синхронизации времени NTP с помощью Chrony

В этом разделе мы покажем вам, как вы можете использовать Chrony, чтобы проверить, как ваша система использует NTP для синхронизации своего времени. Используя эти методы, вы можете многое узнать о том, что происходит между Chrony и серверами NTP.

Проверка учета времени Хрони

Первая команда, которую мы покажем вам, предоставит вам подробную информацию о сервере NTP, к которому в настоящее время подключен Chrony, и о том, как он влияет на системное время. Используя trackingаргумент « », мы можем Chronyраскрыть детали синхронизации времени нашей системы.

1. Чтобы получить информацию об отслеживании от Chrony, выполните на своем устройстве следующую команду.

chronyc tracking

2. Из этой команды вы должны получить что-то вроде того, что мы показали ниже.

$ chronyc tracking

Reference ID    : A29FC801 (time.cloudflare.com)

Stratum         : 4

Ref time (UTC)  : Tue Sep 08 06:21:18 2020

System time     : 0.000133173 seconds fast of NTP time

Last offset     : +0.000149029 seconds

RMS offset      : 0.000352518 seconds

Frequency       : 14.469 ppm fast

Residual freq   : +0.000 ppm

Skew            : 0.137 ppm

Root delay      : 0.027979819 seconds

Root dispersion : 0.001329423 seconds

Update interval : 256.0 seconds

Leap status     : Normal

Мы рассмотрим некоторую информацию, предоставленную этой командой, и вы сможете понять, о чем она вам сообщает.

Referenced ID: Это поле сообщает нам идентификатор и доменное имя (или IP-адрес) NTP-сервера, с которым Chrony в настоящее время синхронизируется. В этом примере вы можете видеть, что в настоящее время мы подключаемся к серверам времени Cloudflare. Обратите внимание, что если этот идентификатор равен « 127.127.1.1», ваше устройство в настоящее время не синхронизирует время с какими-либо внешними серверами NTP.

 Stratum: Это число указывает вам, насколько далеко от исходного времени находится ваш сервер. В этом примере наше устройство классифицируется как источник слоя 4, поскольку мы подключаемся к источнику слоя 3. Это значение не показатель того, насколько точным или надежным может быть NTP-сервер, а просто то, насколько он удален от исходного сервера времени (слой 0). Источником слоя 0 может быть что-то сверхточное, например атомные часы.

Ref time (UTC): Это поле дает нам время в формате UTC, в которое Chrony обработал последнее измерение с исходного сервера NTP.

System Time: Это значение указывает, насколько ваше системное время быстрее или медленнее, чем время сервера NTP. Вместо того чтобы устанавливать это время на системных часах, Chrony медленно корректирует их, слегка ускоряя или замедляя их. Chrony будет продолжать делать это до тех пор, пока системное время не совпадет со временем серверов NTP. Программное обеспечение делает это, чтобы перестать вызывать ошибки в программном обеспечении, чувствительном ко времени, из-за внезапного сдвига во времени.

Проверка источников NTP Chrony

Используя простую команду, мы также можем отобразить информацию об источниках NTP, которые использует Chrony. Все, что нам нужно сделать, это запустить следующую команду, используя chronycинструмент командной строки «», за которым следует « sources».

chronyc sources

Кроме того, мы будем использовать -vфлаг « ». Этот флаг является необязательным и используется для добавления дескрипторов в каждый из столбцов, чтобы вы могли понять, для чего они используются. Используя эту команду, вы должны получить результат, аналогичный приведенному ниже. Он покажет ваши различные источники и их статус.

$ chronyc sources -v

210 Number of sources = 4

 

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.

 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,

| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.

||                                                 .- xxxx [ yyyy ] +/- zzzz

||      Reachability register (octal) -.           |  xxxx = adjusted offset,

||      Log2(Polling interval) --.      |          |  yyyy = measured offset,

||                                \     |          |  zzzz = estimated error.

||                                 |    |           \

MS Name/IP address         Stratum Poll Reach LastRx Last sample

===============================================================================

^- dns01.syd01.privatecloud>     2  10   377   779  +6038us[+5985us] +/-   70ms

^- ec2-13-55-50-68.ap-south>     3  10   377   367  +4505us[+4447us] +/-  113ms

^+ ntp3.ds.network               4  10   377   677   +725us[ +671us] +/-   30ms

^* time.cloudflare.com           3  10   377   256    +55us[-4399ns] +/-   15ms

Эта команда перечисляет данные о ваших источниках, такие как частота опроса, что этот источник для вас, синхронизируется ли он в настоящее время и многое другое. В нашем примере выше вы можете видеть, что в настоящее время мы используем time.cloudflare.comсервер NTP для синхронизации времени на нашем устройстве Linux.

Получение статистики сервера NTP с помощью Chrony в Linux

Последняя особенность, Chronyкоторую мы собираемся использовать, - это команда « sourcestats». Эта команда отображает некоторую статистику из источников, которые Chrony постоянно опрашивает.

chronyc sourcestats -v

Как и в случае с sourcesкомандой « -v», флаг « » не является обязательным. Однако это помогает понять, для чего используются некоторые столбцы. Ниже приведен пример данных, возвращаемых с помощью этой команды.

$ chronyc sourcestats -v

210 Number of sources = 4

                             .- Number of sample points in measurement set.

                            /    .- Number of residual runs with same sign.

                           |    /    .- Length of measurement set (time).

                           |   |    /      .- Est. clock freq error (ppm).

                           |   |   |      /           .- Est. error in freq.

                           |   |   |     |           /         .- Est. offset.

                           |   |   |     |          |          |   On the -.

                           |   |   |     |          |          |   samples. \

                           |   |   |     |          |          |             |

Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev

==============================================================================

dns01.syd01.privatecloud>   6   3   86m     -0.135      1.675  +3292us   979us

ec2-13-55-50-68.ap-south>  14   6  241m     -0.040      0.082  +4483us   287us

ntp3.ds.network            13   6  309m     +0.080      0.119   +527us   593us

time.cloudflare.com        13   9  224m     -0.065      0.103   -316us   354us

Используя информацию, предоставленную этой командой, вы можете увидеть количество предоставленных точек выборки, длину измерения, предполагаемую частоту ошибок, а также дополнительную информацию.

Эти значения могут помочь диагностировать данные, которые ваше устройство Linux получает из этих служб NTP.

 




Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 373



          

Радио для всех© 2024