NetPlan:默认网络配置工具
Netplan是Ubuntu 17.10及更高版本中默认的网络配置工具。它是一个命令行工具,可以帮助用户轻松地配置网络接口,包括静态或动态IP地址、网关、DNS等等。
Netplan的配置文件使用YAML格式,这使得配置文件易于阅读和编辑,并且可以通过版本控制系统进行管理。此外,Netplan还支持基于渲染器的网络配置,这意味着它可以根据不同的网络配置需求,
Netplan的一个主要优势是它可以帮助用户减少一些常见的网络配置问题,例如网络命名约定不一致、网络接口名称的变化等等。使用Netplan,用户可以轻松地配置多个网络接口,并可以指定其默认路由,从而提高网络性能和安全性。
多配置引擎
Netplan可以使用不同的配置引擎来管理网络配置,例如NetworkManager、systemd-networkd和DHCP客户端等。
-
NetworkManager:这是一个广泛使用的网络配置工具,可以管理Wi-Fi、蓝牙和有线网络接口,并支持动态IP地址分配和VPN连接等功能。
-
systemd-networkd:这是一个系统守护进程,负责管理网络配置。它提供了基本的网络接口配置和DNS解析功能,并支持IPv6和网络桥接等高级功能。
-
DHCP客户端:这是一个动态主机配置协议(DHCP)客户端,可以自动分配IP地址和其他网络参数。它通常与DHCP服务器一起使用,以管理局域网上的客户机IP地址分配。
通过使用这些不同的配置引擎,Netplan可以适应不同的网络配置需求,并提供更多的配置灵活性和可扩展性。例如,在使用服务器时,可以使用systemd-networkd来提高性能和可靠性,而在桌面环境中,可以使用NetworkManager来管理各种网络接口,以方便用户使用。
为什么不直接使用NetworkManager或systemd-networkd
虽然NetworkManager和systemd-networkd都是强大的网络配置工具,但Ubuntu开发人员决定引入Netplan的主要原因是为了提高Ubuntu系统的网络配置体验和一致性。
在过去,Ubuntu使用ifupdown作为默认的网络配置工具。但是,ifupdown的配置文件使用传统的基于文本的格式,并且缺乏灵活性和可扩展性。此外,Ubuntu系统还经常遇到一些网络配置问题,例如接口命名不一致、硬件变化等等,导致网络配置需要手动更改。
Netplan的引入解决了这些问题。它提供了一个现代化的、易于阅读和编辑的YAML格式的配置文件,可以轻松地管理多个网络接口和配置参数。此外,Netplan还支持多种配置引擎,使得Ubuntu用户可以根据自己的需求选择适当的网络配置方案。
最重要的是,Netplan可以提高网络配置的一致性和稳定性。通过使用Netplan,Ubuntu系统可以自动检测网络接口和硬件变化,并自动更新配置文件。这样,Ubuntu用户可以避免手动修改网络配置文件所带来的错误和不便。
用法
要使用Netplan,可以按照以下步骤进行操作:
1.打开终端窗口。在Gnume中可以使用Ctrl+Alt+T键快捷键来打开终端。
2.使用编辑器打开Netplan配置文件。默认的配置文件位于“/etc/netplan/”目录下,命名为“01-netcfg.yaml”。可以使用命令“sudo nano /etc/netplan/01-netcfg.yaml”来打开此文件,并编辑配置。
3.在Netplan配置文件中,可以定义一个或多个网络接口和相关参数,例如IP地址、网关、DNS等等。以下是一个简单的Netplan配置文件示例:
network:
version: 2
ethernets:
enp0s3:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
在上面的示例中,我们定义了一个名为“enp0s3”的以太网接口,禁用了DHCP客户端,并手动指定了IP地址、子网掩码、网关和DNS服务器。
-
保存Netplan配置文件并应用更改。可以使用Ctrl+X键快捷键退出编辑器,并选择“Y”保存更改。然后,可以使用命令“sudo netplan apply”来应用新的网络配置。
-
验证网络配置。可以使用命令“ip addr”和“ip route”来检查新的网络配置是否已成功应用。如果一切正常,应该可以看到新的网络接口和相关参数。
配置文件的命名
Netplan 是一个用于配置 Linux 系统网络接口的命令行工具,其配置文件的命名通常遵循以下规则:
-
文件名必须以
.yaml
为后缀。 -
文件名应该是以网络接口的名称为基础,例如
eth0.yaml
,其中eth0
是网络接口的名称。 -
如果需要配置多个网络接口,可以使用
config.yaml
或者类似的通用名称,然后在文件中分别定义每个网络接口的配置。 -
文件名前面的数字标识表示配置文件的优先级。具体来说,Netplan 会按照配置文件名中的数字顺序对配置进行合并,数字越小的配置文件优先级越高,数字相同的配置文件按照字母顺序进行合并。
例如,如果有两个配置文件 01-netcfg.yaml
和 02-netplan.yaml
,则 Netplan 会先应用 01-netcfg.yaml
中的配置,然后再应用 02-netplan.yaml
中的配置。如果两个配置文件中都有相同的接口配置,那么在合并时会以 02-netplan.yaml
中的配置为准。
因此,如果要修改网络接口的配置,可以创建一个新的配置文件,并确保文件名前面的数字比现有的配置文件优先级更高。
配置项
在 Netplan 的配置文件中,可以使用以下标签来配置网络接口和相关设置:
-
network
: 该标签是配置文件的根标签,表示整个网络的配置。可以在该标签下定义多个网络接口的配置,以及一些全局设置。 -
version
: 该标签用于指定 Netplan 的版本号。目前版本为 2。 -
renderer
: 该标签用于指定网络接口的配置方式,支持networkd
和NetworkManager
两种渲染器。 -
ethernets
: 该标签用于定义以太网接口的配置。 -
bridges
: 该标签用于定义桥接接口的配置。 -
vlans
: 该标签用于定义 VLAN 接口的配置。 -
bonds
: 该标签用于定义网卡绑定接口的配置。 -
wifis
: 该标签用于定义 Wi-Fi 接口的配置。 -
access-points
: 该标签用于定义 Wi-Fi 接口的可访问点配置。 -
nameservers
: 该标签用于定义 DNS 解析器的配置。 -
routes
: 该标签用于定义路由表的配置。 -
dhcp4
和dhcp6
: 该标签用于定义 DHCP 的配置,包括是否使用 DHCP 和 DHCP 的选项。
这些标签可以组合使用,以实现不同网络场景下的配置需求。例如,可以在 ethernets
标签下定义以太网接口的 IP 地址和网关,然后在 nameservers
标签下定义 DNS 解析器的配置。在配置完成后,使用 netplan apply
命令即可使配置生效