安装Ubuntu Server 18.04后需要分配一个的静态IP地址。先前的LTS版本Ubuntu 16.04使用/etc/network/interfaces文件配置静态IP地址,但是Ubuntu 18.04使用称为netplan的新方法。
在本教程中,我们将学习如何使用netplan在Ubuntu Server 18.04中配置网络接口。我们将研究如何设置静态IP地址,默认网关和DNS名称服务器。
- 使用ip命令标识可用的网络接口
- Netplan和YAML格式的界面配置文件
- 分配静态IP地址(IPv4)
- 在Ubuntu Server上配置静态IPv6地址
- 将多个IP地址分配给一个网络接口
- 配置多个网络接口
使用ip命令识别可用的网络接口
在配置静态IP地址之前,需要标识Ubuntu Server 18.04上的可用网络接口以及分配给特定网络接口的设备ID是什么。
ip link show
要查看当前的IP配置,运行ip addr命令:
ip addr
输出将显示所有网络接口的当前分配的IP配置。
Netplan和YAML格式的界面配置文件
Ubuntu 18.04使用一种称为netplan的新方法。在netplan中,接口配置文件位于/etc/netplan目录中,并且配置文件具有.yaml扩展名。YAML语法非常容易理解,只需要知道网络配置所需的内容。
列出/etc/netplan目录的内容,看到带有yaml扩展名的接口配置文件。
在我的Ubuntu Server中,该文件的名称为50-cloud-init.yaml,但可以根据安装类型使用其他名称进行保存。
安装类型 | 接口文件名 |
Ubuntu服务器实时ISO /云 | 50-cloud-init.yaml |
Ubuntu Server ISO(备用Ubuntu Server安装程序) | 01-netcfg.yaml |
Ubuntu桌面ISO | 01-网络管理器-all.yaml |
在我的Ubuntu Server上,文件内容如下所示:
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: yes
通过仅查看最后一行:“ dhcp4:yes”,可以说以太网接口enp0s3已配置为从DHCP服务器租用IP地址。如果打算从DHCP服务器分配动态IP地址,则需要此配置。
分配静态IP地址(IPv4)
这是带有静态IP分配(IPV4)的样本netplan配置文件,在此配置中,接口enp0s3已配置为IP 192.168.1.100和默认网关192.168.1.1。
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 4.4.4.4]
为了应用配置,运行netplan命令:
sudo netplan apply
然后,运行ip add命令以确保已应用更改:
ip add
如何运作
在上面的示例中,将enp0s3以太网接口配置为使用静态IP地址192.168.1.100。
第一行:“版本:2”表示此配置块使用netplan版本2格式。
network:
version: 2
下一行:“ renderer:networkd”告诉此接口由systemd-networkd服务管理。
renderer: networkd
如果接口由NetworkManager管理,则networkd的替代选项是NetworkManager。如果查看Ubuntu 18.04桌面的netplan配置文件,则将renderer选项设置为NetworkManager,因为在图形桌面环境中,界面由NetworkManager管理。
接下来,开始接口配置:
ethernets:
enp0s3:
这里,enp0s3是接口的名称,可以运行ip link show命令来列出Ubuntu Server上的网络接口。
接着,将静态IP设置为192.168.1.100,网络掩码为24:
addresses:
- 192.168.1.100/24
地址选项也可以按以下格式定义:
addresses: [192.168.0.101/24]
接下来,将默认网关设置为192.168.1.1:
gateway4: 192.168.1.1
使用选项gateway4,因为它是IPv4网关。对于IPv6网关,需要使用gateway6选项。
接下来,将DNS服务器设置为8.8.8.8和4.4.4.4。
nameservers:
addresses: [8.8.8.8, 4.4.4.4]
应用新的接口配置,运行netplan命令:
sudo netplan apply
该命令会将当前的netplan配置应用于正在运行的系统。不再需要重新启动网络来应用更改。
在Ubuntu Server上配置静态IPv6地址
使用相同的netplan格式分配IPv6地址,唯一的区别是,需要使用gateway6选项而不是gateway4。
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses:
- 2001:1::1/64
gateway6: 2001:1::2
nameservers:
addresses: [8.8.8.8, 4.4.4.4]
将多个IP地址分配给单个网络接口
单个网络接口配置有多个IP地址是很常见的。以下是示例Ubuntu netplan配置文件,其中将两个IPv4地址分配给一个网络接口。
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses:
- 192.168.1.100/24
- 192.168.1.101/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 4.4.4.4]
地址选项也可以采用以下格式编写:
addresses: [192.168.1.100/24, 192.168.1.101/24]
可以使用IPv4和IPv6地址配置单个网络接口,如以下netplan文件所示:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses:
- 192.168.1.100/24
- 2001:1::1/64
gateway4: 192.168.1.1
gateway6: 2001:1::2
nameservers:
addresses: [8.8.8.8, 4.4.4.4]
配置多个网络接口
在单个服务器上安装多个网络接口是很常见的。这是一个示例netplan文件,为两个网卡配置了静态地址:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 4.4.4.4]
enp0s8:
addresses:
- 10.10.10.2/24
注意,只有主接口已配置了默认网关,在本例中为enp0s3。有多个默认网关是不实际的,默认网关是没有其他路由时发送流量的地址。
再看另一个同时使用静态和DHCP地址的netplan示例:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 4.4.4.4]
wifis:
wlp3s0:
dhcp4: yes
access-points:
#configure SSID and wifi password
"my_ssid":
password: "my-wifi-password"
在前面的示例中,wifi接口wlp3s0已配置为从DHCP服务器租用IP地址。
总结
在本教程中,我们学习了如何在Ubuntu 18.04上配置静态IP地址,在该版本中不再使用旧的/etc/network/interfaces文件。Ubuntu 18现在使用称为netplan的新方法来管理网络。使用Netplan,网络接口的配置文件以YAML数据格式放在/etc/netplan目录中,而netplan命令用于在配置更改后重新启动网络。