Ubuntu

有沒有辦法自動將網路介面添加到 systemd-networkd 和/或 netplan?

  • June 7, 2019

我目前正在為 Ubuntu 18.04 伺服器建構預配置的磁碟映像。雖然硬體基本相同,但設備之間有一些不同的網路介面(有些是虛擬機而不是裸機)。正因為如此,我不知道事先會出現哪些網路設備或它們將被稱為什麼(有些只有一個稱為 ens33,其他有多個稱為 eno1、eno2 等)

systemd-networkd 不會自動打開介面,它們必須在配置文件中明確指定。

我目前正在通過使用 NetworkManager 而不是 networkd 來繞過它,因為它會自動打開它找到的任何介面,但考慮到 Ubuntu 安裝程序似乎會自動將它找到的任何介面添加到 netplan 的配置中,我認為必須有一種方法來設置服務或在啟動時做同樣事情的東西。有人知道這樣做的方法嗎?

systemd-networkd 可以使用萬用字元一次將配置應用於多個介面[Match]

例如:

# cat /etc/systemd/network/99-wildcard.network
[Match]
Name=en*

[Network]
DHCP=yes

這將在名稱以開頭的任何介面en(即每個有線介面)上啟動 DHCP。

這可以在 netplan 配置中使用匹配規則​​,對於那些希望將其全部保存在一個地方的人來說。這是一個簡單的解決方案,我在我的預配置圖像中使用了具有不同設備名稱的 USB 介面:

/etc/netplan/01-netcfg.yaml:

network:
 version: 2
 renderer: networkd
 ethernets:
   eth:
     match:
       name: en*
     dhcp4: yes

更多詳細資訊:Netplan 參考

引用自:https://serverfault.com/questions/923328