Netplan是Ubuntu 17.10及更高版本中預設的網絡配置工具。它是一個指令行工具,可以幫助使用者輕松地配置網絡接口,包括靜态或動态IP位址、網關、DNS等等。
Netplan的配置檔案使用YAML格式,這使得配置檔案易于閱讀和編輯,并且可以通過版本控制系統進行管理。此外,Netplan還支援基于渲染器的網絡配置,這意味着它可以根據不同的網絡配置需求,
Netplan的一個主要優勢是它可以幫助使用者減少一些常見的網絡配置問題,例如網絡命名約定不一緻、網絡接口名稱的變化等等。使用Netplan,使用者可以輕松地配置多個網絡接口,并可以指定其預設路由,進而提高網絡性能和安全性。
多配置引擎
Netplan可以使用不同的配置引擎來管理網絡配置,例如NetworkManager、systemd-networkd和DHCP用戶端等。
- NetworkManager:這是一個廣泛使用的網絡配置工具,可以管理Wi-Fi、藍牙和有線網絡接口,并支援動态IP位址配置設定和VPN連接配接等功能。
- systemd-networkd:這是一個系統守護程序,負責管理網絡配置。它提供了基本的網絡接口配置和DNS解析功能,并支援IPv6和網絡橋接等進階功能。
- 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 系統網絡接口的指令行工具,其配置檔案的命名通常遵循以下規則:
- 檔案名必須以 .yaml 為字尾。
- 檔案名應該是以網絡接口的名稱為基礎,例如 eth0.yaml,其中 eth0 是網絡接口的名稱。
- 如果需要配置多個網絡接口,可以使用 config.yaml 或者類似的通用名稱,然後在檔案中分别定義每個網絡接口的配置。
- 檔案名前面的數字辨別表示配置檔案的優先級。具體來說,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 指令即可使配置生效。