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

Systemd-timesyncd

В отличие от описания сервисов синхронизации других компов со своим, здесь рассматривается простейший вариант синхронизации своего компа с другими.

Варианты

ntpd, openntp, chrony — всё это службы, умеющие как получать время извне с приколачиванием его к машине, на которой запущены, так и отдавать его другим для сверки часов. Нам же нет нужды кем-то командовать — самим бы не опоздать.

Реализация

Установка

(подходит для любого дистрибутива с менеджером пакетов apt)

# apt-get update && apt-get install -y systemd-timesyncd 

Настройка

Во избежание коверканья опций последующими апдейтами сервиса, завести в каталоге /etc/systemd/timesyncd.conf.d/ (при отсутствии — создать таковой) конфиг с именем, к примеру, ntp.conf :

# mkdir -p /etc/systemd/timesyncd.conf.d/ # touch /etc/systemd/timesyncd.conf.d/ntp.conf
[Time] Description = С кем синхронизироваться: NTP — для главных (например, IP-адрес контроллера домена), FallbackNTP — для резервных, если вдруг. NTP = ntp0.zenon.net ntp1.zenon.net FallbackNTP = ru.pool.ntp.org 

Перечитать конфиги и перезапустить синхронизацию

(служба может уже быть запущена сразу после установки)

# systemctl daemon-reload && systemctl restart systemd-timesyncd

Удостовериться в работе сервиса

$ journalctl -u systemd-timesyncd -- Reboot -- июн 14 10:58:02 tiens-0 systemd[1]: Starting Network Time Synchronization. июн 14 10:58:03 tiens-0 systemd[1]: Started Network Time Synchronization. июн 14 10:58:16 tiens-0 systemd-timesyncd[512]: Synchronized to time server 195.2.64.5:123 (ntp0.zenon.net). .

Обратная связь

Источник

systemd-timesyncd

systemd-timesyncd is a daemon that has been added for synchronizing the system clock across the network. It implements an SNTP client. In contrast to NTP implementations such as chrony or the NTP reference server this only implements a client side, and does not bother with the full NTP complexity, focusing only on querying time from one remote server and synchronizing the local clock to it. Unless you intend to serve NTP to networked clients or want to connect to local hardware clocks this simple NTP client should be more than appropriate for most installations. The daemon runs with minimal privileges, and has been hooked up with networkd to only operate when network connectivity is available. The daemon saves the current clock to disk every time a new NTP sync has been acquired, and uses this to possibly correct the system clock early at bootup, in order to accommodate for systems that lack an RTC such as the Raspberry Pi and embedded devices, and make sure that time monotonically progresses on these systems, even if it is not always correct. To make use of this daemon a new system user and group «systemd-timesync» needs to be created on installation of systemd.

Читайте также:  Узнать ipv6 адрес linux

Configuration

Start/enable systemd-timesyncd.service which is available with systemd .

When starting, systemd-timesyncd will read the configuration file from /etc/systemd/timesyncd.conf , which looks like this:

[Time] #NTP= #FallbackNTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org #.

To add time servers or change the provided ones, uncomment the relevant line and list their host name or IP separated by a space. Alternatively, you can use a configuration snippet in /etc/systemd/timesyncd.conf.d/*.conf , see timesyncd.conf(5) .

For example, you can use any servers provided by the NTP pool project or use the default Arch ones (also provided by the NTP pool project):

/etc/systemd/timesyncd.conf or /etc/systemd/timesyncd.conf.d/local.conf
[Time] NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 0.fr.pool.ntp.org

To verify your configuration:

$ timedatectl show-timesync --all
LinkNTPServers= SystemNTPServers= FallbackNTPServers=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org ServerName=0.arch.pool.ntp.org ServerAddress=103.47.76.177 RootDistanceMaxUSec=5s PollIntervalMinUSec=32s PollIntervalMaxUSec=34min 8s PollIntervalUSec=1min 4s NTPMessage= < Leap=0, Version=4, Mode=4, Stratum=2, Precision=-21, RootDelay=177.398ms, RootDispersion=142.196ms, Reference=C342F10A, OriginateTimestamp=Mon 2018-07-16 13:53:43 +08, ReceiveTimestamp=Mon 2018-07-16 13:53:43 +08, TransmitTimestamp=Mon 2018-07-16 13:53:43 +08, DestinationTimestamp=Mon 2018-07-16 13:53:43 +08, Ignored=no PacketCount=1, Jitter=0 >Frequency=22520548

Further to the daemon configuration, NTP servers may also be provided via a systemd-networkd configuration with a NTP= option or, dynamically, via a DHCP server.

The NTP server to be used will be determined using the following rules:

  • Any per-interface NTP servers obtained from systemd-networkd.service(8) configuration or via DHCP take precedence.
  • The NTP servers defined in /etc/systemd/timesyncd.conf will be appended to the per-interface list at runtime and the daemon will contact the servers in turn until one is found that responds.
  • If no NTP server information is acquired after completing those steps, the NTP server host names or IP addresses defined in FallbackNTP= will be used.

Note: The service writes to a local file /var/lib/systemd/timesync/clock with every synchronization. This location is hard-coded and cannot be changed. This may be problematic for running off read-only root partition or trying to minimize writes to an SD card.

Читайте также:  Stop firewall on linux

Usage

To enable and start it, simply run:

The synchronization process might be noticeably slow. This is expected, one should wait a while before determining there is a problem. To check the service status, use:

Local time: Thu 2015-07-09 18:21:33 CEST Universal time: Thu 2015-07-09 16:21:33 UTC RTC time: Thu 2015-07-09 16:21:33 Time zone: Europe/Amsterdam (CEST, +0200) System clock synchronized: yes NTP service: active RTC in local TZ: no

To see verbose service information, use:

$ timedatectl timesync-status
Server: 103.47.76.177 (0.arch.pool.ntp.org) Poll interval: 2min 8s (min: 32s; max 34min 8s) Leap: normal Version: 4 Stratum: 2 Reference: C342F10A Precision: 1us (-21) Root distance: 231.856ms (max: 5s) Offset: -19.428ms Delay: 36.717ms Jitter: 7.343ms Packet count: 2 Frequency: +267.747ppm

See also

Источник

4 Фев 2020 18:02:19 | 5 комментариев

Использование systemd-timesyncd для синхронизации времени в Debian/Ubuntu

В Linux для синхронизации времени традиционно используется ntpd как стандарт де-факто, но есть другая и более простая альтернатива — это systemd-timesyncd.

Давайте настроим его для синхронизации времени, а про ntpd забудем и удалим его.

С ntpd все просто, ставится пакет ntp, настраивается файл конфигурации /etc/ntp.conf и включается служба ntp (systemctl start ntp), далее проверяем с помощью утилиты ntpstat факт синхронизации локальных часов с удаленным сервером и радуемся.
Все бы хорошо, но с помощью ntpd можно не только забирать время с удаленных сервером, но и выступать в качестве сервера времени для других, то есть ntpd принимает входящие соединения и его некорректная настройка может послужить причиной участия вашего сервера в DDoS-атаки (см. apt-get remove ntp ntpstat —purge apt autoremove

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

Теперь настроим systemd-timesyncd, для этого в файл конфигурации /etc/systemd/timesyncd.conf пропишем список серверов времени:

echo 'NTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org' >> /etc/systemd/timesyncd.conf

Таким образом мы добавили в файл настройку NTP= определяющую список основных серверов времени, можно добавить настройку FallbackNTP= которая определит список резервных серверов времени:

echo 'FallbackNTP=ntp.ubuntu.com' >> /etc/systemd/timesyncd.conf

Смотрим текущий статус синхронизации часов:

Local time: Вт 2020-02-04 13:13:04 +05 Universal time: Вт 2020-02-04 08:13:04 UTC RTC time: Вт 2020-02-04 08:14:11 Time zone: Asia/Yekaterinburg (+05, +0500) Network time on: yes NTP synchronized: no RTC in local TZ: no

В строке «NTP synchronized» может стоять no если синхронизация часов по ntp до этого не была настроена вообще или yes, если до этого часы синхронизировались с помощью ntpd

Читайте также:  Astra linux apt команды

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

Включаем и перезапускаем службу systemd-timesyncd:

systemctl enable --now systemd-timesyncd.service systemctl restart systemd-timesyncd.service
systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/systemd-timesyncd.service.d └─disable-with-time-daemon.conf Active: active (running) since Вт 2020-02-04 13:14:22 +05; 16min ago Docs: man:systemd-timesyncd.service(8) Main PID: 11666 (systemd-timesyn) Status: "Synchronized to time server 91.206.16.3:123 (0.debian.pool.ntp.org)." Tasks: 2 Memory: 388.0K CPU: 10ms CGroup: /system.slice/systemd-timesyncd.service └─11666 /lib/systemd/systemd-timesyncd фев 04 13:14:22 myserver systemd[1]: Starting Network Time Synchronization. фев 04 13:14:22 myserver systemd[1]: Started Network Time Synchronization. фев 04 13:12:34 myserver systemd-timesyncd[11666]: Synchronized to time server 91.206.16.3:123 (0.debian.pool.n

Через несколько минут можно проверить с помощью timedatectl состояние синхронизации:

Local time: Вт 2020-02-04 13:32:03 +05 Universal time: Вт 2020-02-04 08:32:03 UTC RTC time: Вт 2020-02-04 08:32:03 Time zone: Asia/Yekaterinburg (+05, +0500) Network time on: yes NTP synchronized: yes RTC in local TZ: no

Значение в строке «NTP synchronized» должно измениться на yes

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

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

timedatectl timesync-status
Server: 103.134.252.11 (0.debian.pool.ntp.org) Poll interval: 34min 8s (min: 32s; max 34min 8s) Leap: normal Version: 4 Stratum: 2 Reference: 68D34CE2 Precision: 1us (-24) Root distance: 65.284ms (max: 5s) Offset: +10.793ms Delay: 149.152ms Jitter: 6.030ms Packet count: 8 Frequency: +47.109ppm

P.S. Утилиту timedatectl так же можно использовать для смены часового пояса, пример:

Выведем список временных зон:

timedatectl list-timezones

Установим временную зону Asia/Yekaterinburg:

timedatectl set-timezone Asia/Yekaterinburg

+5 свидетельствует об установке нашей зоны (Asia/Yekaterinburg это UTC+5)

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

Источник

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