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

Что используется для синхронизации времени по умолчанию

Эта инструкция по настройке Chrony для Debian 11, но она подойдет и для Ubuntu 20.04 и скорее всего для Ubuntu 22.04.

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

Служба 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:

$ 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 сервер.

Для начала установим само серверное приложение:

# apt install chrony

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

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

# nano /etc/chrony/chrony.conf
#pool 2.debian.pool.ntp.org iburst
server ntp1.stratum2.ru iburst
server ntp2.stratum2.ru iburst
server ntp3.stratum2.ru iburst
server ntp4.stratum2.ru iburst
server ntp5.stratum2.ru iburst
allow 192.168.0.0/24

После этого, перезапустим службу:

# systemctl restart chrony

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

# chronyc -N sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^- ntp1.stratum2.ru              2   6    37    37  -4184us[-4184us] +/-   58ms
^+ ntp2.stratum2.ru              2   6    37    37  -1960us[-1960us] +/-   61ms
^* ntp3.stratum2.ru              2   6    37    37   -220us[ +214us] +/-   54ms
^- ntp5.stratum2.ru              2   6    37    37  +1960us[+1960us] +/-   56ms

В выводе, сервер обозначенный звездочкой (в моём случае ^* ntp3.stratum2.ru) является наилучшим и текущем сервером для синхронизации времени.

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

$ sudo netstat -nulp | grep chronyd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           1529/chronyd
udp        0      0 127.0.0.1:323           0.0.0.0:*                           1529/chronyd
udp6       0      0 ::1:323                 :::*                                1529/chronyd

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

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

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

Теперь наш сервер синхронизирует своё время с серверами в интернете. Осталось лишь на остальных серверах прописать наш сервер в качестве источника времени. Для этого укажите его адрес в /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
Описание
В этой статье я покажу вам как установить сервер точного времени Chrony на Debian 11, а также как настроить и использовать его

Добавить комментарий

Ваш адрес email не будет опубликован.