Debian

使用 systemd-networkd 重命名乙太介面,無需重啟

  • May 19, 2022

我有一個配置為路由器的虛擬 Debian 11 伺服器。在我systemd-networkd用來配置所有網路介面的路由器上。

當我向路由器添加(虛擬)介面時,該介面將被檢測為ens1帶有 mac address aa:bb:cc:dd:ee:ff。我想將名稱更改為更有意義的名稱,例如eth0.

我創建了一個文件01-eth0.link/etc/systemd/network其中包含以下資訊:

[Match]
MACAddress=aa:bb:cc:dd:ee:ff

[Link]
Name=eth0

之後,我創建了一個名為的文件02-eth0.network,其中包含以下資訊:

[Match]
Name=eth0

[Network]
Address=192.168.1.1

當我這樣做時,systemctl restart systemd-networkd它會毫無問題地重新啟動,但也不會提及重命名。

networkctl輸出以下內容:

IDX LINK         TYPE     OPERATIONAL SETUP
49 ens1         ether    off         unmanaged

當我重新啟動機器時,名稱將被更改,並且連結將正常執行。但我想將.link配置應用到介面而無需重新啟動。

感謝@telcoM 讓我找到了正確的答案。

通過重新啟動systemd-udev-trigger服務,介面將根據.link文件重命名。

完整命令:systemctl restart systemd-udev-trigger.service

我現在無法對此進行測試,也沒有嘗試過這個確切的程序,所以請謹慎對待。

這些.link文件不是由 處理的systemd-networkd,而是由systemd-udevd(參見man 5 systemd.link)處理的。所以你可能想嘗試:

udevadm control --reload
udevadm trigger /sys/class/net/ens1

引用自:https://unix.stackexchange.com/questions/703012