在Ubuntu17.10中,引入了一个新的命令行网络配置工具,称为 "Netplan"。Netplan使得配置和管理Ubuntu系统中的网络设置变得简单。它还允许你使用YAML抽象来配置网络接口。它通过systemd-networkd和NetworkManager守护程序与内核进行交互,这两个守护程序也被称为渲染器。你必须从这两个程序中选择任何一个。Netplan从"/etc/netplan/*.yaml"文件中读取网络配置,这些文件可以保存所有网络接口的配置设置。
如果你在Ubuntu上使用netplan命令,那么重新启动和改变网络设置就变得很容易了。Netplan对自动化也很有帮助(人类和程序都可以读取YAML)。本篇文章主要介绍如何在Ubuntu上使用netplan命令。让我们开始吧。
如何列出Ubuntu上的所有活动网络接口
任何Linux系统管理员都应该熟悉 "ip"命令,这是一个配置网络接口的强大工具。它可以用来分配和删除地址和路由,增加或减少接口,控制ARP缓存,等等。要获得系统中活动网络接口的列表,可以利用ip命令中的 "a"选项。
$ ip a

如何使用netplan命令在Ubuntu上设置动态IP地址
本节将告诉你 如何使用netplan命令在Ubuntu上设置动态地址。但首先,如果你的系统中不存在所需的YAML文件,那么通过在终端写出下面的命令来生成渲染器配置文件。
$ sudo netplan generate

现在,通过列出"/etc/netplan/"文件来验证它在你系统中的存在。
$ ls /etc/netplan/

检查网络渲染器配置文件的内容。
$ cat /etc/netplan/*.yaml

在你的nano编辑器中打开"/etc/netplan/*.yaml"文件。
$ sudo nano /etc/netplan/*.yaml

现在在**/etc/netplan/***.yaml "文件中写出下面的代码。我们将为我们的 "enp0s3"网络接口设置一个动态IP地址。
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: yes
dhcp6: yes
在上面给出的命令中。
- dhcp4和 dhcp6是IPv4和IPv6 DHCP属性。
- enp0s3是 网络接口名称。

按 "CTRL+O"保存该文件中的修改。

要应用修改后的网络设置,请在你的终端上使用下面给出的命令。
$ sudo netplan apply

写出这个命令来确认IP地址。
$ ifconfig -a

如何在Ubuntu上使用netplan命令来设置静态IP地址
首先,用nano编辑器打开"/etc/netplan/*.yaml"文件。
$ sudo nano /etc/netplan/*.yaml

然后,在"/etc/netplan/*.yaml"文件中写出以下代码,以便在你的系统上设置一个静态IP地址。
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
dhcp6: no
addresses: [10.0.2.15/24]
gateway4: 10.0.2.255
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
在上面给出的命令中。
- dhcp4和 dhcp6是IPv4和IPv6 DHCP属性。
- enp0s3是网络接口名称。
- addresses包含网络接口的静态地址序列。
- gateway4包含默认网关的IPv4地址。
- nameserver包含了命名服务器的IP地址序列。

按 "**CTRL+O "**来保存我们在文件中所作的修改。

之后,利用下面给出的命令来应用修改后的网络设置。
$ sudo netplan apply

现在,检查一下配置的 "enp0s3"是否连接到本地网络,并且有一个我们先前分配的静态IP地址。
$ ifconfig -a

如何在Ubuntu上获得关于netplan的更多信息
要了解更多与netplan命令有关的配置选项和信息,你可以查看它的手册页面。
$ man netplan


总结
Netplan是在Ubuntu 17.10中引入的,在最新的版本中默认是激活的,包括Ubuntu 20.04。这个工具的目的是使用YAML配置文件来抽象网络接口的配置。这些配置然后被翻译成networkd设置和NetworkManager,用于给定的渲染器。我希望在读完这篇文章后,你能清楚地了解到netplan命令在Ubuntu上设置静态和动态地址的用法。