1、NetworkManager管理
在rhel8(含centos8)上,在/etc/sysconfig/network-scripts/里也看不到任何脚本文件,没有传统的network.service。因此只能通过其它方法进行网络配置,包括NM命令工具集。换言之,在rhel8上,必须开启NM,否则无法使用网络。
# 查看NM纳管状态
nmcli n
# 开启NM接管
nmcli n on
# 关闭NM纳管(谨慎执行)
nmcli n off
2、网络管理命令行工具nmcli
在nmcli中有2个命令最为常用:
(1)、nmcli connection
表示连接,可理解为配置文件,相当于ifcfg-ethX。可以简写为nmcli c
(2)、nmcli device
表示设备,可理解为实际存在的网卡(包括物理网卡和虚拟网卡)。可以简写为nmcli d
在NM里,有2个维度:连接(connection)和设备(device),这是多对一的关系。想给某个网卡配ip,首先NM要能纳管这个网卡。设备里存在的网卡(即nmcli d可以看到的),就是NM纳管的。接着,可以为一个设备配置多个连接(即nmcli c可以看到的),每个连接可以理解为一个ifcfg配置文件。同一时刻,一个设备只能有一个连接活跃。可以通过nmcli c up切换连接。
connection有2种状态:
▷ 活跃(带颜色字体):表示当前该connection生效
▷ 非活跃(正常字体):表示当前该connection不生效
device有4种常见状态:
▷ connected:已被NM纳管,并且当前有活跃的connection
▷ disconnected:已被NM纳管,但是当前没有活跃的connection
▷ unmanaged:未被NM纳管
▷ unavailable:不可用,NM无法纳管,通常出现于网卡link为down的时候(比如ip link set enp0s3 down)
3、nmcli connection配置
输出中:
▪ 第一列是connection名字,简称con-name(注意con-name不是网卡名)
▪ 第二列是connection的UUID
▪ 最后一列才是网卡名(标准说法叫device名),可通过nmcil d查看device
对connection做操作时需要指定标识,标识可以是con-name、UUID、如果存在ifcfg文件则也可以用ifcfg的完整路径,即/etc/sysconfig/network-scripts/ifcfg-enp0s3
nmcli c show enp0s3
nmcli c show b7f25fc0-0206-48ee-8bf4-7abf76a3de9b
nmcli c show /etc/sysconfig/network-scripts/ifcfg-enp0s3
下面命令是常见的一些操作:
# 启用connection(相当于ifup)
nmcli c up enp0s3
# 停止connection(相当于ifdown)
nmcli c down
# 删除connection(类似于ifdown并删除ifcfg)
nmcli c delete enp0s3
# 查看connection列表
nmcli c show
# 查看connection详细信息
nmcli c show enp0s3
#重载配置文件(不会马上生效)
nmcli c reload
# 立即生效connection,有3种方法:
nmcli c up ens32
nmcli d reapply enp0s3 #专门用于刷新connection,前提是网卡的device处于connected状态,否则会报错。
nmcli d connect enp0s3 #刷新该网卡对应的活跃connection
nmcli c的con-name的理解:
con-name对应ifcfg的文件名以及内容中的NAME=,该参数表示连接(connection)的名字,无需和网卡名相同,可以为一个设备(device)创建多个连接,但同一时刻只能有一个连接生效。当有多个连接时候,nmcli c delete删除当前连接,就会自动选择同一个设备的其他连接来顶替生效。可以通过nmcli c up来将指定连接切换生效。
注意:通过nmcli c modify修改con-name,只会对应修改ifcfg文件中的NAME,而不会更改ifcfg文件名。
4、nmcli device配置
# 查看device列表
nmcli d
# 查看所有device详细信息
nmcli d show
# 查看指定device的详细信息
nmcli d show enp0s3
# 激活网卡
nmcli d connect enp0s3
5、centos8下如何配置网络
两种方式:
第一种,手动修改配置文件,然后重启服务,加载生效。
第二种,nmcli命令实现动态修改。