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

利用简写命令查看帮助

        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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/332290.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安装JDK: 错误1316.指定的账户已存在

安装JDK: 错误1316.指定的账户已存在 引方案尝试JDK卸载重装JDK注册表清理JDK21JDK1.8 解压版JDK1.8 8u3xx 引 在执行了某个神秘脚本后,我电脑的很多软件就不可用了,怀疑是注册表被动到了,包括java开发必备的JDK,也无…

深度学习和机器学习中针对非时间序列的回归任务,有哪些改进角度?

深度学习和机器学习中针对非时间序列的回归任务,有哪些改进角度? 目录 深度学习和机器学习中针对非时间序列的回归任务,有哪些改进角度?引言1 数据预处理2 数据集增强3 特征选择4 模型选择5 模型正则化与泛化6 优化器7 学习率8 超…

linux 安装ffmpeg

一、下载 ffmpeg-4.3.1 下载地址:链接:https://pan.baidu.com/s/1xbkpHDfIWSCbHFGJJHSQcA 提取码:3eil 二、上传到服务器root目录下 三、给ffmpeg-4.3.1 读写权限 chmod -R 777 /root/ffmpeg-4.3.1 四、创建软连接 1.进入/bin 目录 2.…

Vue3使用

1、列表实现 <el-table :data"tableData" border style"width: 100%" selection-change"handleSelectionChange" :header-cell-style"{text-align:center}"><el-table-column type"selection" width"55"…

Unity中四元数常用的方法

单位四元数 #region 单位四元数print(Quaternion.identity);testObj.rotation Quaternion.identity;//初始化对象时可能会用来赋值Instantiate(testObj,Vector3.zero,Quaternion.identity);#endregion 插值运算 #region 插值运算 //四元数中也提供了如同Vector3的插值运算 /…

vite多页面打包学习(一)

一、前期准备 首先初始化两套独立的vue实例和相关生态&#xff08;多页面嘛&#xff09;&#xff0c;如下 我在src文件下创建了pages大文件夹&#xff0c;并初始化了两套页面分别为index和page1&#xff0c;每套页面都有自己单独的组件、路由、状态、入口等等&#xff0c;这里…

竞赛保研 大数据疫情分析及可视化系统

文章目录 0 前言2 开发简介3 数据集4 实现技术4.1 系统架构4.2 开发环境4.3 疫情地图4.3.1 填充图(Choropleth maps)4.3.2 气泡图 4.4 全国疫情实时追踪4.6 其他页面 5 关键代码最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 大数据疫…

vue:菜单栏联动内容页面tab

一、需求 需要实现效果&#xff1a;左侧菜单栏与右侧内容部分联动&#xff0c;当点击左侧的菜单&#xff0c;右侧会展示对应的tab&#xff0c;没有点击时&#xff0c;不展示&#xff08;如刚进入页面没有点击菜单&#xff0c;则没有tab&#xff09;&#xff1b;点击后没有关闭…

深度学习中Numpy的一些注意点(多维数组;数据类型转换、数组扁平化、np.where()、np.argmax()、图像拼接、生成同shape的图片)

文章目录 1多维数组压缩维度扩充维度 2numpy类型转换深度学习常见的float32类型。 3数组扁平化4np.where()的用法5np.argmax()6图像拼接7生成同shape的图片&#xff0c;指定数据类型 1多维数组 a.shape(3,2);既数组h3&#xff0c;w2 a.shape(2,3,2);这里第一个2表示axis0维度上…

C#用Convert.ToString(Int32, Int32)和Convert.Tolnt64(String, Int32)进行数值转换

目录 一、Convert.ToString(Int32, Int32) 方法 1.定义 2. 示例 二、Convert.ToInt64(String, Int32) 1.定义 2.实例 三、用Convert.ToString(Int32, Int32)和Convert.Tolnt64(String, Int32)进行数值转换 1.Main() 2.类库 3.生成效果 使用Convert.ToString(Int32…

QuestDB时序数据库快速入门

简介 QuestDB是一个开源的高性能时序数据库&#xff0c;专门用于处理时间序列相关的数据存储与查询&#xff1b; QuestDB使用列式存储模型。数据存储在表中&#xff0c;每列存储在其自己的文件和其自己的本机格式中。新数据被附加到每列的底部&#xff0c;以便能够按照与摄取…

storm统计服务开启zookeeper、kafka 、Storm(sasl认证)

部署storm统计服务开启zookeeper、kafka 、Storm&#xff08;sasl认证&#xff09; 当前测试验证结果&#xff1a; 单独配置zookeeper 支持acl 设置用户和密码&#xff0c;在storm不修改代码情况下和kafka支持当kafka 开启ACL时&#xff0c;storm 和ccod模块不清楚配置用户和密…

【分享】MathWorks中国汽车年会:“软件定义汽车”

从软件赋能到软件定义&#xff0c;汽车行业不仅需要解决诸如错误发现滞后带来的高昂代价、功能融合所需的跨学科知识、功能安全与实施成本之间的权衡等老问题&#xff0c;也面临着新的挑战&#xff1a;软件复杂度的不断提升、利用数据驱动创造价值、人工智能的引入和实现、数字…

PyCharm 快捷键(Ctrl + R)正则表达式批量替换

目录 一、使用快捷键CtrlR&#xff0c;打开替换界面 二、输入替换格式 三、点击全部替换 一、使用快捷键CtrlR&#xff0c;打开替换界面 二、输入替换格式 在第一个框输入 (.*): (.*) 第二个框输入 $1:$2, 三、点击全部替换

【JVM】并发的可达性分析详细解释

​ &#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;JVM ⛳️ 功不唐捐&#xff0c;玉汝于成 ​ 目录 前言 正文 可达性分析的基本原理&#xff1a; 根集合&#xff08;Root Set&#xff09;&#xff1a; 对象引用关系&#xff1a; 标记…

Java导出Excel并合并单元格

需求&#xff1a;需要在导出excel时合并指定的单元格 ruoyi excel 项目基于若伊框架二次开发&#xff0c;本着能用现成的就不自己写的原则&#xff0c;先是尝试了Excel注解中needMerge属性 /*** 是否需要纵向合并单元格,应对需求:含有list集合单元格)*/public boolean needMer…

记一次 .NET某道闸收费系统 内存溢出分析

一&#xff1a;背景 1. 讲故事 前些天有位朋友找到我&#xff0c;说他的程序几天内存就要爆一次&#xff0c;不知道咋回事&#xff0c;找不出原因&#xff0c;让我帮忙看一下&#xff0c;这种问题分析dump是最简单粗暴了&#xff0c;拿到dump后接下来就是一顿分析。 二&…

11.1 pcl_ros的点云学习

本文是看了两个博主的内容&#xff0c;整理在这里是为了以后用时方便查找&#xff0c;更容易理解。引用的博文路径如下&#xff08;本人也是刚开始看PCL的运用&#xff0c;本文是完全抄下面博主的内容&#xff0c;觉得这位博主写的很详细很清楚&#xff0c;并且自己运行了一遍有…

Java17新特性详解含示例代码(值得珍藏)

1. 概述 Java 17 是 Java 开发工具包&#xff08;JDK&#xff09;的一个重要版本&#xff0c;它带来了一系列的新特性和改进&#xff0c;以进一步增强 Java 语言的功能和性能。以下是 Java 17 中的一些主要新特性及其详细说明。 2. 新特性详解 JEP 356: Enhanced Pseudo-Ran…

uniapp uni.chooseLocation调用走失败那里,错误码:112

问题&#xff1a;我配置了百度上所有能配置的&#xff0c;一直调用不成功&#xff0c;如下图配置的 1:第一个 配置 代码&#xff1a; "permission": {"scope.userLocation": {"desc": "你的位置信息将用于小程序位置接口的效果展示"}…