Configure Ubuntu Server 18.04 to use a static IP address
Netplan
是 Ubuntu 17.10 中引入的一种新的命令行网络配置实用程序,用于在 Ubuntu 系统中轻松管理和配置网络设置。 它允许您使用 YAML
格式的描述文件来抽像化定义网络接口的相关信息。
Netplan
可以使用 NetworkManager
或 Systemd-networkd
的网络守护程序来做为内核的接口。Netplan
的默认描述文件在 /etc/netplan/*.yaml
里,Netplan
描述文件采用了 YAML
语法。
在 Ubuntu 18.04 中如果再通过原来的 ifupdown
工具包继续在 /etc/network/interfaces
文件里配置管理网络接口是无效的。
本文我们就来讲讲如何使用 Netplan
在 Ubuntu 18.04 中为网络接口配置静态 IP 地址、动态 IP 地址以及 DNS。
Netplan 工作原理
Netplan 官方网址:https://netplan.io/
Netplan 根据描述文件中定义的内容自动生成其对应的后端网络守护程序所需要的配置信息,后端网络守护程序再根据其配置信息通过 Linux 内核管理对应的网络设备。
使用 Networkd 配置网络
Systemd-networkd
是一个管理网络设备的系统守护程序, 它能检测并配置网络设备的状态和创建虚拟网络设备。
在进行配置前,我们先来看几个常见配置项的含义。
- enp0s3 指定需配置网络接口的名称。
- dhcp4 是否打开 IPv4 的 dhcp。
- dhcp6 是否打开 IPv6 的 dhcp。
- addresses 定义网络接口的静态 IP 地址。
- gateway4 指定默认网关的 IPv4 地址。
- nameservers 指定域名服务器的 IP 地址。
介绍
将在/etc/netplan
用于配置网络的文件夹中放置一个文件。您可能会遇到两种不同的文件名,具体取决于您使用的安装媒体。这些是:
Ubuntu Server 18.04服务器ISO
/etc/netplan/01-netcfg.yaml
Ubuntu Server 18.04云映像
/etc/netplan/50-cloud-init.yaml
如您在上面的名称中所见,云映像用于cloud-init
配置网络,因此我们不能仅编辑此文件,因为更改可能会被覆盖。我们必须通过禁用网络配置cloud-init
。
如何通过cloud-init禁用网络配置
创建一个新文件,名为:
sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
将以下内容添加到文件中:
network: {config: disabled}
将netplan配置文件重命名为与服务器ISO中的文件相同的名称。
sudo mv /etc/netplan/50-cloud-init.yaml /etc/netplan/01-netcfg.yaml
如何在Ubuntu Server 18.04上将IP地址从DHCP更改为静态
打开netplan配置文件:
sudo vim /etc/netplan/01-netcfg.yaml
您应该看到一个类似于以下内容的文件:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: true
这是ethernets
我们要更改的文件部分,位于您的以太网适配器的名称下方。在我的系统上是enp0s3
。首先,我们要更改dhcp4
为false,然后在此下面添加静态IP配置。下面是一个示例:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: false
addresses: [192.168.1.11/24]
gateway4: 192.168.1.1
nameservers:
addresses: [1.1.1.1,8.8.8.8]
现在,使用以下命令应用配置:
sudo netplan apply
============= End