ubuntu网络管理五花八门netplan 、NetworkManager、systemd、networking是什么关系

发布于:2025-06-20 ⋅ 阅读:(17) ⋅ 点赞:(0)

Ubuntu 的网络管理确实涉及多个组件,包括 NetplanNetworkManagersystemd-networkd 和传统的 networking(ifupdown),它们各自有不同的作用,但也可以协同工作。以下是它们的关系和区别:


1. Netplan(网络配置抽象层)

  • 作用:Netplan 是一个 YAML 配置文件解析器,本身不直接管理网络,而是将配置转换为底层网络管理工具(如 NetworkManager 或 systemd-networkd)的格式。
  • 特点
    • 提供统一的 YAML 配置文件(/etc/netplan/*.yaml)。
    • 支持两种后端(renderer):
      • NetworkManager(适用于桌面环境)
      • systemd-networkd(适用于服务器环境)
    • 通过 netplan apply 应用配置。
  • 示例配置
    network:
      version: 2
      renderer: NetworkManager  # 或 networkd
      ethernets:
        enp0s3:
          dhcp4: true
    

2. NetworkManager(动态网络管理)

  • 作用:NetworkManager 是一个 高级网络管理工具,主要用于 桌面环境,支持 Wi-Fi、VPN、移动网络等动态网络管理。
  • 特点
    • 提供 GUI(如 GNOME 网络设置)和 CLI(nmcli/nmtui)。
    • 适用于需要频繁切换网络的环境(如笔记本电脑)。
    • 默认在 Ubuntu 桌面版使用 Netplan 的 renderer: NetworkManager
  • 常用命令
    nmcli device status  # 查看网络设备
    nmcli connection show  # 查看连接
    

3. systemd-networkd(轻量级网络管理)

  • 作用systemd-networkdsystemd 的一部分,是一个轻量级网络管理工具,适用于 服务器 或嵌入式设备。
  • 特点
    • 占用资源少,适合静态网络配置。
    • 不支持 Wi-Fi(需搭配 wpa_supplicant)。
    • 默认在 Ubuntu Server 版使用 Netplan 的 renderer: networkd
  • 配置文件
    • Netplan 生成的配置会转换为 /run/systemd/network/*.network 文件。

4. networking(传统的 ifupdown)

  • 作用networking 是传统的网络管理方式,使用 /etc/network/interfaces 文件。
  • 特点
    • 在 Ubuntu 18.04 后被 Netplan 取代,但仍可手动安装 ifupdown 包使用。
    • 适用于简单的静态网络配置,但功能有限。
  • 示例配置
    auto enp0s3
    iface enp0s3 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        gateway 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. 如何选择?

  1. 桌面用户
    • 使用 NetworkManager(Netplan 的 renderer: NetworkManager),方便管理 Wi-Fi 和动态网络。
  2. 服务器用户
    • 使用 systemd-networkd(Netplan 的 renderer: networkd),更轻量、稳定。
  3. 传统配置(不推荐)
    • 可安装 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 是配置层,NetworkManagersystemd-networkd 是执行层。
  • 桌面用户用 NetworkManager,服务器用户用 systemd-networkd
  • 传统 ifupdown 已淘汰,但仍可手动使用。

如果需要更详细的配置示例,可以参考 Netplan 官方文档或 Ubuntu 网络管理指南。


网站公告

今日签到

点亮在社区的每一天
去签到