
我在嘗試使用 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