systemd-networkd-wait-online.service постоянно дает сбой

systemd-networkd-wait-online.service постоянно дает сбой

У меня возникла странная проблема при попытке настроить работу сети в Linux с помощью systemd.

Моя сеть eth0подключена к корпоративной сети с DHCP-сервером:

# more /etc/systemd/network/main.network

#Main connection to the outside world
[Match]
Name=eth0
[Network]
DHCP=yes 
IPForward=yes
# networkctl status eth0

2: eth0
           Link File: n/a
        Network File: /etc/systemd/network/main.network
                Type: ether
               State: routable (configured)
          HW Address: 00:03:2d:32:85:3a (IBASE Technology, Inc.)
                 MTU: 1500
             Address: 10.0.7.134
                      fe80::203:2dff:fe32:853a
             Gateway: 10.0.7.1
                 DNS: 10.0.7.10

Однако услуга ожидания онлайн не работает:

# /lib/systemd/systemd-networkd-wait-online --interface eth0 --timeout=10

ignoring: sit0
Event loop failed: Connection timed out

Система получила действительный IP-адрес, eth0поэтому я не понимаю, почему она не может быть в сети.

У меня в системе есть еще один интерфейс eth1, который не подключен.

решение1

Кажется вероятным, что это systemd-networkd-wait-onlineможет быть ожидание появления других интерфейсов, несмотря на то, что вы указали флаг --interface. Форматирование для флага, которое вы указали изначально, показывает, --interface eth0хотя страница руководства показывает, что форматирование для этого флага должно быть или -i eth0, --interface=eth0поэтому это может быть проблемой.

Согласно странице руководства, еще одним потенциальным способом решения этой проблемы является запуск команды с параметром --any, которая будет ожидать, пока какой-либо интерфейс не подключится к сети.

то есть
systemd-networkd-wait-online --any


Ответы наэтот вопрос, и информация о настройке systemd-networkd, которую я нашелздесьтакже покажите, как можно редактировать службу systemd, которая выполняет это ожидание, выполнив:

sudo systemctl edit systemd-networkd-wait-online.service

Затем введите:

[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any

Связанный контент