➡ 在rhel8(含CentOS8)上,没有传统的network.service,在/etc/sysconfig/network-scripts/里也看不到任何脚本文件,那么该如何进行网络配置呢。
➡ 本文详细阐述基于rhel8的网络配置,包含多种配置方法。
➡ 事先声明:本文提及的所有内容,仅适用rhel8/centos8,因为不同linux系统的NetworkManager行为存在部分差异。
小慢哥的原创文章,欢迎转载
目录▪ rhel8与7的区别
▪ NetworkManager介绍
▪ nmcli使用方法
▪ nmcli常用命令一览
▪ nmcli connection重点
▪ nmcli device重点
▪ 3种网络配置方法
▪ Tips
在rhel7上,同时支持network.service和NetworkManager.service(简称NM)。默认情况下,这2个服务都有开启,但许多人都会将NM禁用掉。
在rhel8上,已废弃network.service,因此只能通过NM进行网络配置,包括动态ip和静态ip。换言之,在rhel8上,必须开启NM,否则无法使用网络。
rhel8依然支持network.service,只是默认没安装,详见本文最后的Tips。
NetworkManager介绍NetworkManager是2004年Red Hat启动的项目,旨在能够让Linux用户更轻松地处理现代网络需求,尤其是无线网络,能自动发现网卡并配置ip地址。
类似在手机上同时开启wifi和蜂窝网络,自动探测可用网络并连接,无需手动切换。
虽然初衷是针对无线网络,但在服务器领域,NM已大获成功。
NM能管理各种网络
▷ 有线网卡、无线网卡
▷ 动态ip、静态ip
▷ 以太网、非以太网
▷ 物理网卡、虚拟网卡
使用方法
▷ nmcli:命令行。这是最常用的工具,本文将详细讲解该工具使用。
▷ nmtui:在shell终端开启文本图形界面。示意图见本文最后的Tips
▷ Freedesktop applet:如GNOME上自带的网络管理工具
▷ cockpit:RedHat自带的基于web图形界面的"驾驶舱"工具,具有dashborad和基础管理功能。示意图见本文最后的Tips
为什么要用NM
▷ 工具齐全:命令行、文本界面、图形界面、web
▷ 广纳天地:纳管各种网络,有线、无线、物理、虚拟
▷ 参数丰富:多达200多项配置参数(包括ethtool参数)
▷ 一统江湖:RedHat系、SUSE系、Debian/Ubuntu系,均支持
▷ 大势所趋:下一个大版本的rhel只能通过NM管理网络
nmcli使用方法非常类似linux ip命令、cisco交换机命令,并且支持tab补全(详见本文最后的Tips),也可在命令最后通过-h、--help、help查看帮助。在nmcli中有2个命令最为常用:
➡ nmcli connection
译作连接,可理解为配置文件,相当于ifcfg-ethX。可以简写为nmcli c
➡ 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 ethX down)
本文提及的ifcfg均指代/etc/sysconfig/network-scripts/ifcfg-ethX及/etc/sysconfig/network-scripts/route-ethX
nmcli connection重点➡ nmcli c show