Timesyncd conf настройка

Timesyncd conf настройка Хостинг

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

Ubuntu uses timedatectl and timesyncd for synchronising time, and they are installed by default as part of systemd. You can optionally use chrony to serve the Network Time Protocol.

In this guide, we will show you how to configure these services.

Note:
If chrony is installed, timedatectl steps back to let chrony handle timekeeping. This ensures that no two time-syncing services will be in conflict.

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


Timesyncd conf настройка

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

В статье мы разберёмся с тем, как настроить время в Linux. Посмотрим текущее время, укажем часовой пояс и настроим синхронизацию времени.

Чтобы посмотреть текущее время на вашем сервере linux воспользуйтесь командой date:

В выводе мы видим не только дату и время, но также и часовой пояс. Сейчас вместо часового пояса используется UTC.

Также можно использовать другую команду — timedatectl:

Без опций она покажет текущее время, часовой пояс, а также другую информацию связанную с синхронизацией времени. Например в примере выше видно что время успешно синхронизуется (System clock synchronized: yes) и синхронизация настроена (NTP service: active).

С помощью этой же утилиты (timedatectl) мы будем настраивать часовой пояс и следить за синхронизацией времени, об этом чуть ниже.

Теперь вы знаете как настроить время на сервере Debian или Ubuntu. Мы научились устанавливать часовой пояс и настраивать синхронизации времени с ntp серверами.

Узнали про следующие команды:

Познакомились с файлами:

Узнали про службу синхронизации времени:

Дата, время и часовой пояс в Linux

Provided by: systemd_229-4ubuntu4_amd64

NAME

timesyncd.conf, timesyncd.conf.d — Network Time Synchronization configuration files

SYNOPSIS

/etc/systemd/timesyncd.conf

/etc/systemd/timesyncd.conf.d/*.conf

/run/systemd/timesyncd.conf.d/*.conf

/usr/lib/systemd/timesyncd.conf.d/*.conf

DESCRIPTION

These configuration files control NTP network time synchronization.

CONFIGURATION DIRECTORIES AND PRECEDENCE

systemd

, systemd-timesyncd.service

, systemd-networkd.service

У одного из наших заказчиков несколько linux серверов работают под управлением Ubuntu, появилась необходимость выполнить настроку синхронизации времени на данных машинах. В системах с systemd по-умолчанию используется systemd-timesyncd — отдельная служба, отвечающая за синхронизацию времени локальной системы по протоколу NTP с внешнеми NTP серверами. Самое приятное, что systemd-timesyncd являеться частью systemd и не требует установки.

Systemd-timesyncd не будет одновременно работать с ntpd или chronyd (не будет выполняться синхронизация времени). Данную проверка выполняется в конфигурационном файле /lib/systemd/system/systemd-timesyncd.service.d/disable-with-time-daemon.conf, где прописан список бинарников, при наличии которых в системе демон systemd-timesyncd не будет работать. Перед началом работ проверьте установлен ли у вас в системе ntpd или chronyd и при наличии удалите их.

В данном случае сервера выступают только в роли клиента, необходимости в ntp сервере  предоставляющего точное время для других серверов нет. С данной задачей прекрасно справляется systemd-timesyncd исходя из этого необходимость в ntpd отсутствует.

Для настройки systemd-timesyncd необходимо изменить файл конфигурации etc/systemd/timesyncd.conf ​​​​​.

Строка NTP= определяет список основных серверов времени, впишите туда свой сервер времени. Можно раскоментировать настройку FallbackNTP= она определяеи список резервных серверов времени

Выполняем перезапуск службу systemd-timesyncd:

#systemctl restart systemd-timesyncd.service

Проверяем статус работы

​​​​​Проверяем  состояние синхронизации:

#timedatectl

Результат:
Local time: Thu 2021-01-14 17:04:41 MSK
Universal time: Thu 2021-01-14 14:04:41 UTC
RTC time: Thu 2021-01-14 14:04:41
Time zone: Europe/Moscow (MSK, +0300)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

PS: Если systemd-timesyncd не синхронизирует часы, то прежде всего проверьте настройки межсетевого экрана (iptables) на предмет разрешения исходящих подключений на 123 порт по протоколу UDP

Если же всё таки возникает необходимость использования других пакетов синхронизации времени, исполняемые файлы которых отличны от тех, что перечислены в disable-with-time-daemon.conf, то можно самостоятельно остановить и отключить службу systemd-timesyncd парой простых команд:

# systemctl stop systemd-timesyncd
# systemctl disable systemd-timesyncd

Provided by: systemd-timesyncd_245.4-4ubuntu3_amd64

These configuration files control NTP network time synchronization. See systemd.syntax

for a general description of the syntax.

Современные системы выдвигают совершенно иные требования к точному времени, чем могут обеспечить аппаратные часы компьютера. На время завязаны службы криптографии и аутентификации, системы контроля доступа и видеонаблюдения, финансовые системы и кассовые узлы. Поэтому важно, чтобы время на всех узлах инфраструктуры было не только точным, но и одинаковым. А при работе распределенных структур также требуется правильно настроить часовые пояса. В Linux это можно сделать разными способами, но зачем, если есть штатное решение на базе systemd-timesyncd.

Читайте также:  Проверить хостинг сайта онлайн

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

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

Еще более глупо игнорировать стандартные инструменты systemd, предназначенные для решения прикладных задач, одной из которых является синхронизация времени. Но, как показывает практика, не все администраторы знают о такой возможности и часто пытаются решить эту задачу при помощи стороннего ПО.

Во многих современных дистрибутивах systemd-timesyncd обычно уже работает из коробки и настроен на синхронизацию с собственными серверами времени. Выяснить это несложно, сначала узнаем статус службы:

systemctl status systemd-timesyncd

А затем можем уточнить текущее состояние синхронизации часов:

Как можно увидеть из вывода первой команды служба синхронизации работает и включена ее автозагрузка, ниже, в строках лога видно, что выполнена синхронизация с одним из серверов debian.pool,ntp.org. Вторая команда показывает текущее время, часовой пояс, а также то, что синхронизация с помощью systemd-timesyncd включена.

Важный момент, если у вас в системе установлено стороннее ПО, такое как ntpd, openntp, chrony, то systemd-timesyncd будет автоматически отключен, для его использования вам потребуется удалить сторонние пакеты для синхронизации времени.

Чтобы включить использование systemd-timesyncd для синхронизации времени следует выполнить команду:

timedatectl set-ntp true

А для добавления службы в автозагрузку, вместе с одновременным запуском, выполните:

systemctl enable —now systemd-timesyncd

А теперь перейдем к тонкой настройке службы, для этого откроем ее конфигурационный файл /etc/systemd/timesyncd.conf, он очень прост, нам следует раскомментировать и заполнить следующие две опции:

NTP = 192.168.111.101 192.168.111.102FallbackNTP = 0.ru.pool.ntp.org 1.ru.pool.ntp.org

Опция NTP содержит список серверов (IP или FQDN) с которыми следует выполнять синхронизацию, в нашем случае мы указали некие локальные сервера времени, если указанные узлы недоступны, то служба попытается выполнить синхронизацию с серверами, перечисленными в опции FallbackNTP.

Но есть еще один тонкий момент. Если компьютер получает адрес NTP-сервера через DHCP, то он будет иметь наивысший приоритет и использоваться для синхронизации в первую очередь, в случае его недоступности будет выполняться синхронизация с серверами, указанными в директиве NTP, а если недоступны и они, тогда в действие вступят сервера из FallbackNTP.

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

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

Также systemd-timesyncd позволяет легко работать с датой/временем и часовым поясом. Допустим нам по какой-то причине потребовалось изменить системное время на произвольное. Все очень просто. Прежде всего выключим синхронизацию:

timedatectl set-ntp false

Затем установим нужную дату и время командой:

timedatectl set-time «2022-07-06 23:00:00»

Для того, чтобы вернуться к синхронизированному времени еще раз выполните:

Нужно изменить часовой пояс? Тоже нет никаких проблем, сначала получим список всех поясов:

Для пролистывания списка используйте пробел. После того, как вы нашли название нужного вам часового пояса выполните:

timedatectl set-timezone Asia/Yekaterinburg

И тут же проверим, что часы перевелись:

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

В настоящее время очень важно чтобы часы на ваших серверах были синхронизированы. Очень много систем полагаются на время, например:

Получение списка NTP серверов по DHCP

Если ваш сервер получает сетевые настройки по dhcp, то он может получить список NTP серверов (серверов времени для синхронизации). Это настраивается в файле /etc/dhcp/dhclient.conf. В строке request мы определяем что хотим получать от сервера dhcp. И здесь может быть указан параметр ntp-servers:

Само собой, вы получите список ntp-серверов, только в том случае если ваш dhcp сервер их распространяет.

Читайте также:  3 Simple Ways To Fix Tapinstall.exe Failed

Служба синхронизации времени

В системах работающих на systemd работает специальная служба синхронизации времени systemd-timesyncd.service. Можем посмотреть её статус:

Видим что синхронизация идет с сервером по адресу 192.168.0.16. У меня этот адрес прилетел по dhcp.

Обратите внимание, что служба эта стартует по запросу и останавливается после синхронизации времени!

Давайте выключим получение ntp серверов по dhcp:

Вы можете использовать следующий пул серверов времени для синхронизации — https://www.pool.ntp.org/zone/ru. Укажем первый сервер из этого пула в конфиге /etc/systemd/timesyncd.conf:

В конфиге используются следующие опции:

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

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

Здесь мы видим адрес ntp-сервера, а также какой интервал синхронизации (34min 8s) использовался последний раз.

То-есть служба синхронизации времени systemd-timesyncd.service будет запускаться и останавливаться сейчас примерно раз в 34 минуты. Поэтому если увидите, что служба в состоянии loaded и inactive, не пугайтесь. По логам видно что она периодически запускается:

Настройка службы синхронизации времени systemd-timesyncd в Debian GNU/Linux 11 (Bullseye)

В составе версии systemd, используемой в конфигурации по умолчанию в Debian GNU/Linux 11 имеется отдельная служба, отвечающая за синхронизацию времени локальной системы по протоколу NTP с внешними NTP-серверами — systemd-timesyncd. Поэтому, если нужно настроить синхронизацию времени, например, с корпоративными NTP-серверами, нет необходимости устанавливать и настраивать специальные пакеты типа ntp, а достаточно лишь выполнить настройку systemd-timesyncd.

Проверить текущее состояние службы можно командой

# systemctl status systemd-timesyncd

В свеже установленной ОС Debian Bullseye служба systemd-timesyncd будет запускаться автоматически.

Отредактируем основной конфигурационный файл systemd-timesyncd:

# nano /etc/systemd/timesyncd.conf

# This file is part of systemd.

# systemd is free software; you can redistribute it and/or modify it

# 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

for details.
 
Time
=ntp1.holding.com dc1.holding.com dc2.holding.com
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org

После правки конфигурационной файла перезапускаем службу и проверяем её состояние:

# systemctl restart systemd-timesyncd
# systemctl status systemd-timesyncd

Состояние синхронизации времени можно проверить утилитой timedatectl:

# timedatectl status
Local time: Thu 2022-03-17 15:19:31 MSK
Universal time: Thu 2022-03-17 12:19:31 UTC
RTC time: Thu 2022-03-17 12:19:30
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

Посмотреть лог службы systemd-timesyncd (как юнита systemd) можно следующей командой:

# journalctl -u systemd-timesyncd —since today

Если же всё таки возникает необходимость использования других пакетов синхронизации времени, то можно остановить и отключить службу systemd-timesyncd парой простых команд:

Дополнительные источники информации:

Проверено на следующих конфигурациях:

Автор первичной редакции:Алексей Максимов
Время публикации: 17.03.2022 15:22
unix-linux/debian/bullseye/configuring-the-systemd-timesyncd-time-synchronization-service-on-debian-linux-11.txt

· Последнее изменение: 17.03.2022 15:33 —

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

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

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

# 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 — —

Next steps

If you would now like to serve the Network Time Protocol via crony, this guide will walk you through how to install and configure your setup.

Check status of timesyncd

timesyncd itself is a normal service, so you can check its status in more detail using:

The output produced will look something like this:

Configure timesyncd

С помощью команды dpkg-reconfigure tzdata также можно задать часовой пояс:

После выполнения вы можете использовать псевдографический интерфейс для настройки часового пояса. Вначале выберите географический район:


Timesyncd conf настройка

dpkg-reconfigure tzdata — выбор географического района


Timesyncd conf настройка

dpkg-reconfigure tzdata — выбор города

Check status of timedatectl

The current status of time and time configuration via timedatectl and timesyncd can be checked with the timedatectl status command, which will produce output like this:

Local time: Wed 2023-06-14 12:05:11 BST
Universal time: Wed 2023-06-14 11:05:11 UTC
RTC time: Wed 2023-06-14 11:05:11
Time zone: Europe/Isle_of_Man (BST, +0100)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

If chrony is running, it will automatically switch to:

Читайте также:  Что Такое Облачный Хостинг? Преимущества Облачного Хостинга

Configure timedatectl

Вообще часовой пояс в системе определяется файлом /etc/localtime, который является символьной ссылкой (про ссылки я уже писал):

Можно вручную отредактировать эту ссылку и указать нужный часовой пояс:

Или воспользоваться утилитой timedatectl:

Если вас не устраивает выбранный мною часовой пояс, то можете посмотреть список поддерживаемых часовых поясов так:

Проверим время и часовой пояс:

Как видим, часовой пояс уже изменился на Europe/Moscow (MSK, +0300).

Клиент синхронизации времени на 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

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 сервера с которыми сервер синхронизирует своё время.

Процесс синхронизации времени на серверах

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

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

# apt install chrony

При установке этого пакета будет создана одноименная служба, которая будет запущена и помещена в автозапуск. А служба 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

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

# systemctl restart chrony

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

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

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

Вдобавок к порту 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 всегда были рабочие источники времени.

Настройка службы синхронизации времени systemd-timesyncd в Debian GNU/Linux 12 (Bookworm)

В составе версии systemd, используемой в конфигурации по умолчанию в Debian GNU/Linux 12 имеется отдельная служба, отвечающая за синхронизацию времени локальной системы по протоколу NTP с внешними NTP-серверами — systemd-timesyncd. Поэтому, если нужно настроить синхронизацию времени, например, с корпоративными NTP-серверами, нет необходимости устанавливать и настраивать специальные пакеты типа ntp, а достаточно лишь выполнить настройку systemd-timesyncd.

В свеже установленной ОС Debian Bookworm служба systemd-timesyncd будет запускаться автоматически.

# This file is part of systemd.

# systemd is free software; you can redistribute it and/or modify it under the

# 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. Local configuration
# should be created by either modifying this file, or by creating «drop-ins» in
# the timesyncd.conf.d/ subdirectory. The latter is generally recommended.
# Defaults can be restored by simply deleting this file and all drop-ins.

# See timesyncd.conf

for details.
 
Time
=ntp1.holding.com dc1.holding.com dc2.holding.com
=

#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org

Небольшое увеличение значения по умолчанию для RootDistanceMaxSec может быть полезно в больших и загруженных сетях, чтобы свести к минимуму ситуации, когда из-за низкого стандартного значения в 5s могут наблюдаться проблемы с прекращением синхронизации времени.

После правки конфигурационного файла перезапускаем службу и проверяем её состояние:

# timedatectl status
Local time: Mon 2023-06-19 15:27:10 MSK
Universal time: Mon 2023-06-19 12:27:10 UTC
RTC time: Mon 2023-06-19 12:27:10
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

Автор первичной редакции:Алексей Максимов
Время публикации: 19.06.2023 16:37
unix-linux/debian/bookworm/configuring-the-systemd-timesyncd-time-synchronization-service-on-debian-linux-12.txt

· Последнее изменение: 19.06.2023 16:38 —

Оцените статью
Хостинги