Невозможно запустить NTP (systemd-timesyncd) через WiFi.

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

Я запускаю предустановленный образ SD-карты для Raspberry Pi от nextcloudpi, но думаю, что здесь я смогу получить лучшую помощь.

Я заметил, что время и дата не обновляются автоматически, поэтому начал отладку. Я обнаружил, что все строки в файле /etc/systemd/timesyncd.conf были закомментированы, а строка NTP была пустой. Нет дополнительного подкаталога timesyncd.conf.d. Поэтому я убрал комментарии и заполнил строку NTP. Вот как теперь выглядит файл timesyncd.conf:

[Time]
NTP=0.europe.pool.ntp.org
FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
RootDistanceMaxSec=5
PollIntervalMinSec=32
PollIntervalMaxSec=2048
ConnectionRetrySec=30
SaveIntervalSec=60

Кажется, что содержимое успешно обрабатывается, потому что:

pi@nextcloudpi:~$ timedatectl show-timesync --all
LinkNTPServers=
SystemNTPServers=0.europe.pool.ntp.org
RuntimeNTPServers=
FallbackNTPServers=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
ServerName=
ServerAddress=
RootDistanceMaxUSec=5s
PollIntervalMinUSec=32s
PollIntervalMaxUSec=34min 8s
PollIntervalUSec=0
Frequency=0

Однако:

pi@nextcloudpi:~$ timedatectl
               Local time: Sat 2024-12-28 12:05:31 EET
           Universal time: Sat 2024-12-28 10:05:31 UTC
                 RTC time: n/a
                Time zone: Europe/Helsinki (EET, +0200)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no

pi@nextcloudpi:~$ timedatectl timesync-status
       Server: n/a (n/a)
Poll interval: 0 (min: 32s; max 34min 8s)
 Packet count: 0

Системные часы всегда показывают no и сервер всегда n/a.

Я попробовал

sudo timedatectl set-ntp false
sudo timedatectl set-ntp true

но это ничего не изменило.

Служба systemd-timesyncd запущена:

● systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; preset: enabled)
    Drop-In: /etc/systemd/system/systemd-timesyncd.service.d
             └─override.conf
     Active: active (running) since Fri 2024-12-27 22:38:50 EET; 13h ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 3014 (systemd-timesyn)
     Status: "Daemon is running"
      Tasks: 1 (limit: 761)
     Memory: 576.0K
        CPU: 920ms
     CGroup: /system.slice/systemd-timesyncd.service
             └─3014 /lib/systemd/systemd-timesyncd

Я попытался включить отладочное ведение журнала этой службы, но полезных данных не печатается. Никогда не появляется ничего вроде Connecting to time server. Оно даже не пытается.

Я также попытался вручную обновить с помощью ntpdate

sudo ntpdate -vd pool.ntp.org

и это сработало нормально. Я предполагаю, что это исключает возможные проблемы с DNS и другими сетями.

У меня закончились идеи. Что я здесь упускаю?

Вот информация о версии:

pi@nextcloudpi:~$ sudo lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Armbian-unofficial 24.8.2 bookworm
Release:        12
Codename:       bookworm

pi@nextcloudpi:~$ cat /etc/armbian-release
# PLEASE DO NOT EDIT THIS FILE
BOARD=rpi4b
BOARD_NAME="Raspberry Pi 4"
BOARDFAMILY=bcm2711
BUILD_REPOSITORY_URL=https://github.com/armbian/build
BUILD_REPOSITORY_COMMIT=549f321
LINUXFAMILY=bcm2711
ARCH=arm64
BOOT_SOC=
IMAGE_TYPE=user-built
BOARD_TYPE=conf
INITRD_ARCH=arm64
KERNEL_IMAGE_TYPE=Image
FORCE_BOOTSCRIPT_UPDATE=
FORCE_UBOOT_UPDATE=
VENDOR="Armbian-unofficial"
VENDORDOCS="https://docs.armbian.com/"
VENDORURL="https://duckduckgo.com/"
VENDORSUPPORT="https://community.armbian.com/"
VENDORBUGS="https://armbian.atlassian.net/"
VERSION=24.8.2
REVISION=24.8.2

Редактировать:

pi@nextcloudpi:~$ ntpq -np
-bash: ntpq: command not found

pi@nextcloudpi:~$ systemctl status ntp
Unit ntp.service could not be found.

Редактировать 2:

Поэтому, это оказывается сетевой проблемой. До сих пор я был подключен только через WiFi. Но как только я подключил также и Ethernet-кабель, System clock synchronized изменилось на yes.

Но почему это не работает через WiFi? Вот статус resolvectl, когда подключен только WiFi:

Global
         Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: stub
Current DNS Server: 1.0.0.1
        DNS Servers 1.0.0.1

Link 2 (enxb827ebf2575c)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

Link 3 (wlan0)
    Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.1.1
       DNS Servers: 192.168.1.1

Когда Ethernet-кабель подключен, все то же самое, за исключением части Link 2:

Link 2 (enxb827ebf2575c)
    Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.1.1
       DNS Servers: 192.168.1.1

И WiFi и Ethernet находятся в одной и той же сети.

Теперь проблема решена. Моя ошибка заключалась в том, как я изначально настроил соединение WiFi. Сначала я попытался использовать raspi-config для этого. Однако, он вылетел при применении изменений. См. эту проблему: https://github.com/nextcloud/nextcloudpi/issues/1970

Я не знаком с этим “новым” подходом Netplan, поэтому установил “старый” NetworkManager и настроил соединение WiFi с его помощью. Все работало хорошо, кроме systemd-timesyncd. Видимо, он не нравится NetworkManager.

Решением было отключение (и удаление) NetworkManager. Соединение WiFi можно настроить с помощью команды armbian-config, которая создает правильный файл /etc/netplan/armbian.yaml.

.

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

Если у вас возникли проблемы с настройкой NTP (systemd-timesyncd) через WiFi на Raspberry Pi с образом SD-карты от NextcloudPi, и вы не можете добиться синхронизации времени, важно понять возможные причины и способы их устранения. Ваша ситуация уже решена, но для полноты картины давайте рассмотрим процесс диагностики и устранения неисправностей, а также правильную настройку сетевых подключений.

Возможные причины:

  1. Неверная конфигурация WiFi: Как вы уже выяснили, ошибки при использовании raspi-config для настройки WiFi-модуля могли привести к некорректным маршрутизациям или проблемам с DNS.

  2. Конфликты с NetworkManager: NetworkManager, как правило, не всегда корректно взаимодействует с systemd-timesyncd, особенно при ручных настройках сети.

  3. Отсутствие необходимых привилегий для доступа к сети или DNS: Неправильно настроенные привилегии могут блокировать доступ к NTP-серверу через WiFi, несмотря на успех через Ethernet.

Решение:

1. Настройка WiFi:

Используйте armbian-config:

  • Установите соединение через armbian-config, что обеспечит правильное создание файла /etc/netplan/armbian.yaml. Это исключит конфликты, которые могли возникнуть при использовании других инструментов сетевой конфигурации.

2. Удаление NetworkManager:

  • Если вы установили NetworkManager, чтобы управлять сетями, рекомендуется его удалить, чтобы система использовала только штатные средства управления сетями через Netplan и networkd.

3. Корректная настройка systemd-timesyncd:

  • Убедитесь, что строка NTP в /etc/systemd/timesyncd.conf корректно настроена и укажите работоспособные NTP-серверы.
  • Проверьте запущенность сервиса системного времени через systemctl status systemd-timesyncd и его работоспособность с помощью timedatectl.

4. Тестирование и диагностика:

  • DNS и сеть через WiFi: Используйте команды такие как resolvectl status для проверки DNS при подключении через WiFi. Все DNS-серверы должны быть корректно настроены.
  • Проверка связности сети: Используйте ping и nslookup для тестирования соединения с NTP-серверами.

Заключение:

Ваш случай подчеркивает важность корректной настройки сети и применения правильных инструментов. Использование armbian-config позволяет избежать множества типичных ошибок конфигурации сетей на Raspberry Pi, которые могут привести к сложности, особенно при переключении между WiFi и Ethernet. Убедитесь, что сетевые настройки согласованы и что все службы работают без конфликтов. Эти шаги не только решат текущую проблему, но и помогут избежать аналогичных трудностей в будущем.

Это руководство поможет другим пользователям эффективно устранять подобные проблемы и смело пользоваться всеми преимуществами их устройств.

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

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