netplan网络管理

Netplan 是 Ubuntu 系统(自 18.04 版本起)默认的网络配置工具,通过 YAML 格式的声明式配置文件简化网络管理,支持静态 IP、DHCP、网桥、VLAN 等复杂场景。以下是详细配置指南:


核心概念与配置步骤

  1. 配置文件位置
    Netplan 的配置文件位于 /etc/netplan/ 目录,文件名通常为 01-netcfg.yaml 或类似格式。文件名需以 .yaml 结尾,且遵循 数字-名称.yaml 的命名规则。

  2. 基本语法结构
    配置文件以 network 为根节点,包含 version: 2 表示使用新版语法,并通过 ethernetswifis 等子节点定义接口。例如:

   network:
     version: 2
     ethernets:
       enp0s3:
         dhcp4: false
         addresses: [192.168.1.100/24]
         routes:
           - to: default
             via: 192.168.1.1
         nameservers:
           addresses: [8.8.8.8, 8.8.4.4]
  • dhcp4: true 表示启用 IPv4 DHCP。
  • addresses 定义静态 IP 和子网掩码。
  • routes 设置默认网关,替代旧版的 gateway4 参数。
  • nameservers 配置 DNS 服务器。
  1. 应用配置
    修改文件后,执行 sudo netplan apply 使配置生效。若需测试配置是否安全,可用 sudo netplan try 临时应用并确认。

常见配置示例

1. 静态 IP 配置

network:
  version: 2
  renderer: networkd  # 或 NetworkManager(桌面版默认)
  ethernets:
    eth0:
      dhcp4: no
      addresses: [10.0.0.10/24]
      routes:
        - to: default
          via: 10.0.0.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]
  • renderer 指定后端(networkd 用于服务器,NetworkManager 用于桌面)。
  • 若接口可能未连接,添加 optional: true 避免系统启动超时。

2. DHCP 配置

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: true
      dhcp6: true  # 可选,启用 IPv6 DHCP
  • 支持多接口同时启用 DHCP。

3. 无线网络配置

network:
  version: 2
  wifis:
    wlp2s0:
      access-points:
        "SSID名称":
          password: "密码"
      dhcp4: true
  • 适用于 WPA2 加密的 Wi-Fi。

4. 网桥配置

network:
  version: 2
  bridges:
    br0:
      interfaces: [enp1s0]
      dhcp4: true
  • 将物理接口 enp1s0 加入虚拟网桥 br0,并启用 DHCP。

高级功能与注意事项

  1. 多后端支持
    Netplan 生成配置后,实际网络管理由 systemd-networkd(服务器)或 NetworkManager(桌面)执行。二者区别:

    • systemd-networkd:适用于固定网络环境(如服务器)。
    • NetworkManager:支持动态网络切换(如笔记本电脑)。
  2. 复杂场景

    • VLAN:通过 vlans 节点划分虚拟局域网。
    • 绑定(Bonding) :定义 bonds 实现链路聚合。
    • 路由策略:使用 routing-policy 指定多网关或策略路由。
  3. 调试与问题排查

    • 使用 ip addrip route 检查接口和路由状态。
    • 若配置错误导致网络中断,可通过 sudo netplan --debug apply 查看详细日志。
    • 备份原始配置文件,避免误操作。

与其他工具的兼容性

  • 切换回传统配置
    安装 ifupdown 包并删除 /etc/netplan/ 下的文件,即可恢复 /etc/network/interfaces 配置。
  • 混合使用场景
    Netplan 未配置的接口仍可通过其他工具管理(如 nmcliip 命令)。

Linux常见网络管理方式

  • NetworkManager
    NetworkManager是一个能够动态控制和配置网络的守护进程,它管理网络服务和网络连接。
    提供了命令行工具nmcli,可以用于查看网络状态、管理网络连接和配置网络设置。
    也可以使用nmtui命令打开NetworkManager的文本用户界面(TUI),进行网络连接的激活、关闭和添加等操作。适用于需要频繁更改网络配置或使用图形界面的桌面系统。
  • networkd(systemd-networkd)
    是systemd组件的一部分,主要用于管理系统的网络配置。
    设计上比较简洁,适合资源有限的环境,如服务器和嵌入式设备。
    使用简单的配置文件(如/etc/netplan/*.yaml)进行网络配置,通常不提供图形化界面。
    默认随系统启动并管理网络接口。
    适用于需要稳定性和简单配置的服务器环境和嵌入式系统。
    在这些环境中,networkd能够提供基础且可靠的网络配置功能。
    与systemd紧密集成,具有较高的稳定性。
    轻量级且易于配置,适合资源受限的环境。
  • network.service
    基于sysV初始化系统的服务管理,是系统提供的服务之一,用于兼容遗留的网络功能,网络管理脚本通常位于/etc/init.d/network,该脚本实际通过ifup/ifdown等命令来管理网络。使用systemctl命令来管理network.service的启动、停止和重启等操作。网络配置文件通常位于/etc/sysconfig/network-scripts/目录下,以ifcfg-开头,后跟网卡名称。

通过上述配置示例和原理,用户可灵活应对不同网络需求。建议参考 Netplan 官方文档 获取最新语法和功能支持。

参考:https://netplan.readthedocs.io/en/stable/netplan-tutorial/
https://documentation.ubuntu.com/server/explanation/networking/configuring-networks/index.html
https://blog.csdn.net/bigbaojian/article/details/125396045

posted @ 2025-03-19 10:38  今夕何兮  阅读(711)  评论(0)    收藏  举报