一个计算机技术爱好者与学习者

0%

好好学Linux:Ubuntu18配置静态IP

1. 前言

《好好学Linux:Linux系统配置静态IP》一文中,描述了 CentOS7 和 Ubuntu16.04 系统中配置静态IP的方法。
但是,Ubuntu18之后的版本,网络配置方法发生了较大的变更,本文学习一下新的配置方法。

2. 单网卡静态IP配置方法

1、编辑网卡配置文件

1
vim /etc/netplan/01-network-manager-all.yaml

如下修改:

1
2
3
4
5
6
7
8
9
10
11
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
dhcp4: false # 禁止动态IP
addresses: [192.168.56.111/24] # IP地址和掩码
gateway4: 192.168.56.1 # 网关
nameservers:
addresses: [180.76.76.76,114.114.114.114] #DNS服务器

其中 dhcp4 参数的值可以改为 no ,和 false 等价。

2、使配置生效

1
netplan apply

3、验证配置

1
ip addr show dev eth0

3. 多网卡静态IP配置方法

3.1. 配置方法一:单文件配置

编辑网卡配置文件

1
vim /etc/netplan/01-network-manager-all.yaml

如下修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
dhcp4: false # 禁止动态IP
addresses: [192.168.56.111/24] # IP地址和掩码
gateway4: 192.168.56.1 # 网关
nameservers:
addresses: [180.76.76.76,114.114.114.114] #DNS服务器
eth1:
dhcp4: false
addresses: [172.16.0.111/24]

3.2. 配置方法二:多文件配置

拷贝网卡配置文件

1
2
cp /etc/netplan/01-network-manager-all.yaml /etc/netplan/02-network-manager-all.yaml
vim /etc/netplan/02-network-manager-all.yaml

如下修改:

1
2
3
4
5
6
7
8
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
eth1:
dhcp4: false
addresses: [172.16.0.111/24]

4. 配置默认网关

配置文件中,可以通过 gateway4 指定网关。

如果多个网卡有不同的网关,该怎样指定默认网关?
答:在 netplan 配置文件中,我们可以指定一个或多个网关。但是,如果有多个网关,只有第一个被列出的网关将被设定为默认网关。

5. 扩展:禁用和启用指定的网卡

如果一台主机上有多个网卡,想要禁用和启用其中一张或多张网卡,可以使用下面的方法。

5.1. 临时禁用和启用

1
2
ifconfig eth1 down # 禁用
ifconfig eth1 up # 启用

5.2. 永久禁用和启用

5.2.1. 基于netplan(推荐)

永久禁用方法:
1、修改netplay配置

1
vim /etc/netplan/01-network-manager-all.yaml

添加:

1
2
3
4
5
6
7
network:
version: 2
renderer: NetworkManager
ethernets:
eth1:
dhcp4: false
optional: true

2、应用netplan配置

1
netplan apply

3、重启网络服务

1
systemctl restart systemd-networkd

永久启用方法:
修改netplay配置(删除其中的禁用配置),应用netplan配置,重启网络服务。

5.2.2. 基于interfaces

使用 /etc/network/interfaces(如果我们的系统使用此旧方法配置网络),这种方法在新版的Ubuntu中并不常见,因为Netplan取代了/etc/network/interfaces文件,但如果我们的系统依然使用它,可以使用下面的方法。

永久禁用方法:
1、修改interfaces配置

1
/etc/network/interfaces

将指定的网卡设置为不自动启动

1
2
auto eth0
iface eth0 inet manual

2、重启网络服务

1
systemctl restart networking

永久启用方法:
修改interfaces配置(删除其中的禁用配置),重启网络服务。

5.2.3. 基于initramfs

永久禁用方法:
1、配置 blacklist.conf

1
vim /etc/modprobe.d/blacklist.conf 

在文件最后添加:

1
blacklist eth1

2、更新initramfs

1
update-initramfs -u

该命令用于更新 Linux 系统的初始化 RAM 磁盘文件系统(initramfs)。
在系统引导过程中,initramfs 用于加载必要的驱动程序并初始化硬件,以便在挂载根文件系统之前完成这些工作。该命令生成一个新的 initramfs映像文件并更新符号链接到最新的映像文件。在更新内核或任何与内核相关的配置文件更改之后,通常会运行此命令,以确保系统可以正确引导。

3、重启主机进行验证(可选)

1
reboot

永久启用方法:
blacklist.conf 删除禁用的配置,更新initramfs。