如何在 Ubuntu 上使用 Netplan 配置网络接口

How to Configure Network Interfaces with Netplan on Ubuntu

Netplan 是一个现代网络配置工具,于 Ubuntu 17.10 中引入,并在之后的 Ubuntu 18.04 及更高版本中被采纳为管理网络接口的默认工具。凭借其基于 YAML 的配置文件,Netplan 简化了管理复杂网络设置的过程,为底层工具(如 systemd-networkd 和 NetworkManager)提供了无缝接口。

在本指南中,我们将引导您完成使用 Netplan 配置网络接口的过程,从理解其核心概念到排除潜在问题。到最后,您将能够处理 Ubuntu 系统上的基本和高级网络配置。

了解 Netplan

Netplan 作为一个统一的网络配置工具,允许管理员使用声明性 YAML 文件管理网络。这些配置由渲染器应用,例如

  • systemd-networkd:非常适合服务器环境。

  • NetworkManager:常用于桌面设置。

Netplan 的主要优点包括

  1. 简洁性:基于 YAML 的语法降低了复杂性。

  2. 一致性:所有接口的单个配置文件。

  3. 灵活性:支持简单和高级网络场景,如 VLAN 和桥接。

先决条件

在深入 Netplan 之前,请确保您拥有以下条件

  • 受支持的 Ubuntu 系统(18.04 或更高版本)。

  • 管理权限(sudo 访问权限)。

  • 网络接口和 YAML 语法的基本知识。

定位 Netplan 配置文件

Netplan 配置文件存储在 /etc/netplan/ 中。这些文件通常以 .yaml 扩展名结尾,可能包括诸如 01-netcfg.yaml50-cloud-init.yaml 等文件名。

重要提示
  • 备份现有配置:在进行更改之前,使用以下命令创建备份

    sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
  • YAML 语法规则:YAML 对缩进敏感。始终使用空格(而不是制表符)进行缩进。

使用 Netplan 配置网络接口

以下是如何使用 Netplan 配置不同类型的网络接口。

步骤 1:识别网络接口

在修改配置之前,使用以下命令识别可用的网络接口

ip a

此命令列出所有网络接口及其当前状态(例如,enp0s3eth0wlan0)。

步骤 2:编辑 Netplan 配置文件

使用文本编辑器打开所需的配置文件。例如

sudo nano /etc/netplan/01-netcfg.yaml
步骤 3:配置常见场景

1. 动态主机配置协议 (DHCP)

要配置接口以通过 DHCP 动态获取 IP 地址

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

2. 静态 IP 地址

要为接口分配静态 IP 地址

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

3. Wi-Fi 配置

对于 Wi-Fi 接口,包括 SSID 和密码

network:
  version: 2
  renderer: networkd
  wifis:
    wlan0:
      access-points:
        "YourSSID":
          password: "YourPassword"
      dhcp4: true

4. 多个接口

要在单个文件中配置多个接口

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      addresses:
        - 192.168.2.100/24
      gateway4: 192.168.2.1

应用和测试配置

编辑配置文件后,使用以下命令应用更改

sudo netplan apply
测试配置
  • 验证接口状态:

    ip a
  • 检查连接性:

    ping -c 4 google.com
使用 netplan try 进行安全测试

netplan try 命令临时应用更改一段设定的时间(例如,120 秒)。如果您未能确认配置,它将恢复到之前的状态

sudo netplan try

高级配置

VLAN
network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
  vlans:
    vlan10:
      id: 10
      link: enp0s3
      addresses:
        - 192.168.10.1/24
桥接
network:
  version: 2
  bridges:
    br0:
      dhcp4: true
      interfaces:
        - enp0s3

故障排除

常见问题和修复
  1. YAML 语法错误:

    • 使用 yamllint 验证您的文件

      sudo apt install yamllint
      yamllint /etc/netplan/01-netcfg.yaml
  2. 连接问题:

    • 使用 ip a 验证接口配置。

    • 检查日志以查找错误

      journalctl -u systemd-networkd
  3. 回滚更改:

    • 恢复备份配置

      sudo mv /etc/netplan/01-netcfg.yaml.bak /etc/netplan/01-netcfg.yaml
      sudo netplan apply

结论

Netplan 简化了 Ubuntu 上的网络配置,为管理网络接口提供了一致且直观的方法。无论您是配置基本的 DHCP 还是 VLAN 和桥接等高级设置,Netplan 基于 YAML 的语法都使其对新手和经验丰富的管理员都易于使用。

通过掌握本指南中概述的步骤,您将能够很好地处理各种网络场景,确保您的 Ubuntu 系统始终处于最佳配置状态。

George Whittaker 是 Linux Journal 的编辑,也是一位定期撰稿人。George 撰写技术文章已有二十年,并且是 Linux 用户超过 15 年。在空闲时间,他喜欢编程、阅读和游戏。

加载 Disqus 评论