Netplan 网络配置指南

目录

Netplan 是 Ubuntu 17.10 及以后版本中默认的网络配置工具。它通过读取 YAML 格式的配置文件,并将其渲染(Render)为底层网络服务(如 systemd-networkdNetworkManager)的可执行配置。


1. 理论基础与核心概念

  • 配置目录​:主要配置文件位于 /etc/netplan/*.yaml。系统按文件名升序(字母/数字)读取,后读取的文件会覆盖或补充先前的配置。
  • ​**后端渲染器 (Renderers)**​:
    • networkd​:通常用于服务器(Server),由 systemd-networkd 管理。
    • NetworkManager​:通常用于桌面环境(Desktop),支持图形化管理和复杂的 Wi-Fi 切换。
  • YAML 规范​:
    • 必须使用空格缩进​,禁止使用 Tab 键。
    • 冒号(:)后必须紧跟一个空格。
    • 层级结构严格,每一级代表一个配置对象。

2. 常用操作指令

在修改配置文件后,必须通过以下命令生效:

命令 描述
sudo netplan generate 将 YAML 转换为底层后端(如 networkd)的配置。
sudo netplan apply 立即应用所有网络配置。
sudo netplan try 推荐使用​。尝试应用配置,并等待用户确认。若 120s 内无响应则自动回滚(防止远程断连)。
sudo netplan ip leases <网卡名> 查看 DHCP 自动分配的详细信息。

3. 配置示例:静态 IP 与 DHCP

以下是典型的网卡配置模板,你可以通过 ip link 获取具体的网卡名称(如 eth0enp0s3)。

示例:配置静态 IPv4

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      addresses:
        - 192.168.1.100/24  # 静态 IP 地址/掩码
      routes:
        - to: default
          via: 192.168.1.1  # 网关地址
      nameservers:
        addresses:
          - 8.8.8.8         # DNS 服务器
          - 114.114.114.114

示例:配置 DHCP(自动获取)

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: yes

4. 故障排查与常见原因

当配置未能按预期生效或报错时,请按以下步骤检查:

  1. 语法校验​:
    现象:执行 netplan apply 提示 Invalid YAML at line X
    原因:通常是因为混用了 Tab 键、缩进层级不对或冒号后缺少空格。
  2. 网卡名称不匹配​:
    现象:配置后 ip addr 显示网卡仍为 DOWN 或没有 IP。
    分析:YAML 中的网卡名称(如 enp0s3)必须与 ip link 查看到的实际名称一致。
  3. 渲染器冲突​:
    现象:配置后依然受图形界面或旧脚本干扰。
    定位:检查 renderer 字段。如果是服务器环境且没有 GUI,确保使用 networkd
  4. 默认网关冲突​:
    现象:无法访问外部网络。
    解决方案:若同时启用了多个网卡,确保只有一个网卡配置了 routes 中的 default

总结

Netplan 简化了 Linux 网络的声明式配置。核心流程归结为:​编辑 YAML -> netplan try 验证 -> 确认应用​。对于生产环境,始终建议使用 try 参数以规避配置错误导致的业务中断。