
systemd를 사용하여 Linux에서 네트워크를 작동시키려는 이상한 문제가 있습니다.
내 네트워크는 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