天天看點

Netplan——新一代網絡配置工具

作者:新新碼農

Netplan是Ubuntu 17.10及更高版本中預設的網絡配置工具。它是一個指令行工具,可以幫助使用者輕松地配置網絡接口,包括靜态或動态IP位址、網關、DNS等等。

Netplan的配置檔案使用YAML格式,這使得配置檔案易于閱讀和編輯,并且可以通過版本控制系統進行管理。此外,Netplan還支援基于渲染器的網絡配置,這意味着它可以根據不同的網絡配置需求,

Netplan的一個主要優勢是它可以幫助使用者減少一些常見的網絡配置問題,例如網絡命名約定不一緻、網絡接口名稱的變化等等。使用Netplan,使用者可以輕松地配置多個網絡接口,并可以指定其預設路由,進而提高網絡性能和安全性。

多配置引擎

Netplan可以使用不同的配置引擎來管理網絡配置,例如NetworkManager、systemd-networkd和DHCP用戶端等。

  1. NetworkManager:這是一個廣泛使用的網絡配置工具,可以管理Wi-Fi、藍牙和有線網絡接口,并支援動态IP位址配置設定和VPN連接配接等功能。
  2. systemd-networkd:這是一個系統守護程序,負責管理網絡配置。它提供了基本的網絡接口配置和DNS解析功能,并支援IPv6和網絡橋接等進階功能。
  3. DHCP用戶端:這是一個動态主機配置協定(DHCP)用戶端,可以自動配置設定IP位址和其他網絡參數。它通常與DHCP伺服器一起使用,以管理區域網路上的客戶機IP位址配置設定。

通過使用這些不同的配置引擎,Netplan可以适應不同的網絡配置需求,并提供更多的配置靈活性和可擴充性。例如,在使用伺服器時,可以使用systemd-networkd來提高性能和可靠性,而在桌面環境中,可以使用NetworkManager來管理各種網絡接口,以友善使用者使用。

為什麼不直接使用NetworkManager或systemd-networkd

雖然NetworkManager和systemd-networkd都是強大的網絡配置工具,但Ubuntu開發人員決定引入Netplan的主要原因是為了提高Ubuntu系統的網絡配置體驗和一緻性。

在過去,Ubuntu使用ifupdown作為預設的網絡配置工具。但是,ifupdown的配置檔案使用傳統的基于文本的格式,并且缺乏靈活性和可擴充性。此外,Ubuntu系統還經常遇到一些網絡配置問題,例如接口命名不一緻、硬體變化等等,導緻網絡配置需要手動更改。

Netplan的引入解決了這些問題。它提供了一個現代化的、易于閱讀和編輯的YAML格式的配置檔案,可以輕松地管理多個網絡接口和配置參數。此外,Netplan還支援多種配置引擎,使得Ubuntu使用者可以根據自己的需求選擇适當的網絡配置方案。

最重要的是,Netplan可以提高網絡配置的一緻性和穩定性。通過使用Netplan,Ubuntu系統可以自動檢測網絡接口和硬體變化,并自動更新配置檔案。這樣,Ubuntu使用者可以避免手動修改網絡配置檔案所帶來的錯誤和不便。

用法

要使用Netplan,可以按照以下步驟進行操作:

1.打開終端視窗。在Gnume中可以使用Ctrl+Alt+T鍵快捷鍵來打開終端。

2.使用編輯器打開Netplan配置檔案。預設的配置檔案位于“/etc/netplan/”目錄下,命名為“01-netcfg.yaml”。可以使用指令“sudo nano /etc/netplan/01-netcfg.yaml”來打開此檔案,并編輯配置。

3.在Netplan配置檔案中,可以定義一個或多個網絡接口和相關參數,例如IP位址、網關、DNS等等。以下是一個簡單的Netplan配置檔案示例:

network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]           

在上面的示例中,我們定義了一個名為“enp0s3”的以太網接口,禁用了DHCP用戶端,并手動指定了IP位址、子網路遮罩、網關和DNS伺服器。

  • 儲存Netplan配置檔案并應用更改。可以使用Ctrl+X鍵快捷鍵退出編輯器,并選擇“Y”儲存更改。然後,可以使用指令“sudo netplan apply”來應用新的網絡配置。
  • 驗證網絡配置。可以使用指令“ip addr”和“ip route”來檢查新的網絡配置是否已成功應用。如果一切正常,應該可以看到新的網絡接口和相關參數。

配置檔案的命名

Netplan 是一個用于配置 Linux 系統網絡接口的指令行工具,其配置檔案的命名通常遵循以下規則:

  1. 檔案名必須以 .yaml 為字尾。
  2. 檔案名應該是以網絡接口的名稱為基礎,例如 eth0.yaml,其中 eth0 是網絡接口的名稱。
  3. 如果需要配置多個網絡接口,可以使用 config.yaml 或者類似的通用名稱,然後在檔案中分别定義每個網絡接口的配置。
  4. 檔案名前面的數字辨別表示配置檔案的優先級。具體來說,Netplan 會按照配置檔案名中的數字順序對配置進行合并,數字越小的配置檔案優先級越高,數字相同的配置檔案按照字母順序進行合并。

例如,如果有兩個配置檔案 01-netcfg.yaml 和 02-netplan.yaml,則 Netplan 會先應用 01-netcfg.yaml 中的配置,然後再應用 02-netplan.yaml 中的配置。如果兩個配置檔案中都有相同的接口配置,那麼在合并時會以 02-netplan.yaml 中的配置為準。

是以,如果要修改網絡接口的配置,可以建立一個新的配置檔案,并確定檔案名前面的數字比現有的配置檔案優先級更高。

配置項

在 Netplan 的配置檔案中,可以使用以下标簽來配置網絡接口和相關設定:

  • network: 該标簽是配置檔案的根标簽,表示整個網絡的配置。可以在該标簽下定義多個網絡接口的配置,以及一些全局設定。
  • version: 該标簽用于指定 Netplan 的版本号。目前版本為 2。
  • renderer: 該标簽用于指定網絡接口的配置方式,支援 networkd 和 NetworkManager 兩種渲染器。
  • ethernets: 該标簽用于定義以太網接口的配置。
  • bridges: 該标簽用于定義橋接接口的配置。
  • vlans: 該标簽用于定義 VLAN 接口的配置。
  • bonds: 該标簽用于定義網卡綁定接口的配置。
  • wifis: 該标簽用于定義 Wi-Fi 接口的配置。
  • access-points: 該标簽用于定義 Wi-Fi 接口的可通路點配置。
  • nameservers: 該标簽用于定義 DNS 解析器的配置。
  • routes: 該标簽用于定義路由表的配置。
  • dhcp4 和 dhcp6: 該标簽用于定義 DHCP 的配置,包括是否使用 DHCP 和 DHCP 的選項。

這些标簽可以組合使用,以實作不同網絡場景下的配置需求。例如,可以在 ethernets 标簽下定義以太網接口的 IP 位址和網關,然後在 nameservers 标簽下定義 DNS 解析器的配置。在配置完成後,使用 netplan apply 指令即可使配置生效。

繼續閱讀