我在尝试使用 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
,该命令将等待任何接口上线。
IE
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