基于RHEL8/CentOS8的网络IP配置详解

基于RHEL8/CentOS8的网络IP配置详解

➡ 在rhel8(含CentOS8)上,没有传统的network.service,在/etc/sysconfig/network-scripts/里也看不到任何脚本文件,那么该如何进行网络配置呢。
➡ 本文详细阐述基于rhel8的网络配置,包含多种配置方法。
➡ 事先声明:本文提及的所有内容,仅适用rhel8/centos8,因为不同linux系统的NetworkManager行为存在部分差异。

小慢哥的原创文章,欢迎转载

目录

▪ rhel8与7的区别
▪ NetworkManager介绍
▪ nmcli使用方法
▪ nmcli常用命令一览
▪ nmcli connection重点
▪ nmcli device重点
▪ 3种网络配置方法
▪ Tips

rhel8与7的区别

在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使用方法

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)

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

本文提及的ifcfg均指代/etc/sysconfig/network-scripts/ifcfg-ethX及/etc/sysconfig/network-scripts/route-ethX

nmcli connection重点

nmcli c show

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b43734401b51ce945c4c1f7760946d5e.html