网络】nmcli 网络管理工具

您所在的位置:网站首页 重启networkmanager系统服务 网络】nmcli 网络管理工具

网络】nmcli 网络管理工具

2024-06-15 08:52| 来源: 网络整理| 查看: 265

目录

nmcli 命令

前提

重启网络服务 / 重启网卡

实例

nmcli输出说明

3种网络配置方法

nmcli的命令参数

Tips

ethtool 命令

IP命令

添加网卡到配置文件

Linux系统怎么查看网卡的UUID

nmcli 命令原文:nmcli 网络管理工具 - web男 - 博客园

前提使用 nmcli 时,NetworkManager 必须保持开启。

NetworkManager 的相关命令:

查看运行状态:systemctl status NetworkManager启动:systemctl start NetworkManager重启:systemctl restart NetworkManager关闭:systemctl stop NetworkManager查看是否开机启动:systemctl is-enabled NetworkManager开机启动:systemctl enable NetworkManager禁止开机启动:systemctl disable NetworkManager 

(NetworkManager和network.service的区别:

network是linux直接配置网卡的程序

NetworkManager是提供一个丰富的API来检查和控制网络设置和操作的应用程序

network和NetworkManager一起工作时就会出现冲突

网卡解决network和NetworkManager的冲突问题_BiGpeng丶的博客-CSDN博客

centos8之后默认就是用NetworkManager管理网络,centos9之后就彻底抛弃network。

NetworkManage于network功能类似,都是用于管理网络。NetworkManage提供了nmctl、nmtui两个工具,两个都是用来管理网络,但是有一个前提:nmctl networking 状态必须是enable否则设备状态为unmanaged,这会导致network启动不了!!)

重启网络服务 / 重启网卡#重启⽹卡之前⼀定要重新载⼊⼀下配置⽂件,不然不能⽴即⽣效

nmcli c reload  

#重启⽹卡(下⾯的三条命令都可以)

nmcli c up ens160                 #nmcli c reload会读取配置文件,但是不会立即生效,接着如果执行nmcli c up ethX,就会立即生效nmcli d reapply ens160         #更新设备信息,只有在设备处于连接状态,才可以更新设备。更新设备相当于重启连接。nmcli d connect ens160        #连接设备,如果 ens33 本来就出于连接状态,那此命令会重启 ens160。

01 nmcli networking

nmcli networking或nmcli n        显示 NetworkManager 是否接管网络设置nmcli n on                      设定 NetworkManager 接管网络设置nmcli n off                     取消 NetworkManager 接管网络设置nmcli n connectivity/nmcli n c  查看网络连接状态网络连接状态共有五种:full、limited(连网,但无法上网)、portal(连网,但需要认证登录后才能上网)、none(没连网)和 unknown。

02 nmcli general

nmcli general status/nmcli g    显示系统网络状态其中:STATE 显示网络是否连接;CONNECTIVITY 与前面介绍的 nmcli networking connectivity 相同;WIFI-HW 表示 WIFI 硬件开关、WIFI 表示 WIFI 软件开关;WWAN-HW 表示 WWAN 硬件开关、WWAN 表示 WWAN 软件开关。HW 代表 HardWare,WWAN 代表 Wireless Wide Area Network。

03 nmcli connection

nmcli connection show/nmcli c         显示所有网络连接的信息nmcli c s -a  /nmcli c s --active         显示所有网络连接的信息,只显示当前启动的连接nmcli c s ens33                                 显示某一特定连接的详细信息(以 ens33 为例)nmcli c up ens33                               启动指定连接nmcli c down ens33                          关闭指定连接

nmcli c reload / nmcli c r                      重载所有连接的配置文件nmcli c load ifcfg-ens33/nmcli c l ifcfg-ens33  重载某一指定连接的配置文件:网络配置文件默认保存在 /etc/sysconfig/network-scripts/ 路径下,如果配置文件在其它位置,则需要填写完整路径。

(多个connection可以应用到同一个device,但同一时间只能启用其中一个connection。这样的好处是针对一个网络接口,我们可以设置多个网络链接文件,比如静态IP和动态IP,再根据需要up相应connection,这样可以方便的切换网络配置,比如笔记本电脑移动办公,到不同的环境同一个网卡可以切换到不同的网络配置,配置好以后不需要每次都从新配置。)

04 nmcli devicenmcli device status / nmcli d    显示所有网络接口设备的状态,列出所有可用的设备

nmcli d show / nmcli d sh        显示所有设备的详细信息# show不可简写为s,与 status 冲突,但可写为 shnmcli d sh ens33                      显示某一特定设备的详细信息

nmcli d connect ens33或nmcli d c ens33       连接设备,如果 ens33 本来就出于连接状态,那此命令会重启 ens33。nmcli d disconnect ens33 或 nmcli d d ens33  断开设备

nmcli d reapply ens33 / nmcli d r ens33      更新设备信息,只有在设备处于连接状态,才可以更新设备。更新设备相当于重启连接。 

更多命令:Linux中nmcli命令详解_https://blog.csdn.net/yulin003/article/details/125561203

命令

目的

nmcli dev status/nmcli d status    显示所有网络接口的网络管理器状态nmcli con show/nmcli c show    列出所有连接nmcli con show [connect_name]/nmcli c show [connect_name]    列出连接名称的当前设置nmcli con show ens21f0nmcli con reload/nmcli c reload    告诉networkManager重新读取配置文件(在手工编辑之后有用)nmcli con up [connect_name]/nmcli c up [connect_name]/    激活连接名称nmcli dev dis [dev_name]    停用并断开网络接口开发人员上的当前连接nmcli con del [connect_name]    删除连接名称及其配置文件设备,是网络设备的接口,可理解为实际存在的网卡(包括物理网卡和虚拟网卡)。可以简写为nmcli d在NM里,有2个维度:连接(connection)和设备(device),这是多对一的关系。想给某个网卡配ip,首先NM要能纳管这个网卡。设备里存在的网卡(即 nmcli d可以看到的),就是NM纳管的。接着,可以为一个设备配置多个连接(即 nmcli c可以看到的),每个连接可以理解为一个ifcfg配置文件。同一时刻,一个设备只能有一个连接活跃。可以通过 nmcli c up切换连接。

原文链接:https://blog.csdn.net/qq_50573146/article/details/126797116

4、device有4种常见状态:▷ connected:已被NM纳管,并且当前有活跃的connection▷ disconnected:已被NM纳管,但是当前没有活跃的connection▷ unmanaged:未被NM纳管▷ unavailable:不可用,NM无法纳管,通常出现于网卡link为down的时候(比如ip link set ethX down)

原文链接:https://blog.csdn.net/qq_50573146/article/details/126797116

[root@node71 ~]# nmcli dev status

DEVICE        TYPE      STATE                   CONNECTIONens35f0       ethernet  connected               ens35f0cni-podman0   bridge    connected (externally)  cni-podman0virbr0        bridge    connected (externally)  virbr0ens35f1       ethernet  disconnected            --ens49f0       ethernet  disconnected            --ens49f1       ethernet  disconnected            --veth69fa1863  ethernet  unmanaged               --veth7021e951  ethernet  unmanaged               --veth81e4dd60  ethernet  unmanaged               --vetha529eed5  ethernet  unmanaged               --lo            loopback  unmanaged               --virbr0-nic    tun       unmanaged               --

实例查看网卡信息

nmcli

查看网络设备状态

nmcli device status

查看网络连接状态

nmcli connection 

查看UUID等网卡信息

nmcli connection show 

查看网络详细信息

nmcli device show ens32

设置静态ip

nmcli connection modify ens32 ipv4.addresses '192.168.1.10'

设置网关

nmcli connection modify ens32 ipv4.gateway '192.168.1.1'

设置DNS

nmcli connection modifly ens32 ipv4.dns '144.144.144.144'

ip地址设为手动

nmcli connection modify ens32 ipv4.method manual

ip地址设为自动获取

nmcli connection modify ens32 ipv4.method auto

设置开机自动连接 

nmcli connection modify ens32 connection.autoconnect yes

nmcli connection modify ens32 connection.autoconnect no

重新加载配置文件

nmcli connection reload

不重启系统网卡生效

nmcli connection up ens32

nmcli device connect ens32

nmcli device reapply ens32

查看DNS

cat /etc/resolv.conf

nmcli输出说明nmcli connection说明

[root@master ~]# nmcli c show                        显示所有活动链接名称    UUID                                  类型            设备   ens33   51a4ba6c-0635-400b-a1c6-f9e87d55c303  802-3-ethernet  ens33        # 这是当前激活的连接带颜色字体,只是文章里体现不出来virbr0  0d2e6f20-0044-49f9-80ec-cbe19c31df42  bridge          virbr0 10.97.17.90      93e8cf06-bd0b-4b69-b802-f3c8c602e000    ethernet     # “--”表示当前没有激活的连接每一行是一个连接,只是只有一个是激活状态第一列是connection名字(连接名称)简称con-name,简称con-name(注意con-name不是网卡名)第二列是connection的UUID第三列是connection的网络类型最后一列才是网卡名(标准说法叫device名),可通过nmcil d查看device对connection做操作时需要指定标识,标识可以是con-name、UUID、如果存在ifcfg文件则也可以用ifcfg的完整路径,即/etc/sysconfig/network-scripts/ifcfg-ethX,如下示例:

nmcli c show ethXnmcli c show cae3f1ef-e79a-46c3-8e0c-946b91a65e11nmcli c show /etc/sysconfig/network-scripts/ifcfg-ethX 

1、nmcli connection名字(连接名称)同时对应ifcfg的文件名以及内容中的NAME=,该参数表示连接(connection)的名字,无需和网卡名相同,可以为一个设备(device)创建多个连接,但同一时刻只能有一个连接生效。当有多个连接时候,可以通过nmcli c delete删除当前连接,就会自动选择同一个设备的其他连接来顶替生效。可以通过nmcli c up来将指定连接切换生效。注意:通过nmcli c modify修改连接名称,只会对应修改ifcfg文件中的NAME,而不会更改ifcfg文件名。2、nmcli c的ipv4.method对应ifcfg文件内容的BOOTPROTO,ipv4.method默认为auto,对应为BOOTPROTO=dhcp,这种时候如果指定ip,就可能导致网卡同时有dhcp分配的ip和静态ip。设置为manual表示BOOTPROTO=none,即只有静态ip。 

nmcli device说明

[root@master ~]# nmcli d status               #查看设备接口简略信息设备        类型      状态    CONNECTION virbr0      bridge    连接的  virbr0     ens33       ethernet  连接的  ens33      lo          loopback  未管理  --         virbr0-nic  tun       未管理  --   

每一行表示一个网络设备的接口。第一列表示设备接口的名称,第二列表示设备接口的类型,第三列表示设备接口状态,最后一列表示connection的名字,“–”表示设备为使用!

1、nmcli d connect ethX由NM对指定网卡进行管理,同时刷新该网卡对应的活跃connection(如果之前有修改过connection配置);如果有connection但是都处于非活跃状态,则自动选择一个connection并将其活跃;如果没有connection,则自动生成一个并将其活跃。2、nmcli d disconnect ethX让NM暂时不管理指定网卡,此操作不会变更实际网卡的link状态,只会使对应的connection变成非活跃。若重启系统则又会自动connect。另外,如果手工将该网卡的connection全部删掉,该网卡状态也会自动变为disconnected。3、nmcli d reapply ethX专门用于刷新connection,前提是网卡的device处于connected状态,否则会报错。4、nmcli d set ethX autoconnect yes|no managed yes|no可以设置是否自动连接和是否自动管理,但经测试只能用于当前开机状态, 如果这2个参数都设置为no,然后重启系统,又会自动恢复成connected和managed yes的状态。所以该命令用途不大。注意事项:如果managed设置为no,那么nmcli c reload会读取配置文件,但是不会立即生效,接着如果执行nmcli c up ethX,就会立即生效,同时managed自动变为yes。重启系统自动恢复成connected和managed yes的状态,这种逻辑并不实用也不够合理,牛人已将此问题提交给redhat,据回复,这么设计是因为目前没有一个有效的手段来证明“我是我”,比如当网卡重新拔插到其他插槽时候,网卡名有很大可能性会发生变化,因此无法确定关机前设置的是对应开机后的哪个网卡,目前暂无办法解决,笔者将持续跟进。

 

3种网络配置方法

在讲3种配置方法前,需要先明白ifcfg和NM connection的关联:虽然network.service被废弃了,但是redhat为了兼容传统的ifcfg,通过NM进行网络配置时候,会自动将connection同步到ifcfg配置文件中。也可以通过nmcli c reload或者nmcli c load /etc/sysconfig/network-scripts/ifcfg-ethX的方式来让NM读取ifcfg配置文件到connection中。因此ifcfg和connection是一对一的关系,另外上面有提到,connection和device是多对一的关系。

手工配置ifcfg,通过NM来生效通过NM自带工具配ip,比如nmcli手工配置ifcfg,通过传统network.service来生效建议:推荐使用上述第1种网络配置方法(手工配置ifcfg,通过NM生效),因为这样既兼容了传统的ifcfg配置,又能熟悉nmcli。

原文链接:https://blog.csdn.net/qq_50573146/article/details/126797116

插曲

prefix 子网掩码

255.255.255.0用二进制表示为11111111.11111111.11111111.00000000,  24个1。所以说网络位是24位。PREFIX=24255.255.255.192用二进制表示为11111111.11111111.11111111.11000000,  26个1。所以说网络位是26位。PREFIX=26255.255.255.128用二进制表示为11111111.11111111.11111111.10000000,  26个1。所以说网络位是25位。PREFIX=25255.255.255.224用二进制表示为11111111.11111111.11111111.11100000,  27个1。所以说网络位是27位。PREFIX=27255.255.255.240用二进制表示为11111111.11111111.11111111.11110000,  28个1。所以说网络位是28位。PREFIX=28255.255.255.248用二进制表示为11111111.11111111.11111111.11111000,  29个1。所以说网络位是29位。PREFIX=29

笔者配置文件中最后有一行 prefix = 32 ,无论如何设置子网掩码netlmask 都是255.255.255.255,删除后才恢复

用ip addr 查看更快:

16: eth1: mtu 1400 group default qlen 1    link/ether 00:ff:8e:e9:b9:b6    inet 10.32.208.248/24 brd 10.32.208.255 scope global dynamic



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3