Синхронизация времени linux chrony

Ubuntu — настройка NTP клиента Chrony

Ubuntu

Настроим NTP клиент Chrony на сервере Ubuntu для синхронизации с NTP серверами.

У меня есть парочка стареньких серверов Ubuntu 14, на которых постоянно отстаёт время, причём прилично так отстаёт. Еще есть корпоративные NTP сервера, с которыми было бы неплохо синхронизировать время.

Установим и настроим Chrony для синхронизации времени. После установки появится две программы:

  • chronyc — интерфейс командной строки для Chrony
  • chronyd — служба Chrony

Установка Chrony

ntp

service chrony status systemctl status chronyd etc/init.d/chronyd status

Для автозапуска вам может пригодиться:

systemctl enable chrony chkconfig --add chronyd

Настройка Chrony

Конфигурационный файл Chrony находится по адресу /etc/chrony/chrony.conf.

ntp

Настроим. Я указываю четыре NTP сервера:

server 10.12.33.13 iburst server 10.12.33.14 iburst server 10.12.33.15 iburst server 10.12.33.16 iburst stratumweight 0 driftfile /var/lib/chrony/chrony.drift rtcsync makestep 10 3 bindcmdaddress 127.0.0.1 keyfile /etc/chrony/chrony.keys commandkey 1 generatecommandkey noclientlog logchange 0.5 logdir /var/log/chrony
  • server — NTP-сервер для синхронизации
  • stratumweight — задержка синхронизации
  • driftfile — расположение и имя файла, содержащего данные смещения
  • rtcsync — включает режим, в котором системное время периодически копируется в RTC
  • makestep — эта директива корректирует смещение во времени путем снижения скорости или замедления хода часов
  • bindcmdaddress — позволяет указать IP-адрес интерфейса, на котором chronyd будет прослушивать пакеты команд мониторинга
  • keyfile — файл, содержащий пары ID-ключей для аутентификации пакетов NTP
  • commandkey — используется для установки номера ключа, используемого для аутентификации пользовательских команд с помощью программы chronyc во время выполнения
  • generatecommandkey — если командный ключ не найден при запуске, chronyd создаст новый командный ключ из файла /dev/urandom и запишет его в файл ключа
  • noclientlog — клиентские обращения не должны регистрироваться
  • logchange — пороговое значение для настройки системных часов, которые будут генерировать сообщение системного журнала
  • logdir — путь к файлу журнала
Читайте также:  Linux minimalistic file manager

ntp

ntp

Проверка Chrony

ntp

  • Reference ID — текущий источник синхронизации
  • Stratum — количество переходов
  • Ref time — время по Гринвичу
  • System time — задержка системных часов от синхронизированного сервера
  • Last offset — расчетное смещение последнего обновления часов
  • RMS offset — долгосрочное среднее арифметическое значения смещения
  • Frequency — это частота, на которой часы системы будут работать неправильно, если хронограф не проведет коррекцию. Она выражена в ppm — ч/м (частей на миллион)
  • Residual freq — остаточная частота указывает на разницу между измерениями от опорного источника и используемой в настоящее время частотой
  • Skew — расчетная погрешность частоты
  • Root delay — суммарная задержка сетевого пути к опорному серверу, с которым синхронизируется компьютер
  • Leap status — это статус, который может иметь одно из следующих значений — нормальное, добавить второй, удалить второй или не синхронизироваться

У меня Leap status — Normal, всё синхронизировано.

Источник

Sysadminium

В этой статье я покажу вам как установить сервер точного времени Chrony на Debian 11, а также как настроить и использовать его.

Клиент синхронизации времени на SystemD

В системах базирующихся на SystemD клиентом синхронизации времени, по умолчанию, выступает служба systemd-timesyncd.

$ sudo systemctl status systemd-timesyncd ● systemd-timesyncd.service - Network Time Synchronization Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2022-05-05 12:05:00 MSK; 2s ago Docs: man:systemd-timesyncd.service(8) Main PID: 60424 (systemd-timesyn) Status: "Initial synchronization to time server 91.189.94.4:123 (ntp.ubuntu.com)." Tasks: 2 (limit: 2274) Memory: 1.4M CGroup: /system.slice/systemd-timesyncd.service └─60424 /lib/systemd/systemd-timesyncd

Эта служба использует конфиг /etc/systemd/timesyncd.conf, именно в нём прописаны NTP сервера с которыми сервер синхронизирует своё время.

$ cat /etc/systemd/timesyncd.conf # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # # Entries in this file show the compile time defaults. # You can change settings by editing this file. # Defaults can be restored by simply deleting this file. # # See timesyncd.conf(5) for details. [Time] #NTP= #FallbackNTP=ntp.ubuntu.com #RootDistanceMaxSec=5 #PollIntervalMinSec=32 #PollIntervalMaxSec=2048

Установка и настройка chrony

Процесс синхронизации времени на серверах с использованием chrony

Сервера времени называют NTP серверами, так как они используют NTP протокол. Для Linux таких серверов несколько, например chrony, ntp, openntpd. Я покажу вам первый, так как это самый современный NTP сервер.

Читайте также:  Гта сан андреас linux

В Ubuntu и Debianchrony устанавливается из стандартных репозиториев:

При установке этого пакета будет создана одноименная служба, которая будет запущена и помещена в автозапуск. А служба systemd-timesyncd будет выключена.

Конфигом для службы является файл /etc/chrony/chrony.conf. В нем нужно закомментировать используемый пул и добавить свои NTP сервера. А также можно указать разрешённую сеть для клиентов:

# nano /etc/chrony/chrony.conf server 0.ru.pool.ntp.org iburst server 1.ru.pool.ntp.org iburst server 2.ru.pool.ntp.org iburst server 3.ru.pool.ntp.org iburst allow 192.168.0.0/24

После настройки сервера нужно перезапустить службу:

Проверим источники времени. Опция -N указывает что нужно вывести оригинальные имена источников времени:

# chronyc -N sources MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- 0.ru.pool.ntp.org 2 8 377 197 +1306us[+1337us] +/- 134ms ^- 1.ru.pool.ntp.org 2 7 377 524 +35ms[ +35ms] +/- 100ms ^- 2.ru.pool.ntp.org 2 7 377 67 -476us[ -476us] +/- 81ms ^* 3.ru.pool.ntp.org 1 9 377 67 -197us[ -164us] +/- 14ms

В выводе, сервер обозначенный звездочкой (в моём случае 3.ru.pool.ntp.org) является наилучшим и текущем сервером для синхронизации времени.

Сервер времени chrony, также как и другие NTP сервера слушает порт udp 123:

$ sudo ss -ulpn | grep chronyd UNCONN 0 0 127.0.0.1:323 0.0.0.0:* users:(("chronyd",pid=1507,fd=5)) UNCONN 0 0 0.0.0.0:123 0.0.0.0:* users:(("chronyd",pid=1507,fd=7)) UNCONN 0 0 [::1]:323 [::]:* users:(("chronyd",pid=1507,fd=6))

Вдобавок к порту 123 вы можете заметить ещё один порт — udp 323. Он используется для того чтобы утилита chronyc подключалась к процессу chronyd. А именно с помощью этой утилиты мы смотрели источники времени.

Настройку фаервола nftables для Debian 11 я описывал здесь.

Кроме этого, вы можете посмотреть количество активных и не активных источников:

# 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

Заметьте, если Chrony не сможет получить время из интернета, то клиенты перестанут синхронизировать своё время с этим сервером. Поэтому нужно следить, чтобы у сервера Chrony всегда были рабочие источники времени.

Читайте также:  How to delete folders in linux

Настройка клиентских серверов

Теперь нужно, на остальных серверах, прописать наш сервер Chrony в качестве источника синхронизации времени. Для этого укажем его адрес в /etc/systemd/timesyncd.conf на остальных серверах. А затем перезапустим службу синхронизации времени, и проверим работу:

# nano /etc/systemd/timesyncd.conf [Time] NTP=192.168.0.15 # systemctl restart systemd-timesyncd # date # journalctl --since -1h -u systemd-timesyncd

Для большей информации вы можете использовать следующие команды:

# systemctl status systemd-timesyncd.service # timedatectl show-timesync # timedatectl timesync-status

Также, на сервере времени вы можете посмотреть клиентов, которые к нему подключились:

# chronyc clients Hostname NTP Drop Int IntL Last Cmd Drop Int Last =============================================================================== 192.168.0.2 4 0 5 - 5 0 0 - -
  • Hostname — имя или адрес клиента;
  • NTP — количество NTP-пакетов, полученных от клиентов;
  • Drop — сколько NTP-пакетов было отброшено из-за ограничения скорости отклика;
  • Int — средний интервал между NTP-пакетами;
  • Last — время с момента получения последнего NTP-пакета;
  • Остальные поля я не рассматриваю, так как обычно этих достаточно.

Итог

Теперь вы знакомы с сервером времени Chrony. Он позволяет запустить свой локальный NTP сервер и синхронизировать время с другими NTP серверами. То-есть может работать и в качестве клиента и в качестве сервера.

  • Служба этого приложения — chrony.
  • Конфигурационный файл — /etc/chrony/chrony.conf.
  • Серверный процесс — chronyd.
  • Утилита для получения информации — chronyc.

Установка сервера времени Chrony на Debian 11

В этой статье я покажу вам как установить сервер точного времени Chrony на Debian 11, а также как настроить и использовать его

Источник

Оцените статью
Adblock
detector