如何在Ubuntu Server 18.04 LTS中配置静态IP地址

时间:2020-07-27 12:59:12  来源:igfitidea点击:

谈到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/Cloud50-cloud-init.yaml
Ubuntu Server ISO (Alternative Ubuntu Server installer)01-netcfg.yaml
Ubuntu Desktop ISO01-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地址。