文章目錄
- **1. Netplan(網絡配置抽象層)**
- **2. NetworkManager(動態網絡管理)**
- **3. systemd-networkd(輕量級網絡管理)**
- **4. networking(傳統的 ifupdown)**
- **5. 它們之間的關系**
- **6. 如何選擇?**
- **7. 常見問題**
- **總結**
Ubuntu 的網絡管理確實涉及多個組件,包括 Netplan、NetworkManager、systemd-networkd 和傳統的 networking(ifupdown),它們各自有不同的作用,但也可以協同工作。以下是它們的關系和區別:
1. Netplan(網絡配置抽象層)
- 作用:Netplan 是一個 YAML 配置文件解析器,本身不直接管理網絡,而是將配置轉換為底層網絡管理工具(如 NetworkManager 或 systemd-networkd)的格式。
- 特點:
- 提供統一的 YAML 配置文件(
/etc/netplan/*.yaml
)。 - 支持兩種后端(
renderer
):NetworkManager
(適用于桌面環境)systemd-networkd
(適用于服務器環境)
- 通過
netplan apply
應用配置。
- 提供統一的 YAML 配置文件(
- 示例配置:
network:version: 2renderer: NetworkManager # 或 networkdethernets:enp0s3:dhcp4: true
2. NetworkManager(動態網絡管理)
- 作用:NetworkManager 是一個 高級網絡管理工具,主要用于 桌面環境,支持 Wi-Fi、VPN、移動網絡等動態網絡管理。
- 特點:
- 提供 GUI(如 GNOME 網絡設置)和 CLI(
nmcli
/nmtui
)。 - 適用于需要頻繁切換網絡的環境(如筆記本電腦)。
- 默認在 Ubuntu 桌面版使用 Netplan 的
renderer: NetworkManager
。
- 提供 GUI(如 GNOME 網絡設置)和 CLI(
- 常用命令:
nmcli device status # 查看網絡設備 nmcli connection show # 查看連接
3. systemd-networkd(輕量級網絡管理)
- 作用:
systemd-networkd
是 systemd 的一部分,是一個輕量級網絡管理工具,適用于 服務器 或嵌入式設備。 - 特點:
- 占用資源少,適合靜態網絡配置。
- 不支持 Wi-Fi(需搭配
wpa_supplicant
)。 - 默認在 Ubuntu Server 版使用 Netplan 的
renderer: networkd
。
- 配置文件:
- Netplan 生成的配置會轉換為
/run/systemd/network/*.network
文件。
- Netplan 生成的配置會轉換為
4. networking(傳統的 ifupdown)
- 作用:
networking
是傳統的網絡管理方式,使用/etc/network/interfaces
文件。 - 特點:
- 在 Ubuntu 18.04 后被 Netplan 取代,但仍可手動安裝
ifupdown
包使用。 - 適用于簡單的靜態網絡配置,但功能有限。
- 在 Ubuntu 18.04 后被 Netplan 取代,但仍可手動安裝
- 示例配置:
auto enp0s3 iface enp0s3 inet staticaddress 192.168.1.100netmask 255.255.255.0gateway 192.168.1.1
5. 它們之間的關系
組件 | 作用 | 適用場景 | 依賴關系 |
---|---|---|---|
Netplan | 統一配置,生成底層工具所需的配置 | 所有 Ubuntu 版本 | 依賴 NetworkManager 或 systemd-networkd |
NetworkManager | 動態網絡管理(Wi-Fi、VPN等) | 桌面環境 | 可被 Netplan 調用 |
systemd-networkd | 輕量級靜態網絡管理 | 服務器/嵌入式 | 可被 Netplan 調用 |
networking (ifupdown) | 傳統網絡配置(/etc/network/interfaces ) | 舊系統/特殊需求 | 需手動安裝,與 Netplan 沖突 |
6. 如何選擇?
- 桌面用戶:
- 使用 NetworkManager(Netplan 的
renderer: NetworkManager
),方便管理 Wi-Fi 和動態網絡。
- 使用 NetworkManager(Netplan 的
- 服務器用戶:
- 使用 systemd-networkd(Netplan 的
renderer: networkd
),更輕量、穩定。
- 使用 systemd-networkd(Netplan 的
- 傳統配置(不推薦):
- 可安裝
ifupdown
并使用/etc/network/interfaces
,但可能與 Netplan 沖突。
- 可安裝
7. 常見問題
-
Q: Netplan 和 NetworkManager/systemd-networkd 誰優先級更高?
A: Netplan 只是生成配置,實際管理由底層工具(NetworkManager 或 systemd-networkd)執行。如果手動用nmcli
修改,可能會覆蓋 Netplan 的配置。 -
Q: 如何檢查當前使用的網絡管理工具?
A: 運行:systemctl status NetworkManager # 檢查 NetworkManager systemctl status systemd-networkd # 檢查 systemd-networkd
-
Q: 為什么
netplan apply
后網絡沒變化?
A: 可能是 YAML 縮進錯誤,或底層服務未重啟。可嘗試:sudo netplan --debug apply # 查看詳細錯誤
總結
- Netplan 是配置層,NetworkManager 和 systemd-networkd 是執行層。
- 桌面用戶用 NetworkManager,服務器用戶用 systemd-networkd。
- 傳統
ifupdown
已淘汰,但仍可手動使用。
如果需要更詳細的配置示例,可以參考 Netplan 官方文檔或 Ubuntu 網絡管理指南。