本文介绍的内容有:Ubuntu 20.04中的Netplan、禁用cloud-init配置、识别接口和IP信息、在Ubuntu 20.04服务器上配置静态IP地址。本文主要介绍的是使用Netplan在Ubuntu 20.04服务器中配置静态IP的方法。
前言
通常,Ubuntu的默认设置是通过DHCP服务器自动获取IP地址,这对台式机系统来说非常有用,因为它不需要任何更改。
但是,始终建议为Ubuntu服务器分配一个静态IP地址,因为该静态IP地址将在重新启动后保持不变。
Ubuntu 17.10及更高版本使用“Netplan”作为默认网络管理工具。因此,在Ubuntu 20.04系统上配置IP地址与旧版本的Ubuntu不同。
在本文中,我们将描述如何在Ubuntu 20.04服务器中配置静态IP地址。同时,这也适用于Ubuntu 18.04,参考在Ubuntu 18.04系统中使用Netplan工具配置网络。
什么是Netplan
Netplan是Canonical(Ubuntu)开发的实用程序,能在Linux系统上轻松配置网络。它基于基于YAML的配置,从而大大简化了网络配置过程。
要配置网络接口,只需创建所需网络接口的YAML描述,然后Netplan将为所选的渲染器工具生成所有必需的配置。
您可以在“/etc/netplan/*.yaml”中找到Netplan网络配置文件。Netplan当前支持以下后端渲染器,例如“NetworkManager”和“Systemd-networkd”。
NetworkManager通常在台式机上使用,而Systemd网络在服务器上使用。
禁用cloud-init配置
确保网络接口不受“cloud-init”管理。要禁用此功能,请将以下行添加到文件“/etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg”中:
$ sudo echo "network: {config: disabled}" >> /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg
添加后,您可以通过运行以下命令来确认这一点:
$ cat /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg
识别接口和IP信息
以太网接口由系统使用可预测的网络接口名称标识。这些名称可以显示为“eno1”或“enp0s25”。但是,在某些系统中,名称可能有所不同。
使用ip命令可以快速识别系统上所有可用的以太网接口。您可以看到,根据以下输出,动态IP已自动分配给“enp0s3”接口:
$ ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:97:13:2e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.101/24 brd 192.168.1.255 scope global dynamic enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe97:132e/64 scope link
valid_lft forever preferred_lft forever
在Ubuntu 20.04服务器中配置静态IP地址
您可以在“/etc/netplan”目录中找到Netplan配置文件。您可能会找到一个默认的netplan配置文件,即“01-netcfg.yaml”或“50-cloud-init.yaml”或“00-installer-config.yaml”,但在您的系统中可能有所不同。
如果通过DHCP配置IP地址,则默认的netplan配置文件将类似于以下文件:
$ cat /etc/netplan/00-installer-config.yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: yes
要将静态IP地址“192.168.1.151”分配给“enp0s3”界面,请按如下所示编辑文件。进行更改后,保存并关闭文件。
由于这是Yaml文件,因此在更改文件时必须遵循正确的缩进。如果语法不正确,将不会应用更改:
$ vi /etc/netplan/00-installer-config.yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses: [192.168.1.151/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
运行以下命令以应用更改:
$ sudo netplan apply
通过运行IP命令来验证新的IP信息:
$ ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:97:13:2e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.151/24 brd 192.168.1.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe97:132e/64 scope link
valid_lft forever preferred_lft forever
至此,使用Netplan在Ubuntu 20.04服务器中配置静态IP成功。