Linux CentOS stream9 nmcli

发布时间:2024年01月18日

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没有录入。

利用简写命令查看帮助

????????h help的简写

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

????????g general的简写;h hostname的简写

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

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

2.补全

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

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

3.空格

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

如nmcli c m ens37 gateway 192.168.100.254

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

????????gateway=192.168.100.254

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

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

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地址

d.一卡多个连接

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

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

3、修改

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

a.完善设置

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

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

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

b.接口连接名

????????con-name 新接口连接名

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

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

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、删除

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

????????nmcli c delete ens38:2

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

5、启动/停用

a.NM管理

设定 NetworkManager 接管网络设置:

????????nmcli n on

取消 NetworkManager 接管网络设置:

????????nmcli n off

b.启动/停用一个连接

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

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

????????nmcli c up ens38

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

????????nmcli c down ens38

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

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

执行命令nmcli d disconnect 设备名

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

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

小结

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

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

文章来源:https://blog.csdn.net/qq_36142959/article/details/135673868
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。