Всем привет. Проблема из-за чего, я написал эту инструкцию, потому что мне надоело, что в интернете по данному запросу только и выдаются статьи 10-летней давности. Но в них нет информации, зачем устанавливать и настраивать старый Chronyd, если новый (относительно) systemd-timesyncd отлично справляется со своей задачей и нет никакого смысла, делать лишних телодвижений. Тем более, что он идёт из коробки во всех современных системах (Ubuntu, Fedora, Arch, Manjaro, Debian) уже лет пять.
Собственно перейдем к его настройки.
Для начала проверим, что сервис включен (enabled) и запущен, для этого вводим команду:
$ 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 Sat 2024-03-02 10:51:42 UTC; 3min 53s ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 580 (systemd-timesyn)
Status: "Initial synchronization to time server 192.168.71.1:123 (192.168.71.1)."
Tasks: 2 (limit: 4558)
Memory: 1.5M
CPU: 42ms
CGroup: /system.slice/systemd-timesyncd.service
└─580 /lib/systemd/systemd-timesyncd
Толстым шрифтом выделены два важных элемента, если вместо enabled, установлено disabled, значит служба не включена на автоматический запуск при старте системы, а если вместо active (running), что-либо другое – то не запущена, либо упала.
Исправить это можно соответствующими командами:
# включение сервиса
systemctl enable systemd-timesyncd
# запуск сервиса
systemctl start systemd-timesyncd
Далее вводим команду timedatectl
и смотрим на состоянии службы:
$ timedatectl
Local time: Sat 2024-03-02 11:10:56 UTC
Universal time: Sat 2024-03-02 11:10:56 UTC
RTC time: Sat 2024-03-02 11:10:56
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
В идеальной картинке ваш вывод должен быть как на примеры выше, нас интересуют строки System clock synchronized
и NTP service
.
Если NTP service стоит в состоянии inactive
, то сервис автоматического синхронизации времени выключен, включаем его командой и проверяем состояние снова:
sudo timedatectl set-ntp true
Если сервис NTP включен, но System clock synchronized
стоит в no
, то дело скорее всего в том, что сервис не может достучаться до сервера с эталонным временем. Проверить, что идёт не так, можно посмотрев логи сервиса, командой:
journalctl -xeu systemd-timesyncd
В логах может быть указан, например, сервер до которого пытается достучаться timesyncd. Для проверки доступности порта сервера синхронизации используйте команду netcat как в примере ниже, подставив ваш сервер вместо ru.pool.ntp.org (123 – это порт NTP, работает через UDP)
$ nc -uvzw 3 ru.pool.ntp.org 123
Connection to tr.pool.ntp.org (162.159.200.123) 123 port [udp/ntp] succeeded!
Если сервер не доступен и это ваш промышленный контур, то скорее дело в настройках сетевого экрана, либо фаервола машины, на котором вы проверяете.
Для замены сервера обновления, нужно внести правку в файл /etc/systemd/timesyncd.conf
Выглядит он следующим образом:
$ cat /etc/systemd/timesyncd.conf
[Time]
#NTP=
#FallbackNTP=ntp.ubuntu.com
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
Строки, начинающиеся с #
считаются комментариями, нам в блок [Time]
нужно вписать строку (например с помощью vim, либо nano с правами администратора либо sudo)
NTP=ru.pool.ntp.org
Либо любой другой, доступ к которому вы смогли получить, в закрытых контурах администраторы обычно предоставляют свои сервера для синхронизации времени.
Вот мой список серверов, которые чаще всего работают на внешних виртуальных машинах.
- time.google.com
- ru.pool.ntp.org
- ntp0.NL.net
- clock.isc.org
- ntps1-1.cs.tu-berlin.de
- ntp2.vniiftri.ru
- ntp.ix.ru
После сохранения файла нужно перезапустить службу, например командой
sudo systemctl restart systemd-timesyncd
После этого ещё раз проверяем командой timedatectl
, что System clock synchronized: yes
.
Если проблема все ещё сохранилась, то снова открываем логи и разбираемся, почему нет доступа до сервера. Чаще всего это именно настройки безопасности сети, что является поводом для какой-то другой статьи или инструкции.
Спасибо за внимание
Leave a Reply