Linux的全新网络管理命令行工具——nmcli

一、nmcli简介

 1.1、NetworkManager简介

  1.1.1、NetworkManager介绍

        在红帽系的Linux中,默认的网络服务是由NetworkManager提供的(其主要是一个可以进行动态网络配置和控制的守护进程)。

使用NetworkManager的优点
序号使用NetworkManager的优点
1

可更加轻松高效的对网络进行配置

(NetworkManager可确保网络连接的正常工作,但发现系统中没有网络配置但存在网络设备时,会创建临时连接)

2

支持配置的灵活性

(可以直接配置或修改网络别名、IP地址、静态路由、DNS等许多特定的连接参数)

3

提供与用户的简单网络连接设置

(提供不同的管理工具进行网络配置【如:GUI、nmtui、nmcli】)

4

通过D-Bus提供Api,允许应用程序查询和控制网络配置和状态

(应用程序可以通过D-Bus的api检查或配置网络)

5重启过程后保持设备状态,并接管在重启过程中将其设定为受管模式的接口
6处理没有被显式设置但由用户或其他网络设备手动控制的设备

  1.1.2、NetworkManager的安装与启动

        默认情况下,NetworkManager是安装在红帽系的Linux中的,不用安装,若当前系统中没有可以按照如下步骤检查操作安装:

-- 1、查看NetworkManager的运行状态(显示 Active: inactive (dead)表示没有启动需要启动)
systemctl status NetworkManager-- 2、若查看NetworkManager运行状态报错则可以使用root用户权限安装
yum install NetworkManager-- 3、启动NetworkManager(停止用stop)
systemctl start NetworkManager-- 4、设置NetworkManager在系统开机自启(禁用开机自启用 disable)
systemctl enable NetworkManager

使用 systemd 管理服务https://docs.redhat.com/en/documentation/Red_Hat_Enterprise_Linux/7/html/system_administrators_guide/chap-managing_services_with_systemd

 1.2、nmcli简介

         【nmcli】是(NetworkManager)的命令行工具,用于控制NetworkManager和报告网络状态情况,可让用户和脚本与 NetworkManager 交互;且nmcli 可以在没有 GUI 的系统上使用;nmcli可以用于创建、显示、编辑、删除、激活和停用网络连接,以及控制和显示网络设备状态。

nmcli可以让用户和脚本用于控制NetworkManager
序号nmcli可以让用户和脚本用于控制网络
1对于服务器和终端,nmcli可以直接控制NetworkManager,且不需要GUI,就可以进行创建、编辑、启动和停止网络连接,以及查看网络状态
2对于脚本,nmcli支持更适合脚本处理的terse输出格式。它是集成网络配置而不是手动管理网络连接的一种方式

        由于Red Hat Enterprise Linux 8【rhel8】以后版本上,在【/etc/sysconfig/network-scripts/】里也看不到任何脚本文件;也就是说没有传统的network.service了【即:无法使用systemctl restart network命令启动网络了】,所以在rhel8之后的版本必须启用NetworkManager,否则无法使用网络。

--查看系统详情的2种命令
-- 1、直接使用系统自带的文件查看
cat /etc/os-release-- 2、使用第三方包查看
lsb_release -a

  如下是Centos7的网络情况(可以看到【/etc/sysconfig/network-scripts/】路径下有很多的网络文件内容):

    如下是Centos8的网络情况(可以看到【/etc/sysconfig/network-scripts/】路径下只有一个网络文件了):

  如下是平滑替换Centos的系统AImaLinux的网络情况(可以看到【/etc/sysconfig/network-scripts/】路径下都没有网络文件了)

二、nmcli配置网络

第 3 章 配置 IP 网络 | 网络指南 | Red Hat Enterprise Linux | 7 | Red Hat Documentationhttps://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/7/html/networking_guide/ch-configuring_ip_networking#sec-Selecting_Network_Configuration_Methods

 2.1、nmcli的语法

--nmcli的语法
nmcli [OPTIONS] OBJECT { COMMAND | help }--查看nmcli用法命令
nmcli --help

-- 使用nmcli美化输出的示例(简化输出的就是将-p换为-t)
-- 查看NetworkManager的常规状态和操作
nmcli -p g-- 查看整体网络控制
nmcli -p n-- 查看NetworkManager无线网络的开关情况
nmcli -p r-- 查看NetworkManager的连接情况
nmcli -p c-- 查看NetworManager的管理设备
nmcli -p d

 2.2、nmcli的使用

  2.2.1、NetworkManager的启用关闭

-- 1、查看NetworkManager是否启用命令(显示enabled表示启用,否则就是禁用)
nmcli n-- 2、启用NetworkManager命令
nmcli n on-- 3、关闭NetworkManager命令(注意该命令一般不要轻易使用,只建议在Linux本机的终端上使用,一旦使用该命令则网络就断开了)
nmcli n off

  2.2.2、nmcli的常用命令

nmcli的常用命令
序号nmcli的常用命令说明
1

nmcli connection

nmcli c

表示查看当前的所有连接信息(包含连接别名、UUID、连接类型、网卡名称)

【nmcli c是nmcli connection的简写】

-- 网络连接有两种状态
1、活跃(带颜色字体):表示当前该connection连接生效;
2、非活跃(正常字体):表示当前该connection连接不生效

2nmcli c -h

表示查看当前连接的帮助命令,可以对网络连接信息进行对应的【查看(show)、上线(up)、下线(down)、添加(add)、修改(modify)、克隆(clone)、编辑(edit)、删除(delete)、监控(monitor)、重载(reload)、导入(import)、导出(export)】操作:

-- 查看网络连接的帮助命令
nmcli c -h-- 查看网络的所有连接信息命令
nmcli c show-- 查看指定网络连接的详情命令(比如:查看ens33连接详情)
nmcli c show ens33

-- 激活指定的连接命令(比如激活ens33连接[对应nmcli c show]命令下的name对应的值,
--【启用用后使用[nmcli c show]命令查看有颜色显示的就是启用的连接】)
nmcli c up ens33-- 停用指定的连接命令(比如激活ens33连接
--【停用后使用[nmcli c show]命令查看无颜色显示的就是停用的连接】)
nmcli c down ens33-- 添加一个新的网络并配置信息命令(【nmcli c add type 网卡类型 con-name 连接名称 ifname 网卡名称 ip4 ip地址 gw4 网关地址 ipv4.dns 域名地址】(但是如果没有对应的网卡是没有办法启动的)nmcli c add type ethernet con-name testcon ifname ens36 ip4 192.168.1.7/24 gw4 192.168.1.1 ipv4.dns 223.5.5.5
-- 修改网络连接中的属性名称(比如修改连接名称testcon为conens36)
nmcli c modify testcon con-name conens36-- 删除一个网络连接命令(比如删除testcon连接)
nmcli c delete testcon-- 重新加载网络的配置文件命令(不会马上生效)
nmcli c reload-- 让修改的网络配置立即生效命令(比如让网络连接ens33立即生效)
nmcli c up ens33

3

nmcli device

nmcli d

表示设备,可理解为实际存在的网卡(包括物理网卡和虚拟网卡)可以简写为【nmcli d】

--网卡有四种状态
1、connected:已被NetworkManager接纳管理,并且当前有活跃的connection连接;
2、disconnected:NetworkManager接纳管理,但是当前没有活跃的connection连接;
3、unmanaged:未被NetworkManager接纳管理;
4、unavailable:不可用,NetworkManager无法接纳管理,通常出现于网卡link为down的时候(比如ip link set ens33 down)
4nmcli d -h

表示查看网卡连接的帮助命令,可以对网卡进行对应的【状态(status)、详情(show)、设置(set)、激活(connect)、刷新(reapply)、修改(modify)、断开(disconnect)、删除(delete)、监控(monitor)】操作

-- 查看所有网卡列表命令
nmcli d-- 查看所有网卡详情命令
nmcli d show-- 查看指定网卡详情(如查看ens33网卡)
nmcli d show ens33-- 激活指定网卡【刷新该网卡对应的活跃connection连接】(如ens33网卡)
nmcli d connect ens33--刷新指定网卡【专门用于刷新connection连接,前提是网卡的device处于connected状态,否则会报错】
nmcli d reapply ens33

在NetworkManager里,有2个维度:连接(connection)和设备(device),这是多对一的关系。想给某个网卡配ip,首先NM要能纳管这个网卡。设备里存在的网卡(即nmcli d可以看到的),就是NetworkManager接纳管理的。接着,可以为一个设备配置多个连接(即nmcli c可以看到的),每个连接可以理解为一个ifcfg配置文件。同一时刻,一个设备只能有一个连接活跃。可以通过nmcli c up切换连接

  2.2.3、nmcli常用命令实战

如下是实现查看常用命令的帮助、修改连接配置内容详细的操作步骤:

-- 查看NetworkManager的连接情况(完整命令是:nmcli connection;简写命令是:nmcli n)
nmcli nnmcli n show--查看指定的连接详情(比如这里查看连接名称为ens33的详情)
nmcli n show ens33--查看编辑指定连接的用法帮助命令【必须使用root用户操作】
nmcli c help--切换到管理员权限的用户操作
su ---编辑制定的连接信息(比如这里编辑ens33的连接信息)
nmcli c edit ens33
-- 查看可使用的命令
?
--进入ipv4选项
goto ipv4
--查看ipv4的操作命令帮助
?
--进入ipv4地址
goto addresses
--先查看当前的ipv4地址
print
--修改ipv4地址
change
--直接将当前显示的内容修改为自己想要的ipv4地址(比如将原来的192.168.1.9/24修改为192.168.1.6/24)
192.168.1.6/24
--返回上一级
back--进入dns
goto dns
--查看当前的dns信息
print
--修改dns
change
--将显示的dns内容修改即可(比如将114.114.114.114修改为223.5.5.5)
223.5.5.5
--返回
back
back--保存修改的内容
save
--激活修改的内容
activate
--直接一步到位的查看与设置网络内容(如:设置ipv4的dns)-- 1、查看nmcli的用法帮助命令
nmcli -h-- 2、查看nmcli c的用法帮助命令
nmcli c -h-- 3、查看nmcli的连接信息命令
nmcli c show-- 4、切换管理员账号进行如下的编辑操作(否则到最后的保存时会提示权限不足错误)
su --- 5、编辑nmcli指定连接的命令(如我这里直接编辑ens33连接)
nmcli c edit ens33-- 6、查看编辑ens33连接的帮助命令
?-- 7、查看goto ipv4包含的所有属性命令(输入goto ipv4.后按下tab键会自动带出)
goto ipv4.-- 8、进行需要修改的属性命令(比如:这里直接进入ipv4的dns属性)
goto ipv4.dns-- 9、查看指定属性的操作帮助命令
?-- 10、查看当前属性的信息
print-- 11、修改当前属性的命令(输入change命令后就可以直接修改显示的内容了)
change-- 12、修改后返回上一级
back
back-- 13、保存修改的连接属性内容
save-- 14、激活修改好的连接
activate-- 15、退出nmcli的编辑模式
quit

 

        注意:这里在使用nmcli对网络信息进行修改的时候必须使用具有管理员权限的账号操作,不然在保存修改配置的时候会提示“错误:保存 "ens33" (9709103d-8f3d-3b0a-9d44-f2e1f1d03e67) 连接失败:Insufficient privileges” 的错误。

 

三、参考资料

3.3. 使用 nmcli 配置 IP 网络 | 网络指南 | Red Hat Enterprise Linux | 7 | Red Hat Documentationhttps://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/7/html/networking_guide/sec-configuring_ip_networking_with_nmcliLinux nmcli 命令 | 菜鸟教程https://www.runoob.com/linux/linux-comm-nmcli.html在 Ubuntu/Debian 上安装和使用 NetworkManager (NMCLI)https://cn.linux-console.net/?p=223641.7. 使用 ncat 工具管理数据 | 网络指南 | Red Hat Enterprise Linux | 7 | Red Hat Documentationhttps://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/7/html/networking_guide/sec-managing_data_using_the_ncat_utility

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++基础之智能指针

一、概念 堆内存对象需要手动使用delete销毁,如果没有使用delete销毁就会造成内存泄漏。 所以C在ISO98标准中引入了智能指针的概念,并在ISO11中趋于完善。 使用智能指针可以让堆内存对象具有栈内存对象的特点,原理是给需要手动回收的内内存对…

python3虚拟机线程切换过程

python实现了自己的多线程,为了保证线程安全,引入了全局解释器锁GIL,只有拿到GIL的线程才能执行,所以在python中同一时刻只能有一个线程在运行,python多线程无法发挥多核处理器的威力,《python源码剖析》中…

PYTHON从入门到实践5-列表操作

# 【1】列表是可变的,可以修改、追加、删除 import randomclass Friend(object):def __init__(self, name, age):self.name nameself.age ageif __name__ __main__:friendList []for i in range(0, 9):randomNumber random.randint(0, 100)friend Friend(f&qu…

【linux】network服务启动网卡流程

目录 1、介绍2、ifup流程【1】与NetworkManager兼容【2】ifup-eth设置ip【3】ifup-routes设置路由 1、介绍 network服务的核心由/etc/sysconfig/network-scripts/下一堆脚本配置来生效,其中启动网卡就是通过ifup脚本来实现的,下面就讲一下ifup如何恢复i…

如何防止自己的电脑被控制?开启二次验证保护教程

远程操作什么最重要?安全,安全,和安全!答案永远是安全!那么究竟如何能让远程连接安全性更上一层台阶呐?又是哪家远控安全策略方面最给力呐?这可不是王婆卖瓜,自卖自夸,确…

微信小程序节点相关总结

微信小程序节点事件总结 bindtap、catchtap、bindclick的区别?bindclick 和 bindtap 的区别在于: e.target和e.currentTargete.typee.timeStamp触摸事件属性(针对触摸类事件)坐标信息事件绑定数据冒泡与捕获相关其他特殊属性**常见…

XSD是什么,与XML关系

XSD(XML Schema Definition)是用于描述XML文档结构和内容的一种规范。它定义了XML文档中元素、属性、数据类型、数据格式以及它们之间的关系和约束。XSD是W3C(万维网联盟)推荐的标准之一,它比早期的DTD(Doc…

Ubuntu服务器中MySQL如何进行主从复制

一、MySQL 主从复制基本原理 MySQL 主从复制是指:一台数据库服务器负责写入操作,并将数据变更以二进制日志形式记录下来;一台或多台从库通过读取主库的二进制日志,实时或半实时地将主库的写入操作同步到自身数据库,实现数据一致性…

Android图形系统框架解析

前言 Android图形系统对于开发者来说可能会比较难以理解,因为涉及的东西可能会计较多,比如Android自己的图形系统。OpenGL,视频编解码器,SurfaceFlinger,FrameBuffer等等。下面我们结合官方文档,介绍一下图…

AI智能巡检系统给烘焙店开的「减损药方」 InfiSight智睿视界

01 食材浪费:甜蜜产业的苦涩成本 后厨操作台上,刚过最佳赏味期的可颂成批倒入垃圾桶——这是烘焙店最隐秘的痛。现烤现售模式虽保障新鲜度,却让原料管理沦为盲区: 销售数据≠生产指南:总部无法感知门店实时库存 …

工具 | vscode 发出声音,如何关闭

设置->搜 accessibility -> Accessibility Support -> 自动 改为 off 设置->搜 volume -> 0 设置->搜 sound -> 辅助功能信号 -> sound的 自动 改为 off 参考: How to turn off (or on) sounds from Visual Studio Code? - Stack Ove…

Hyperf 数据库事务指南(PHP 框架)

Hyperf 数据库事务指南&#xff08;PHP 框架&#xff09; 1. ⚙️ 数据库配置 1.1 配置文件 MySQL 配置位于 config/database.php&#xff0c;通常通过环境变量&#xff08;.env&#xff09;管理敏感信息&#xff1a; <?phpdeclare(strict_types 1); /*** This file i…

动态ds-vnp之normal和shortcut两种方式配置案例

normal方式配置 hub配置 dhcp enable interface GigabitEthernet0/0/0 ip address 3.3.3.3 255.255.255.0 interface GigabitEthernet0/0/1 ip address 192.168.3.254 255.255.255.0 dhcp select interface interface Tunnel0/0/0 ip address 10.1.1.3 255.255.255.0 tunnel…

ubuntu20.04调试livox aiva驱动获取激光雷达数据

实验环境ubuntu20.04 平台包括本地x86平台和jetson orin平台都测试ok 参考 ubuntu20.04上获取Livox Avia雷达点云数据 1.下载相关资料 下载包括&#xff1a;Livox Avia 用户手册中文.pdf、Livox_Viewer_For_Linux_Ubuntu16.04_x64_0.10.0&#xff08;用于显示激光雷达数据&am…

VS2022 C#【自动化文件上传】AutoFileUpload 新需求 V13

这里写自定义目录标题 需求分析实现方法原来&#xff08;需要修改的位置&#xff09;替换为如下代码&#xff08;添加三行数据&#xff09; 需求 现在已有程序&#xff1a;AutoFileUpload 存储excel表中时间列的第一列的列名到数据库中 分析 user只是想存储列名到数据表列去…

技术QA | ADC/DAC芯片测试研讨会笔记请查收!

6月19日&#xff0c;《ADC/DAC芯片测试前沿&#xff1a;德思特ATX系统高效方案与实战攻略》线上研讨会圆满结束。感谢大家的观看与支持&#xff01; 在直播间收到一些观众的技术问题&#xff0c;我们汇总了热点问题并请讲师详细解答&#xff0c;在此整理分享给大家&#xff0c…

区块链技术未来的发展趋势

以下是区块链技术未来的一些发展趋势&#xff1a; 技术层面 - 性能提升&#xff1a;分片技术会不断成熟和完善&#xff0c;将区块链网络划分为多个分片&#xff0c;每个分片独立处理交易&#xff0c;以提高交易吞吐量和网络可扩展性。同时&#xff0c;共识机制也会持续创新&a…

电商领域企业级应用后端开发 (Java) 就业前景深度分析报告 (2025-2030)

目录 一、行业概述与发展趋势 1.1 电商行业发展现状与趋势 1.2 电商技术架构演进与趋势 二、电商领域 Java 开发岗位需求分析 2.1 岗位数量变化趋势 2.2 岗位地域分布特点 2.3 岗位层级与职责变化 三、电商领域 Java 开发人才竞争分析 3.1 人才供需状况 3.2 人才竞争核…

DVWA Brute Force漏洞深度分析与利用指南

DVWA简介 DVWA&#xff08;Damn Vulnerable Web Application&#xff09;是一个基于PHP/MySQL的脆弱性Web应用平台&#xff0c;专为安全专业人员设计&#xff0c;用于测试技能和工具。它包含十大安全模块&#xff0c;其中Brute Force&#xff08;暴力破解&#xff09;是最基础…

【Android】Activity 的生命周期和启动模式

文章目录 Activity 的生命周期和启动模式1. 任务和返回栈2. Activity 的四种状态2.1 运行状态2.2 暂停状态2.3 停止状态2.4 销毁状态 3. Activity的生命周期3.1 生命周期回调方法3.2 演示 Activity 的生命周期 4. Activity的启动模式4.1 standard&#xff08;标准模式&#xff…