当前位置:首页 > 资讯 > 正文

NetworkManager服务(nmcli)

NetworkManager服务(nmcli)

一、简介

NetworkManager服务是管理和监控网络设置的守护进程,是2004年RedHat启动的项目,皆在能够让Linux用户更轻松的处理现代网络需求,尤其是无线网络,能够自动发现网卡并配置IP地址。Centos7之前的版本都是通过network.service管理网络配置。到了Centos7就同时支持network.service和NetworkManager.service(简称NM),相当于在Centos7的一个过渡,默认情况下这2个服务都有开启,但是因为NetworkManager.service当时的兼容性不好,大部分人都会将其关闭。在RHEL 8/Centos 8上已废弃network.service(默认不安装),只能通过NetworkManager进行网络配置。

NetworkManager的作用:

NetworkManager主要管理2个对象: Connection(网卡连接配置) 和 Device(网卡设备),他们之间是多对一的关系,但是同一时刻只能有一个Connection对于Device才生效。

在RHEL 8/Centos 8有三种方法配置网络:

  • 通过nmcli connection add命令配置,会自动生成ifcfg文件。
  • 手动配置ifcfg文件,通过nmcli connection reload来加载生效。
  • 手动配置ifcfg文件,通过传统network.service来加载生效。
 
二、nmcli简单使用
2.1、nmcli命令的选项与参数

语法:

 
2.1、general 常规选项

命令格式:nmcli general {status|hostname|permissions|logging}
命令描述:使用此命令可以显示网络管理器状态和权限,你可以获取和更改系统主机名,以及网络管理器日志记录级别和域。

2.1.1、显示网络管理器的整体状态(status

 

2.1.2、获取主机名或该更主机名(hostname

 

2.1.3、显示当前用户对网络管理器可允许的操作权限(permissions

 

2.1.4、获取和更改网络管理器日志记录级别和域,没有任何参数当前日志记录级别和域显示(loggin

 
2.2、networking 网络控制

命令格式:nmcli networking {on|off|connectivity}
命令描述:查询网络管理器网络状态,开启和关闭网络

选项:

 

2.2.1、获取网络状态

 

2.2.2、重启所有网络接口

 
2.3、radio 无线限传输控制

命令格式:nmcli radio {all|wifi|wwan}
显示无线开关状态,或启用和禁用开关

2.3.1、显示无线状态

 
2.4、monitor 活动监视器

活动监视器(ACTIVITY MONITOR)
观察网络管理器活动。监视连接的变化状态、设备或连接配置文件。

2.5、connection 连接管理

命令格式:nmcli connection {show|up|down|modify|add|edit|clone|delete|monitor|reload|load|import|export}
这是主要使用的一个功能。

2.5.1、列出活动的连接,或进行排序(±为升降序)

 

2.5.2、查看指定连接的详细信息

 
 
 

2.5.4、停用连接,提供连接名或uuid进行停用,若未提供,则可以使用ifname指定设备名进行激活(down

 

2.5.5、【修改】这些属性可以用nmcli connection show bond-bond0进行获取,然后可以修改、添加或删除属性,若要设置属性,只需指定属性名称后跟值,空值将删除属性值,同一属性添加多个值使用+。同一属性删除指定值用-加索引(modify

添加多个ip(+ipv4.addresses)

 

删除指定ip(-ipv4.addresses)

 

2.5.5、【添加】这是创建一个新的连接,需要指定新创建连接的属性,语法与modify相同(add

 
 
 

2.5.7、【删除】删除连接,这将删除一个连接(delete),con 是connection的缩写

 

2.5.8、从磁盘加载/重新加载一个或多个连接文件,例如你手动创建了一个/etc/sysconfig/network-scripts/ifcfg-ethx连接文件,你可以将其加载到网络管理器,以便管理。

 
 
 
2.6、device 设备管理

命令格式:nmcli device {status|show|set|connect|reapply|modify|disconnect|delete|monitor|wifi|lldp}
显示和管理设备接口。该选项有很多功能,例如连接wifi,创建热点,扫描无线,邻近发现等,下面仅列出常用选项。详细功能可使用nmcli device help查看。

2.6.1、打印设备状态,如果没有将命令指定给nmcli device,则这是默认操作(status
以下两条命令对等

 

2.6.2、显示所有设备接口的详细信息(show

 
 
 

2.6.4、连接设备(connection)。提供一个设备接口,网络管理器将尝试找到一个合适的连接, 将被激活。它还将考虑未设置为自动连接的连接。(默认超时为90s)

 

2.6.5、修改设备上处于活动的设备(modify),但该修改只是临时的,并不会写入文件。(语法与 nmcli connection modify 相同)

 

2.6.6、断开当前连接的设备(disconnect),防止自动连接。但注意,断开意味着设备停止!但可用 connect 进行连接

 

2.6.7、删除设备(delete),该命令从系统中删除接口。请注意, 这仅适用于诸如bonds, bridges, teams等软件设备。命令无法删除硬件设备 (如以太网)。超时时间为10秒

 

2.6.8、 监视设备活动(monitor)。每当指定的设备更改状态时, 此命令都会打印一行

 
2.7、nmcli 返回状态码

mcli 如果成功退出状态值为0,如果发生错误则返回大于0的值。

 
三、network和NetworkManager之间的区别
 
四、network和NetworkManager两个服务之间冲突解

在CentOS系统上,目前有NetworkManager和network两种网络管理工具。如果两种都配置会引起冲突,而且NetworkManager在网络断开的时候,会清理路由,如果一些自定义的路由,没有加入到NetworkManager的配置文件中,路由就被清理掉,网络连接后需要自定义添加上去。

1)将NetworkManager 服务设置开机不启动

 

2)将NetwokManager服务关闭

 

3)重新启动一下network服务

 

4)重新加载配置