如何在Ubuntu Server 18.04 LTS中配置静态IP地址
谈到Ubuntu网络接口配置时,我们设置静态IP的方式已完全更改。
以前的LTS版本Ubuntu 16.04使用/etc/network/interfaces文件配置静态IP地址,但Ubuntu 18.04使用新的方法称为Netplan。
在本教程中,我们将学习如何使用NetPlan在Ubuntu Server 18.04中配置网络接口。
使用IP命令识别可用的网络接口
在配置静态IP地址之前,我们需要在Ubuntu Server 18.04上标识可用的网络接口,以及分配给特定网络接口的设备ID是什么。
如果我们运行ip link show命令,它将列出服务器上的所有可用网络接口。
ip link show
要查看当前IP配置,请运行ip addr命令:
ip addr
输出将显示所有网络接口的当前分配的IP配置。
NetPlan和Yaml格式接口配置文件
我们设置静态IP的方式已完全更改。
Ubuntu 18.04使用一个名为Netplan的新方法。
在NetPlan中,接口配置文件驻留在/etc/netplan目录中,配置文件具有.yaml扩展名。
yaml语法非常易于理解,我们不需要成为YAML格式的专家来编辑接口文件。
我们只需要知道网络配置所需的内容。
如果列出/etc/netplan目录的内容,我们将看到yaml扩展名的接口配置文件。
在我的Ubuntu服务器名称中的文件中是50-cloud-init.yaml,但它可以使用不同的名称保存取决于安装类型。
安装类型 | 接口文件名 |
---|---|
Ubuntu server Live ISO/Cloud | 50-cloud-init.yaml |
Ubuntu Server ISO (Alternative Ubuntu Server installer) | 01-netcfg.yaml |
Ubuntu Desktop ISO | 01-network-manager-all.yaml |
在我的Ubuntu服务器内容上,文件的内容如下所示:
# 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:是”,我们可以说以太网接口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
下一行:“渲染器:NetworkD”告诉该接口由SystemD-NetWorkd服务管理。
renderer: networkd
如果接口由NetworkManager管理,则NetworkD的替代选项是NetworkManager。
如果我们查看了Ubuntu 18.04桌面的NetPlan配置文件,则渲染器选项设置为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
我们使用选项网关4,因为这是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选项而不是网关4.
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地址。
以下是具有两个IPv4地址的示例Ubuntu NetPlan配置文件,分配给一个网络接口。
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地址。