Синхронизация системного времени не работает

Я использую Ubuntu 20.04 и использую timedatectl с timesyncd. Если я включу синхронизацию NTP, мои локальные и универсальные даты будут установлены на 2058 год.

Если я выполняю ручную проверку (используя python), используемые мной NTP-серверы работают правильно. Это случалось раньше и как-то исправлялось, но сейчас происходит снова.

Любая идея, что происходит не так?

                     Local time: mié 2058-05-22 01:16:55 CEST
           Universal time: mar 2058-05-21 23:16:55 UTC 
                 RTC time: sáb 2022-05-21 22:21:03     
                Time zone: Europe/Madrid (CEST, +0200) 
System clock synchronized: no                          
              NTP service: active                      
          RTC in local TZ: no      

/etc/systemd/timesyncd.conf

      [Time]
NTP=pool.ntp.org ntp.ubuntu.com
#FallbackNTP=ntp.ubuntu.com
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048

1 ответ

Мне удалось найти проблему и решить ее. Разместите это здесь для тех, у кого есть такая же проблема.

Сначала я проверил журналы для systemd-timesyncd и обнаружил, что время подключения к серверу ntp истекло, а дата/время были установлены на последнюю записанную отметку времени.

      > systemctl status systemd-timesyncd
may 22 00:31:38 falcon systemd[1]: Starting Network Time Synchronization...
may 22 00:31:38 falcon systemd-timesyncd[73828]: System clock time unset or jumped backwards, restoring from recorded timestamp: Wed 2058-05-22 01:16:53 CEST
may 22 01:16:53 falcon systemd[1]: Started Network Time Synchronization.
may 22 01:17:04 falcon systemd-timesyncd[73828]: Timed out waiting for reply from 91.189.91.157:123 (ntp.ubuntu.com).

Я попытался получить время с ntp-сервера с помощью python и увидел, что он терпит неудачу со временем, установленным так далеко вперед. Ручная фиксация времени позволяла получить текущее время. Это означало, что я не мог подключиться к серверу ntp, потому что моя дата/время устанавливались на записанные временные метки 2058 года, что затем препятствовало дальнейшей синхронизации.

      import ntplib
from time import ctime
c = ntplib.NTPClient()
response = c.request('ntp.ubuntu.com')
print(ctime(response.tx_time))

Затем я проверил документы на timesyncd и обнаружил, что записанное время сохраняется в /var/lib/systemd/timesync/clockкак время последнего изменения.

Поэтому я сбрасываю эти измененные файлы и даты последнего доступа.

      touch -a -m -t 202205212221 /var/lib/systemd/timesync/clock

Затем я отключил ntp и вручную установил время, а затем перезапустил timesyncd, и теперь все работает.

Другие вопросы по тегам