Linux CentOS stream9 nmcli

nmcli命令是redhat7或者centos7之后的命令,该命令可以完成网卡上所有的配置工作,并且可以写入配置文件,永久生效。

一、前期准备

在讨论、学习与训练nmcli命令前,必须明确几点:

1.开启NetworkManager

使用nmcli命令前,先检查NetworkManager状态及相关信息。保证是开启状态,才能正常使用nmcli命令。

NetworkManager是一个为系统自动连接到网络提供检测和配置的程序,对无线和有线网络都可以管理。特别是对于无线网络。其最初由Red Hat开发,现在由GNOME项目托管。

作为一个服务,是网络管理的守护进程,运行在后台。相关操作可以使用systemctl命令:

        systemctl status NetworkManager  查看运行状态(应用比较多)

        systemctl start NetworkManager  启动

        systemctl restart NetworkManager  重启(应用最多)

        systemctl stop NetworkManager 关闭

        systemctl enable NetworkManager开机启动

注意:NetworkManager 中开头的N和中间的M必须大写。

2.NetworkManager版本

NetworkManager有多种不同版本,可升级为最新版本。不同版本,nmcli命令有差异。

可以在当前系统中升级NetworkManager

如 dnf upgrade NetworkManager

查看nmcli正在使用的NetworkManager版本:

3.网络配置文件

在使用nmcli命令中,经常要查看网络配置文件,必须提前了解配置文件所在的路径及配置文件名称。

Centos7 配置文件路径和名称:

        /etc/sysconfig/network-scripts/ifcfg-**

Centos8 配置文件路径和名称:

        /etc/sysconfig/network-scripts/ifcfg-**

Centos stream9配置文件路径和名称:

        /etc/NetworkManager/system-connections/**.nmconnection

4.添加网卡

提前添加2-3块网卡。

详细操作过程可参考《Linux CentOS7 添加网卡》。

5.网络基础知识

a.网络连接重要的IP参数

        address  IP地址  192.168.*.*/24(此类写法不需要再写子网掩码255.255.255.0)

        gateway网关 192.168.*.2(最后一位常常是2或254)

        dns 域名解析器  8.8.8.8  114.114.114.114

        route 路由  一般初学者可以不设置,由系统自动配置默认路由

b.网卡与网络连接

一张网卡可以设置多个连接,不同连接可以分别命名(如在网卡ens37上配置两个连接,可以命令为ens37:0 ens37:1)

一个连接只能对应一张网卡。

设置/修改网络连接参数时,该连接自动停用,只有启动后才能连通网络。

一张网卡重新启用一个连接,另外的连接自动停止(一张网卡只有一个活动的连接)。

二、语法解析

        nmcli [OPTIONS...] {help | general | networking | radio |connection | device | agent | monitor} [COMMAND] [ARGUMENTS...]

简化格式  nmcli  选项  对象  命令

可用选项:

选项

说明

-e

转义值中的列分隔符

-f

指定要输出的字段

-p

美化输出,以易于人类阅读的形式显示

-h

查看帮助

-v

查看版本信息

常用对象:

对象

简写

说明

connection

c/con

NetworkManager的连接

device

d/dev

NetworkManager管理的设备

重要命令:

命令

简写

说明

status

s

显示设备状态

show

s

显示设备/连接详情

add

a

添加网络连接参数

modify

m

修改网络连接参数

edit

e

编辑网络连接参数

reload

r

重新加载NetworkManager配置

on/off

启用/关闭网络连接

up/down

启用/禁用网卡设备

delete

d

删除已配置的连接

hostname

h

查看/修改主机名

三、使用技巧

1.简写

nmcli命令支持简写。不需要把命令全部录入,仅录入首字符就可以执行。常用的命令只记住首字母即可。

在nmcli c命令中,c是connection的简写。默认命令show没有录入。与下面的完整命令功能相同:

        nmcli connection show

在nmcli -p d命令中,-p是选项,表明以方便阅读的方式输出信息。d是device的简写。默认命令status没有录入。

Linux CentOS stream9 nmcli_第1张图片

利用简写命令查看帮助

        h help的简写

Linux CentOS stream9 nmcli_第2张图片

利用简写命令查看主机名/修改主机名

        g general的简写;h hostname的简写

PS:应用nmcli命令时一般不加选项。而命令区分大小写。默认命令可以不录入。

参考帮助信息,注意区别选项的短选项与长选项;注意对象的简写与命令的简写。如h,作为对象是help的简写,而作为命令是hostname简写。类似的还有r和m。

2.补全

a.录入对象、命令的首字母(允许情况下,可以回车执行)按Tab进行补全

Linux CentOS stream9 nmcli_第3张图片

b.录入命令后,按空格,如不知道有什么选项,可以连按两次Tab,显示可以选择的选项(有时选项太多时会提示你是否显示全部,可根据情况决定)。

Linux CentOS stream9 nmcli_第4张图片

3.空格

在执行nmcli命令时,选项、命令、属性、属性值相互之间都用空格分隔。不需要换行,不需要添加分号等其他分隔符。

如nmcli c m ens37 gateway 192.168.100.254

执行命令后,NM会在配置文件中编写

        gateway=192.168.100.254

对于中间有空格但前后是一个整体的情况,或在空格前加\(转义字符)或把整体用单引号括起来。

Linux CentOS stream9 nmcli_第5张图片

4.+-应用

同一项设置添加两个值(如一个连接设置两个IP地址)

a.一个连接设置两项IP值,只需在两个值之间加一逗号分隔

        ipv4.address 192.168.100.50/24,192.168.100.60/24

b.正常设置一个,然后在第二次设置时前面加+

        ipv4.address 192.168.100.60/24

        +ipv4.address 192.168.100.70/24

c.取消多个IP地址中的一个,应用修改命令

        -ipv4..…

四、操作案例

1.查看

a.查看网络连接状态:

网络连接状态共有五种:full、limited(连网,但无法上网)、portal(连网,但需要认证登录后才能上网)、none(没连网)和 unknown。

以下两个命令都可以查看。

        nmcli n c 其中n是networking简写;c是connectivity简写

        nmcli g  其中g是general简写

b.接口信息:

        nmcli d

命令的选项和参数都可以简写

c.连接信息

        nmcli c

d.ip地址等信息

        nmcli

Linux CentOS stream9 nmcli_第6张图片

PS:查看设置的IP地址仍然可以借助ip a或ifconfig命令

2.添加

在用nmcli添加一个网络连接时(创建新连接)必须包含三项:type、ifname和con-name。

其中type指定连接类型;con-name指定网络连接名称;ifname  指定使用的设备名称(初学者主要是指网卡名)。

在此基础上,再添加其他设置,满足不同需求。

a.动态ip地址的连接

添加一块新网卡,默认采用自动获取IP地址的方式。本人设置时,只需设定基础的三项即可。

b.静态ip地址的连接

必须指定IP地址、网关和DNS,ipv4.method:手动设置manual

c.双静态ip地址

Linux CentOS stream9 nmcli_第7张图片

d.一卡多个连接

正常添加一个连接后,在同一网卡接口设备上再添加一个连接,各项设置同前述一致,只是在命名连接名时推荐使用接口设备名:1(国外一般从0开始,1代表第二项)

Linux CentOS stream9 nmcli_第8张图片

下图显示ens38设备上创建了四个连接,只有一个“有线连接 1”是活动的:

Linux CentOS stream9 nmcli_第9张图片

3、修改

主要应用modify(m)命令修改连接设置参数

a.完善设置

一个网络连接有多项设置,并不需要一次全部设置完全(有时忘记设置哪些属性了),可以这样处理:

把原命令调出,把a改为m再添加其他一项或多项'属性 值'

        modify 接口名称 '属性1 值1  属性2 值2'

b.接口连接名

        con-name 新接口连接名

下图是把新网卡默认的连接名“有线连接 1”修改为ens38

Linux CentOS stream9 nmcli_第10张图片

下图是通过指定UUID修改connection.id(这是连接的接口名标志,可以简写为con.id或c.id)

Linux CentOS stream9 nmcli_第11张图片

c.双IP变为单IP

        …m -ipv4.address 192.168.100.50/24

d.动态IP转静态IP

从添加连接时的设置,可以知道ens37:2是动态IP地址,(修改命令)再添加静态IP地址就可以。

        nmcli c m ens37:2 ipv4.address 192.168.100.200/24 ipv4.gateway 192.168.100.254 ipv4.method manual

4、删除

一个连接不再需要,可以删除。这个删除是删除连接的配置文件,此连接将不存在(不能重启)。

Linux CentOS stream9 nmcli_第12张图片

        nmcli c delete ens38:2

Linux CentOS stream9 nmcli_第13张图片

删除配置文件,也是删除连接。

Linux CentOS stream9 nmcli_第14张图片

5、启动/停用

a.NM管理

设定 NetworkManager 接管网络设置:

        nmcli n on

取消 NetworkManager 接管网络设置:

        nmcli n off

b.启动/停用一个连接

切换连接时,不用把原来的连接停用,仅需把新的连接启动即可。

我们直接启动连接ens38,原来同一设备上的连接将会停止。

Linux CentOS stream9 nmcli_第15张图片

        nmcli c up ens38

Linux CentOS stream9 nmcli_第16张图片

如果停用ens38,需要执行命令

        nmcli c down ens38

如果一个设备上有两个连接,停用一个就会启用另一个。

c.启动/停用设备上的连接

执行命令nmcli d disconnect 设备名

可以停用设备上的所有连接

Linux CentOS stream9 nmcli_第17张图片

对于一个设备上只创建了一个连接,可以执行子命令down停用连接。而对于有多个连接的情况,就要后子命令disconnect。

小结

nmcli命令众多,不可能一一演示。可以多训练,才能熟练掌握。

对于网络连接不熟悉的,可以使用图形化命令nmtui和nm- connection-editor。

你可能感兴趣的:(centos,stream9,linux,centos,运维,网络,服务器)