Centos8配置网络NM
一、CentOS 7和CentOS 8网络配置区别:
寡人在本机的VM15上安装了Centos8.1版本的操作系统,一下子从centos6到centos8的飞跃是得需要点时间缓存学习适应的。毕竟Centos6和Centos7就已经发生了很多区别。
其中在配置IP地址过程中发现没有了network.service,并且/etc/sysconfig/network-scripts目录中也没有任何脚本文件,CentOS 7中同时支持network.service和NetworkManager.service(简称NM)2种方式配置网络,而在CentOS 8中已经废弃network.service,必须通过NetworkManager.service配置网络。
1.查看本机版本
[root@python etc]# cat redhat-release
CentOS Linux release 8.1.1911 (Core)
2.重启网络
[root@python etc]# systemctl restart network.service
Failed to restart network.service: Unit network.service not found.
二、NetworkManager的命令行工具nmcli简单使用说明:
1.查看当前网卡信息
1.2.从上除了本地网卡ens33,还有virbr0虚拟网卡。virbr0是一种虚拟网络接口,这是由于安装和启用了libvirt服务后生成的libvirt在服务器(host)上生成一个virtual network switch(virbr0),host上所有的虚拟机(guest)通过这个virbr0连接起来,默认情况下virbro使用的是NAT模式(采用IP Masquerade)。一般图形化安装会默认建立,不想要的话可以删除虚拟网卡并且禁用libvirt服务。
删除虚拟网卡有很多种,可以通过安装工具brctl和virsh,如果是再虚拟机直接在虚拟网络编辑直接移除即可。
移除后的效果如下,少了不必要的网卡信息。
2.NetworkManager介绍
NetworkManager是2004年Red Hat启动的项目,旨在能够让Linux用户更轻松地处理现代网络需求,尤其是无线网络,能自动发现网卡并配置ip地址。
2.1NM能管理的各种网络
有线网卡、无线网卡
动态ip、静态ip
以太网、非以太网
物理网卡、虚拟网卡
2.2使用方法
nmcli:命令行。这是最常用的工具。
nmtui:在shell终端开启文本图形界面。示意图见本文最后的Tips。
Freedesktop applet:如GNOME上自带的网络管理工具。
cockpit:redhat自带的基于web图形界面的"驾驶舱"工具,具有dashborad和基础管理功能。
2.3 nmcli使用方法
常用的有:nmcli connection、nmcli device
在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 ethX down)。
3.nmcli常用命令一览
# 查看ip(类似于ifconfig、ip addr)
nmcli
# 创建connection,配置静态ip(等同于配置ifcfg,其中BOOTPROTO=none,并ifup启动)
nmcli c add type ethernet con-name ethX ifname ethX ipv4.addr 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual
# 创建connection,配置动态ip(等同于配置ifcfg,其中BOOTPROTO=dhcp,并ifup启动)
nmcli c add type ethernet con-name ethX ifname ethX ipv4.method auto
# 修改ip(非交互式)
nmcli c modify ethX ipv4.addr '192.168.1.200/24'
nmcli c up ethX
# 修改ip(交互式)
nmcli c edit ethX
nmcli> goto ipv4.addresses
nmcli ipv4.addresses> change
Edit 'addresses' value: 192.168.1.200/24
Do you also want to set 'ipv4.method' to 'manual'? [yes]: yes
nmcli ipv4> save
nmcli ipv4> activate
nmcli ipv4> quit
# 启用connection(相当于ifup)
nmcli c up ethX
# 停止connection(相当于ifdown)
nmcli c down
# 删除connection(类似于ifdown并删除ifcfg)
nmcli c delete ethX
# 查看connection列表
nmcli c show
# 查看connection详细信息
nmcli c show ethX
# 重载所有ifcfg或route到connection(不会立即生效)
nmcli c reload
# 重载指定ifcfg或route到connection(不会立即生效)
nmcli c load /etc/sysconfig/network-scripts/ifcfg-ethX
nmcli c load /etc/sysconfig/network-scripts/route-ethX
# 立即生效connection,有3种方法
nmcli c up ethX
nmcli d reapply ethX
nmcli d connect ethX
# 查看device列表
nmcli d
# 查看所有device详细信息
nmcli d show
# 查看指定device的详细信息
nmcli d show ethX
# 激活网卡
nmcli d connect ethX
# 关闭无线网络(NM默认启用无线网络)
nmcli r all off
# 查看NM纳管状态
nmcli n
# 开启NM纳管
nmcli n on
# 关闭NM纳管(谨慎执行)
nmcli n off
# 监听事件
nmcli m
# 查看NM本身状态
nmcli
# 检测NM是否在线可用
nm-online
4.在Centos8上,有3种方法进行网络配置
1. 手工配置ifcfg,通过NM来生效
2. 通过NM自带工具配ip,比如nmcli
3. 手工配置ifcfg,通过传统network.service来生效