Почему клиент timesyncd не получает ответов от NTP сервера (тайм-аут ответа)?

Вопрос или проблема

В моем lubuntu 22.04 активна служба systemd-timesyncd.service, которая запускает демона systemd-timesyncd (см. здесь документацию). Это статус этой службы:

> systemctl status systemd-timesyncd

# это вывод предыдущей команды:
● systemd-timesyncd.service - Синхронизация времени по сети
     Loaded: загружена (/lib/systemd/system/systemd-timesyncd.service; включена; предустановленная настройка: включена)
     Active: активно (работает) с четверг 2023-07-06 12:21:43 CEST; 2 мин 54 сек назад
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 1917 (systemd-timesyn)
     Status: "Ожидание."
      Tasks: 2 (лимит: 2030)
     Memory: 1.3M
        CPU: 201ms
     CGroup: /system.slice/systemd-timesyncd.service
             └─1917 /lib/systemd/systemd-timesyncd

lug 06 12:21:55 ceia-te systemd-timesyncd[1917]: Время ожидания истекло, ответа от 185.125.190.57:123 (ntp.ubuntu.com) не поступило.
lug 06 12:22:05 ceia-te systemd-timesyncd[1917]: Время ожидания истекло, ответа от 185.125.190.58:123 (ntp.ubuntu.com) не поступило.
lug 06 12:22:15 ceia-te systemd-timesyncd[1917]: Время ожидания истекло, ответа от 185.125.190.56:123 (ntp.ubuntu.com) не поступило.
lug 06 12:22:25 ceia-te systemd-timesyncd[1917]: Время ожидания истекло, ответа от 91.189.94.4:123 (ntp.ubuntu.com) не поступило.

Вывод показывает, что служба работает и пытается подключиться к NTP серверу ntp.ubuntu.com, но не получает ответа (см. сообщения Время ожидания истекло, ответа от ntp.ubuntu.com не поступило); этот сервер доступен по ping, как видно из вывода следующей команды:

> ping ntp.ubuntu.com
PING ntp.ubuntu.com (91.189.94.4) 56(84) байт данных.
64 байта от pugot.canonical.com (91.189.94.4): icmp_seq=1 ttl=53 time=30.0 ms
64 байта от pugot.canonical.com (91.189.94.4): icmp_seq=2 ttl=53 time=29.8 ms
64 байта от pugot.canonical.com (91.189.94.4): icmp_seq=3 ttl=53 time=29.8 ms

Фаервол iptables неактивен:

> sudo iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

Может кто-нибудь сказать мне, почему клиент timesyncd не получает ответа от NTP сервера ntp.ubuntu.com?

Спасибо

Проблема была в интернет-провайдере

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

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

Клиент NTP systemd timesyncd может синхронизировать системную дату с NTP сервером ntp.ubuntu.com.

На самом деле статус службы systemd-timesyncd.service следующий:

systemctl status systemd-timesyncd
● systemd-timesyncd.service - Синхронизация времени по сети
     Loaded: загружена (/lib/systemd/system/systemd-timesyncd.service; включена; предустановленная настройка: включена)
     Active: активно (работает) с четверг 2023-07-06 14:12:48 CEST; 46 мин назад
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 2065 (systemd-timesyn)
     Status: "Первичная синхронизация с сервером времени 185.125.190.56:123 (ntp.ubuntu.com)."
      Tasks: 2 (лимит: 2030)
     Memory: 1.3M
        CPU: 203ms
     CGroup: /system.slice/systemd-timesyncd.service
             └─2065 /lib/systemd/systemd-timesyncd

lug 06 14:12:48 ceia-te systemd[1]: Запуск синхронизации времени по сети...
lug 06 14:12:48 ceia-te systemd[1]: Синхронизация времени по сети запущена.
lug 06 14:12:13 ceia-te systemd-timesyncd[2065]: Первичная синхронизация с сервером времени 185.125.190.56:123 (ntp.ubuntu.com).

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

Для меня на Ubuntu 24.04 кажется, что мой интернет-провайдер блокирует NTP протокол запросы (порт: 123).

Вот вывод systemc-timesyncd.service

28 сент. 05:53:56 ubuntu systemd-timesyncd[1704]: Время ожидания истекло, ответа от 176.9.157.155:123 (2.ubuntu.pool.ntp.org) не поступило.
28 сент. 05:54:06 ubuntu systemd-timesyncd[1704]: Время ожидания истекло, ответа от 128.140.109.119:123 (2.ubuntu.pool.ntp.org) не поступило.
28 сент. 05:56:24 ubuntu systemd-timesyncd[1704]: Время ожидания истекло, ответа от 159.69.245.253:123 (2.ubuntu.pool.ntp.org) не поступило.
28 сент. 05:56:35 ubuntu systemd-timesyncd[1704]: Время ожидания истекло, ответа от 195.201.20.16:123 (2.ubuntu.pool.ntp.org) не поступило.
28 сент. 05:56:45 ubuntu systemd-timesyncd[1704]: Время ожидания истекло, ответа от 80.153.195.191:123 (2.ubuntu.pool.ntp.org) не поступило.
28 сент. 05:56:55 ubuntu systemd-timesyncd[1704]: Время ожидания истекло, ответа от 49.13.14.46:123 (2.ubuntu.pool.ntp.org) не поступило.
28 сент. 06:04:58 ubuntu systemd-timesyncd[1704]: Время ожидания истекло, ответа от 88.218.226.91:123 (2.ubuntu.pool.ntp.org) не поступило.
28 сент. 06:05:08 ubuntu systemd-timesyncd[1704]: Время ожидания истекло, ответа от 144.76.76.107:123 (2.ubuntu.pool.ntp.org) не поступило.
28 сент. 06:05:18 ubuntu systemd-timesyncd[1704]: Время ожидания истекло, ответа от 45.9.61.155:123 (2.ubuntu.pool.ntp.org) не поступило.
28 сент. 06:05:28 ubuntu systemd-timesyncd[1704]: Время ожидания истекло, ответа от 23.88.7.139:123 (2.ubuntu.pool.ntp.org) не поступило.

Проблема появилась, когда я установил программное обеспечение мониторинга Prometheus и получил доступ к панеле управления по адресу http://IP:9090

Время сервера не синхронизировано Обнаружена разница во времени в 3 минуты 36.102 секунд между вашим браузером и сервером. Вы можете увидеть неожиданные результаты запросов с временным сдвигом из-за расхождения по времени.

Ошибка на веб-панели


Поэтому продолжайте исследовать корень ошибки.

$ sudo apt install ntpdate
$ ntpdate -q ntp.ubuntu.com
ntpdig: нет подходящих серверов

$ ntpdate -q time.nist.gov
ntpdig: нет подходящих серверов

Для отмены этого ограничения я использую пакет htpdate

Установка

$ sudo apt install htpdate

Синхронизация и установка времени на машине

sudo htpdate -a google.com

Но ни одно из этих решений не работает, кроме ответа ниже на Ask Ubuntu.

Принудительная установка времени

sudo date -s "$(curl http://s3.amazonaws.com -v 2>&1 | \
  grep "Date: " | awk '{ print $3 " " $5 " " $4 " " $7 " " $6 " GMT"}')"

И удалить ntpsec и systemd-timesyncd

$ sudo apt purge ntpsec systemd-timesyncd

В конце концов, Prometheus работает без сообщений об ошибках.


Решение

Так как мой VPS сервер размещен на OS VMWARE ESXI, и я нашел похожие темы о конфликте времени, я попытался отключить эту функцию.

Наконец, после многих попыток, я нашел источник ошибки и решил ее.

Отключить синхронизацию времени при запуске

Ответ или решение

Причины, по которым клиент timesyncd не получает ответ от NTP-сервера (время ожидания ответа истекает)

Судя по представленным вами данным, служба systemd-timesyncd на вашем Lubuntu 22.04 активно пытается подключиться к NTP-серверу ntp.ubuntu.com, но постоянно сталкивается с сообщениями об истечении времени ожидания ответа. Поскольку вы можете пинговать NTP-сервер, но не можете получить от него ответы, это указывает на несколько возможных причин проблемы:

  1. Блокировка ISP:
    Проверка, которую вы проводили, показала, что ваша проблема исчезла при подключении к другому интернет-провайдеру. Это может указывать на то, что ваш текущий провайдер блокирует пакеты, направленные на NTP-порты (порт 123). В таком случае, вы можете попробовать использовать VPN или прокси-сервер, чтобы обойти эту блокировку.

  2. Проблемы с маршрутизацией:
    Возможно, есть проблемы с маршрутизацией пакетов к NTP-серверу. Это может быть связано как с вашим локальным маршрутизатором, так и с политиками маршрутизации вашего интернет-провайдера.

  3. Настройки сети:
    Убедитесь, что в сетевых настройках вашего устройства нет дополнительных ограничений (например, нет фильтрации трафика). Также следует проверить настройки маршрутизатора, если вы используете его.

  4. Неправильные конфигурации рассматриваемого сервиса:
    Возможно, в конфигурации timesyncd есть ошибки. Хотя вы не вносили изменения в конфигурационный файл /etc/systemd/timesyncd.conf, стоит убедиться, что не осталось закомментированных строк, которые могут привести к неправильной работе с NTP.

  5. Проблемы с сетью:
    Проверьте, нет ли проблем с вашей локальной сетью. Иногда проблемы с сетевым оборудованием могут вызывать подобные сбои.

Решение:

Раз вы уже нашли решение в виде использования другого сетевого подключения, также рассмотрите следующие действия для устранения проблемы:

  1. Смените сервер времени: Вы можете попробовать использовать другие NTP-серверы, такие как time.google.com или pool.ntp.org, которые являются общими NTP-серверами и могут быть более доступными.

  2. Проверьте другие сервисы: Если NTP-сервисы по-прежнему недоступны, попробуйте установить и настроить ntpd, который может иметь другие параметры конфигурации и будет работать независимо от systemd-timesyncd.

  3. Обратите внимание на настройки вашего оборудования: Если ваше устройство виртуализировано (что кажется, судя по вашему вопросу), убедитесь, что у вашего гипервизора (VMWARE ESXI) корректно настроены параметры синхронизации времени. Отключение автоматической синхронизации времени на уровне гипервизора может помочь в устранении конфликтов между виртуальной машиной и гипервизором.

Примечание:

Вы уже установили пакет htpdate и использовали альтернативные методы, такие как ручная установка времени через curl. Это указывает на то, что ваше устройство может получать время из других источников, но может иметь проблемы с проверкой NTP через стандартные порты.

Если проблема продолжает возникать, возможно, стоит рассмотреть возможность обращения к вашему интернет-провайдеру с просьбой разъяснить ситуацию или проверить наличие блокировок.

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

Капча загружается...