百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

NetworkManager服务(nmcli)

bigegpt 2024-09-17 12:42 48 浏览

一、简介

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来加载生效。
NetworkManager在系统中的管理工具为nmcli

二、nmcli简单使用

2.1、nmcli命令的选项与参数

语法:

nmcli [OPTIONS] OBJECT { COMMAND | help }
OPTIONS
      -a, --ask                ask for missing parameters
      -c, --colors auto|yes|no            whether to use colors in output
      -e, --escape yes|no            escape columns separators in values
      -f, --fields <field,...>|all|common        specify fields to output
      -g, --get-values <field,...>|all|common    shortcut for -m tabular -t -f
      -h, --help                print this help
      -m, --mode tabular|multiline        output mode
      -o, --overview                overview mode
      -p, --pretty                pretty output
      -s, --show-secrets            allow displaying passwords
      -t, --terse                terse output
      -v, --version                show program version
      -w, --wait <seconds>            set timeout waiting for finishing operations

OBJECT
      g[eneral]    NetworkManager's general status and operations
      n[etworking]    overall networking control
      r[adio]        NetworkManager radio switches
      c[onnection]     NetworkManager's connections
      d[evice]    devices managed by NetworkManager
      a[gent]    NetworkManager secret agent or polkit agent

2.1、general 常规选项

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

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

$ nmcli general status
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled

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

# 查询主机名
$ nmcli general hostname
centos8-nat-168-182-152
# 设置主机名
$ nmcli general hostname centos8-nat-168-182-152-test
$ hostname
centos8-nat-168-182-152-test

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

$ nmcli general permissions 
PERMISSION                                                        VALUE 
org.freedesktop.NetworkManager.checkpoint-rollback                yes   
org.freedesktop.NetworkManager.enable-disable-connectivity-check  yes   
org.freedesktop.NetworkManager.enable-disable-network             yes   
org.freedesktop.NetworkManager.enable-disable-statistics          yes   
org.freedesktop.NetworkManager.enable-disable-wifi                yes   
org.freedesktop.NetworkManager.enable-disable-wimax               yes   
org.freedesktop.NetworkManager.enable-disable-wwan                yes   
org.freedesktop.NetworkManager.network-control                    yes   
org.freedesktop.NetworkManager.reload                             yes   
org.freedesktop.NetworkManager.settings.modify.global-dns         yes   
org.freedesktop.NetworkManager.settings.modify.hostname           yes   
org.freedesktop.NetworkManager.settings.modify.own                yes   
org.freedesktop.NetworkManager.settings.modify.system             yes   
org.freedesktop.NetworkManager.sleep-wake                         yes   
org.freedesktop.NetworkManager.wifi.scan                          yes   
org.freedesktop.NetworkManager.wifi.share.open                    yes   
org.freedesktop.NetworkManager.wifi.share.protected               yes  

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

$ nmcli general logging
LEVEL  DOMAINS                                                                                                                                                                                                                       
INFO   PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,TEAM,CONCHECK,DCB,DISPATCH,AUDIT,SYSTEMD,PROXY 

2.2、networking 网络控制

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

选项:

 - on: 禁用所有接口
 - off: 开启所有接口
 - connectivity:获取网络状态,可选参数checl告诉网络管理器重新检查连接性,否则显示最近已知的状态。而无需重新检查。(可能的状态如下所示)
	- none: 主机为连接到任何网络
 	- portal: 无法到达完整的互联网
 	- limited: 主机已连接到网络,但无法访问互联网
 	- full: 主机连接到网络,并具有完全访问
 	- unknown: 无法找到连接状态

2.2.1、获取网络状态

$ nmcli networking connectivity
full

2.2.2、重启所有网络接口

$ nmcli networking off && nmcli networking on

2.3、radio 无线限传输控制

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

2.3.1、显示无线状态

$ nmcli radio all
WIFI-HW  WIFI     WWAN-HW  WWAN    
enabled  enabled  enabled  enabled 
$ nmcli radio wifi
enabled
$ nmcli radio wwan
enabled

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、列出活动的连接,或进行排序(+-为升降序)

# 查看所有连接状态
$ nmcli connection show
# 等同于nmcli connection show --order +active
$ nmcli connection show --active
# 以活动的连接进行排序
$ nmcli connection show --order +active
# 将所有连接以名称排序
$ nmcli connection show --order +name
# 将所有连接以类型排序(倒序)
$ nmcli connection show --order -type

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

$ nmcli con show bond-bond0

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

# 以连接名进行激活
$ nmcli connection up bond-bond0
# 以uuid进行激活
$ nmcli connection up 3a538589-12b9-4a82-adda-fe3da844510c
# 以设备接口名进行激活
$ nmcli connection up ifname bond0

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

# 以连接名进行激活
$ nmcli connection donw bond-bond0
# 以uuid进行激活
$ nmcli connection down 3a538589-12b9-4a82-adda-fe3da844510c
# 以设备接口名进行激活
$ nmcli connection donw ifname bond0

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

添加多个ip(+ipv4.addresses)

# 添加三个ip
$ nmcli connection modify bond-bond0 +ipv4.addresses 192.168.182.102/24
$ nmcli connection modify bond-bond0 +ipv4.addresses 192.168.182.103/24
$ nmcli connection modify bond-bond0 +ipv4.addresses 192.168.182.104/24
# 查看,查不到。
$ nmcli -f IP4 connection show bond-bond0
IP4.ADDRESS[1]:                         192.168.182.152/24
IP4.GATEWAY:                            192.168.182.2
IP4.ROUTE[1]:                           dst = 192.168.182.0/24, nh = 0.0.0.0, mt = 300
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.182.2, mt = 300
IP4.DNS[1]:                             8.8.8.8
# 启用配置
$ nmcli connection up bond-bond0
# 再次查看,就可以查到刚才添加的三个ip
$ nmcli -f IP4 connection show bond-bond0
IP4.ADDRESS[1]:                         192.168.182.152/24
IP4.ADDRESS[2]:                         192.168.182.102/24
IP4.ADDRESS[3]:                         192.168.182.103/24
IP4.ADDRESS[4]:                         192.168.182.104/24
IP4.GATEWAY:                            192.168.182.2
IP4.ROUTE[1]:                           dst = 192.168.182.0/24, nh = 0.0.0.0, mt = 300
IP4.ROUTE[2]:                           dst = 192.168.182.0/24, nh = 0.0.0.0, mt = 300
IP4.ROUTE[3]:                           dst = 192.168.182.0/24, nh = 0.0.0.0, mt = 300
IP4.ROUTE[4]:                           dst = 192.168.182.0/24, nh = 0.0.0.0, mt = 300
IP4.ROUTE[5]:                           dst = 0.0.0.0/0, nh = 192.168.182.2, mt = 300
IP4.DNS[1]:                             8.8.8.8

删除指定ip(-ipv4.addresses)

# 删除刚刚添加的三个ip
$ nmcli connection modify bond-bond0 -ipv4.addresses 192.168.182.102/24
$ nmcli connection modify bond-bond0 -ipv4.addresses 192.168.182.103/24
$ nmcli connection modify bond-bond0 -ipv4.addresses 192.168.182.104/24
# 启用配置
$ nmcli connection up bond-bond0
# 查看
$ nmcli -f IP4 connection show bond-bond0

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

# 查看当前所有连接,c是connection的缩写
$ nmcli c show
$ nmcli con add con-name eth1 type ethernet  autoconnect yes ifname ens33
$ nmcli c show
# con-name     连接名称
# type              连接类型
# autoconnect 是否自动连接
# ifname          连接到的设备名称

2.5.6、克隆连接,克隆一个存在的连接,除了连接名称和uuid是新生成的,其他都是一样的(clone

$ nmcli connection clone eth1 eth1_1

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

$ nmcli con delete eth1_1

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

$ echo -e "TYPE=Ethernet\nNAME=ethx" > /etc/sysconfig/network-scripts/ifcfg-ethx
$ nmcli con show
$ nmcli con load /etc/sysconfig/network-scripts/ifcfg-ethx
$ nmcli connection show

2.5.9、监视连接配置文件活动(monitor)

$ nmcli connection monitor bond-bond0

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
以下两条命令对等

$ nmcli device status
$ nmcli device

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

$ nmcli device show ens33

2.6.3、设置设备属性(set

$ nmcli device set ifname ens33 autoconnect yes

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

$ nmcli dev connect ens33

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

$ nmcli device modify ens33 +ipv4.addresses 192.168.100.103/24

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

$ nmcli device disconnect ens33

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

$ nmcli device delete bond0

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

$ nmcli device monitor bond0

2.7、nmcli 返回状态码

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

0: 成功-指示操作已成功

1: 位置或指定的错误

2: 无效的用户输入,错误的nmcli调用

3: 超时了(请参阅 --wait 选项)

4: 连接激活失败

5: 连接停用失败

6: 断开设备失败

7: 连接删除失败

8: 网络管理器没有运行

10: 连接、设备或接入点不存在

65: 当使用 --complete-args 选项,文件名应遵循。

三、network和NetworkManager之间的区别

network:对网卡的配置
NetworkManager:这个服务由几个部分组成;一个是管理系统网络连接;一个是允许用户管理网络连接的客户端程序,使用它可以更好的管理网络

四、network和NetworkManager两个服务之间冲突解

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

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

$ chkconfig NetworkManager off

2)将NetwokManager服务关闭

$ systemctl stop NetworkManager

3)重新启动一下network服务

$ systemctl restart network

4)重新加载配置

# 重新加载所有网卡配置
nmcli c reload
# 指定加载
nmcli c reload /etc/sysconfig/network-scripts/ifcfg-ens33
# 重新加载所有网卡配置(可靠,推荐)
nmcli networking off && nmcli networking on
ifdown ens33 && ifup ens33
nmcli con down ens33 && nmcli con up ens33

相关推荐

方差分析简介(方差分析通俗理解)

介绍方差分析(ANOVA,AnalysisofVariance)是一种广泛使用的统计方法,用于比较两个或多个组之间的均值。单因素方差分析是方差分析的一种变体,旨在检测三个或更多分类组的均值是否存在...

正如404页面所预示,猴子正成为断网元凶--吧嗒吧嗒真好吃

吧嗒吧嗒,绘图:MakiNaro你可以通过加热、冰冻、水淹、模塑、甚至压溃压力来使网络光缆硬化。但用猴子显然是不行的。光缆那新挤压成型的塑料外皮太尼玛诱人了,无法阻挡一场试吃盛宴的举行。印度政府正...

Python数据可视化:箱线图多种库画法

概念箱线图通过数据的四分位数来展示数据的分布情况。例如:数据的中心位置,数据间的离散程度,是否有异常值等。把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)...

多组独立(完全随机设计)样本秩和检验的SPSS操作教程及结果解读

作者/风仕在上一期,我们已经讲完了两组独立样本秩和检验的SPSS操作教程及结果解读,这期开始讲多组独立样本秩和检验,我们主要从多组独立样本秩和检验介绍、两组独立样本秩和检验使用条件及案例的SPSS操作...

方差分析 in R语言 and Excel(方差分析r语言例题)

今天来写一篇实际中比较实用的分析方法,方差分析。通过方差分析,我们可以确定组别之间的差异是否超出了由于随机因素引起的差异范围。方差分析分为单因素方差分析和多因素方差分析,这一篇先介绍一下单因素方差分析...

可视化:前端数据可视化插件大盘点 图表/图谱/地图/关系图

前端数据可视化插件大盘点图表/图谱/地图/关系图全有在大数据时代,很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,开发人员很多时候需要使用图表来表现一些数据。随着Web技术的...

matplotlib 必知的 15 个图(matplotlib各种图)

施工专题,我已完成20篇,施工系列几乎覆盖Python完整技术栈,目标只总结实践中最实用的东西,直击问题本质,快速帮助读者们入门和进阶:1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编...

R ggplot2常用图表绘制指南(ggplot2绘制折线图)

ggplot2是R语言中强大的数据可视化包,基于“图形语法”(GrammarofGraphics),通过分层方式构建图表。以下是常用图表命令的详细指南,涵盖基本语法、常见图表类型及示例,适合...

Python数据可视化:从Pandas基础到Seaborn高级应用

数据可视化是数据分析中不可或缺的一环,它能帮助我们直观理解数据模式和趋势。本文将全面介绍Python中最常用的三种可视化方法。Pandas内置绘图功能Pandas基于Matplotlib提供了简洁的绘...

Python 数据可视化常用命令备忘录

本文提供了一个全面的Python数据可视化备忘单,适用于探索性数据分析(EDA)。该备忘单涵盖了单变量分析、双变量分析、多变量分析、时间序列分析、文本数据分析、可视化定制以及保存与显示等内容。所...

统计图的种类(统计图的种类及特点图片)

统计图是利用几何图形或具体事物的形象和地图等形式来表现社会经济现象数量特征和数量关系的图形。以下是几种常见的统计图类型及其适用场景:1.条形图(BarChart)条形图是用矩形条的高度或长度来表示...

实测,大模型谁更懂数据可视化?(数据可视化和可视化分析的主要模型)

大家好,我是Ai学习的老章看论文时,经常看到漂亮的图表,很多不知道是用什么工具绘制的,或者很想复刻类似图表。实测,大模型LaTeX公式识别,出乎预料前文,我用Kimi、Qwen-3-235B...

通过AI提示词让Deepseek快速生成各种类型的图表制作

在数据分析和可视化领域,图表是传达信息的重要工具。然而,传统图表制作往往需要专业的软件和一定的技术知识。本文将介绍如何通过AI提示词,利用Deepseek快速生成各种类型的图表,包括柱状图、折线图、饼...

数据可视化:解析箱线图(box plot)

箱线图/盒须图(boxplot)是数据分布的图形表示,由五个摘要组成:最小值、第一四分位数(25th百分位数)、中位数、第三四分位数(75th百分位数)和最大值。箱子代表四分位距(IQR)。IQR是...

[seaborn] seaborn学习笔记1-箱形图Boxplot

1箱形图Boxplot(代码下载)Boxplot可能是最常见的图形类型之一。它能够很好表示数据中的分布规律。箱型图方框的末尾显示了上下四分位数。极线显示最高和最低值,不包括异常值。seaborn中...