iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >在命令行中如何使用nmcli来管理网络连接
  • 111
分享到

在命令行中如何使用nmcli来管理网络连接

2023-06-15 20:06:28 111人浏览 泡泡鱼
摘要

这篇文章主要介绍在命令行中如何使用nmcli来管理网络连接,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!nmcli 命令赋予你直接在 linux 命令行操作 NetworkManager 工具的能力。nmcli&nb

这篇文章主要介绍在命令行中如何使用nmcli来管理网络连接,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

nmcli 命令赋予你直接在 linux 命令行操作 NetworkManager 工具的能力。

nmcli 命令赋予你直接在 Linux 命令行操作 NetworkManager 工具的能力。它是 NetworkManager 软件包集成的一部分,通过使用一些 应用程序接口(api)来获取 NetworkManager 的功能。

nmcli 发布于 2010 年,用以替代其他配置网络接口和连接的方法,例如 ifconfig。因为它是一个 命令行界面(CLI)工具,被设计用在终端窗口和脚本中,所以对于那些工作在没有 图形用户界面(GUI)的系统的管理员来说,它是一个非常理想的工具。

ncmli 的语法

nmcli 命令可以使用选项来更改它的行为,使用子命令来告诉 nmcli 想使用它的那部分功能,使用操作来告诉 nmcli 你想执行什么操作。

$ nmcli <选项> <子命令> <操作>

nmcli 一共有 8 个子命令,每个子命令有一些相关的网络操作:

  • help 提供有关 nmcli 命令和使用方法的帮助信息

  • general 返回 NetworkManager 的状态和总体配置信息

  • networking 提供命令来查询某个网络连接的状态和启动、禁用连接的功能

  • radio 提供命令来查询某个 WiFi 网络连接的状态和启动、禁用连接的功能

  • monitor 提供命令来监控 NetworkManager 的活动并观察网络连接的状态改变

  • connection 提供命令来启用或禁用网络接口、添加新的连接、删除已有连接等功能

  • device 主要被用于更改与某个设备(例如接口名称)相关联的连接参数或者使用一个已有的连接来连接设备

  • secret 注册 nmcli 来作为一个 NetworkManager 的秘密代理,用以监听秘密信息。这个子命令很少会被用到,因为当连接到网络时,nmcli 会自动做这些事

简单的示例

首先,我们验证一下 NetworkManager 正在运行并且 nmcli 可以与之通信:

$ nmcli generalSTATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    connected  full          enabled  enabled  enabled  enabled

探测总是管理一个系统的首要部分。为了列出内存或磁盘上的网络连接配置,可以使用下面的命令:

$ nmcli connection showNAME                UUID                                  TYPE      DEVICEWired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3Wired connection 2  2279d917-fa02-390c-8603-3083ec5a1d3e  ethernet  enp0s8Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9

上面的命令使用了 connection 子命令中的 show 操作。

用来运行上面这个例子的测试机器上运行着 ubuntu 20.04,它安装了 3 个网络适配器:enp0s3enp0s8和 enp0s9

连接管理

理解 nmcli 的术语是非常重要的。一个网络连接connection包含了一个连接的所有信息。你可以将它看作一个网络配置configuration。“连接”包含了与其相关的所有信息,包括 数据链路层 和 IP 地址信息 。它们是 OSI 网络模型 中的第 2 和第 3 层。

当你在 Linux 上配置网络时,通常来说你是在为某个网络设备(它们是安装在一个电脑中的网络接口)配置连接。当一个连接被某个设备所使用,那么就可以说这个连接被激活active或者上线up了,反之是停用inactive下线down

添加网络连接

nmcli 允许你快速地创建网络连接并同时为该连接指定参数。为了通过使用“有线连接 2” enp0s8 来创建一个新的连接,你可以利用 sudo 来运行下面的命令:

$ sudo nmcli connection add type ethernet ifname enp0s8Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.

其中 type 选项指定需要一个 Ethernet 类型的连接,而 ifname(接口名)选项指定你想要为这个连接使用的网络接口设备。

让我们看看发生了什么变化:

$ nmcli connection showNAME                UUID                                  TYPE      DEVICEWired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3Wired connection 2  2279d917-fa02-390c-8603-3083ec5a1d3e  ethernet  enp0s8Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9ethernet-enp0s8     09d26960-25a0-440f-8b20-c684d7adc2f5  ethernet  --

通过上图可以看到新的连接 ethernet-enp0s8 已经创建好了。它的 通用唯一标识符Universally Unique IDentifier(UUID)也一同被赋予,并且其连接类型为 “Ethernet”。我们可以使用 up 子命令再加上连接名称(或 UUID)来使得这个连接被激活:

$ nmcli connection up ethernet-enp0s8Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

再次查看激活的连接:

$ nmcli connection show --activeNAME                UUID                                  TYPE      DEVICEWired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3ethernet-enp0s8     09d26960-25a0-440f-8b20-c684d7adc2f5  ethernet  enp0s8Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9

可以看到新的连接 ethernet-enp0s8 现在已经被激活了,并且与 enp0s8 网络接口设备绑定。

调整连接

nmcli 命令使得调整现有连接的参数变得更加容易。也许你想将某个网络接口从 动态主机配置协议Dynamic Host Configuration Protocol(DHCP)改为静态 IP 地址。

假设你需要为你的新连接分配一个固定的 IP 地址 192.168.4.26,那么你需要使用两个命令,一个用于设定 IP 地址,另一个用来将获取 IP 地址的方法改为 manual(手动):

$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24$ nmcli connection modify ethernet-enp0s8 ipv4.method manual

记得指定 子网掩码,在我们这个测试的连接中,它是 无类域间路由Classless Inter-Domain Routing(CIDR)中的 255.255.255.0 或 /24

为了使得你的更改生效,你需要通过停止再重新启用该连接。下面的第一个命令是停用该连接,第二个命令则是启用它:

$ nmcli connection down ethernet-enp0s8Connection 'ethernet-enp0s8' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)$ nmcli connection up ethernet-enp0s8Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)

假如你想将连接设置为使用 DHCP,则需要将上面的 manual 改为 auto(自动):

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

设备管理

nmcli 命令中的 device 子命令允许你管理安装在你电脑中的网络接口。

检查设备状态

可以使用下面的命令来快速检查所有网络接口的状态:

$ nmcli device statusDEVICE  TYPE      STATE      CONNECTION        enp0s3  ethernet  connected  Wired connection 1enp0s8  ethernet  connected  ethernet-enp0s8    enp0s9  ethernet  connected  Wired connection 3lo      loopback  unmanaged  --
显示设备详情

为了检查某个网络接口的详情,可以使用 device 子命令中的 show 操作。假如你不提供某个设备的名称,那么会获取并展示所有设备的详情。你可以上下翻动来查看这些信息。

要查看你最近添加的连接所对应的设备 enp0s8,你可以使用下面的命令,请注意验证它使用的 IP 地址是否为先前你要求设置的那个:

$ nmcli device show enp0s8GENERAL.DEVICE:                         enp0s8GENERAL.TYPE:                           ethernetGENERAL.HWADDR:                         08:00:27:81:16:20GENERAL.MTU:                            1500GENERAL.STATE:                          100 (connected)GENERAL.CONNECTION:                     ethernet-enp0s8GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/6WIRED-PROPERTIES.CARRIER:               onIP4.ADDRESS[1]:                         192.168.4.26/24IP4.GATEWAY:                            --IP4.ROUTE[1]:                           dst = 192.168.4.0/24, nh = 0.0.0.0, mt = 103IP6.ADDRESS[1]:                         fe80::6d70:90de:cb83:4491/64IP6.GATEWAY:                            --IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 103IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

上面的输出非常细致,它主要显示了下面这些内容:

  • 网络接口名称,在这个示例中是 enp0s8,它是 udev 分配的

  • 网络连接类型,在这个示例中是物理的 Ethernet 连接

  • 设备的

    媒介访问控制media access control

    Mac)地址,它被用来在网络中识别该设备

  • 最大传输单元,在单个传输中最大协议数据单位的大小,任何大于这个大小的数据将被分为多个包来进行传输

  • 该设备当前已经处于连接状态

  • 这个设备使用的连接名称是 ethernet-enp0s8

  • 这个设备使用的 IP 地址如上面所要求的那样,被设置为 192.168.4.26/24

其他的信息则是与这个设备连接的网络相关的默认路由和网关设置信息。

nmcli 的交互式编辑器

尽管 nmcli 是一个命令行工具,但它还包含一个基本的交互式编辑器,edit 子命令将为你指定的连接打开一个交互式编辑器,例如:

$ nmcli connection edit ethernet-enp0s8

它将显示少量的帮助文字,接着是 nmcli 的命令提示符:

===| nmcli interactive connection editor |=== Editing existing '802-3-ethernet' connection: 'ethernet-enp0s8' Type 'help' or '?' for available commands.Type 'print' to show all the connection properties.Type 'describe [<setting>.<prop>]' for detailed property description. You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxynmcli>

假如你输入 print 然后敲击 Enter 键, nmcli 将列举出与这个接口相关的所有属性。这些属性有很多,你可以上下翻动来查看这个列表:

===============================================================================                 Connection profile details (ethernet-enp0s8)===============================================================================connection.id:                          ethernet-enp0s8connection.uuid:                        09d26960-25a0-440f-8b20-c684d7adc2f5connection.stable-id:                   --connection.type:                        802-3-ethernetconnection.interface-name:              enp0s8connection.autoconnect:                 yesconnection.autoconnect-priority:        0connection.autoconnect-retries:         -1 (default)connection.multi-connect:               0 (default)connection.auth-retries:                -1connection.timestamp:                   1593967212connection.read-only:                   noconnection.permissions:                 --connection.zone:                        --connection.master:                      --connection.slave-type:                  --connection.autoconnect-slaves:          -1 (default)connection.secondaries:                 --

如果你想将你的连接改为 DHCP,则请输入 Goto ipv4 然后敲 Enter 键:

nmcli> goto ipv4You may edit the following properties: method, dns, dns-search, dns-options, dns-priority, addresses, gateway, routes, route-metric, route-table, routing-rules, ignore-auto-routes, ignore-auto-dns, dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-send-hostname, dhcp-hostname, dhcp-fqdn, dhcp-hostname-flags, never-default, may-fail, dad-timeoutnmcli ipv4>

你想改变的属性是 method,再继续敲 set method auto 然后敲 Enter 键:

nmcli ipv4> set method autoDo you also want to clear 'ipv4.addresses'? [yes]:

假如你想让这个连接清除掉这个静态 IP 地址,则请敲 Enter 键,如果要保留,则输入 no 然后敲 Enter 键。假如你想在将来再次使用它,你可以保留这个 IP 地址。即便存储了一个静态的 IP 地址,如果 method 被设置为 auto ,它仍然会使用 DHCP。

最后输入 save 来保存你的更改:

nmcli ipv4> saveConnection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.nmcli ipv4>

输入 quit 来离开 nmcli 的交互式编辑器窗口。假如你不想离开,可以输入 back 来回到最开始的命令行提示符界面,然后继续使用这个编辑器。

nmcli 的更多内容

浏览交互式编辑器,你就可以看到 nmcli 有多少设定和每个设定有多少属性。交互式编辑器是一个简洁的工具,但如果需要在命令行或者在脚本中使用 nmcli,你还是需要使用常规的命令行版本。

以上是“在命令行中如何使用nmcli来管理网络连接”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 在命令行中如何使用nmcli来管理网络连接

本文链接: https://www.lsjlt.com/news/281581.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 在命令行中如何使用nmcli来管理网络连接
    这篇文章主要介绍在命令行中如何使用nmcli来管理网络连接,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!nmcli 命令赋予你直接在 Linux 命令行操作 NetworkManager 工具的能力。nmcli&nb...
    99+
    2023-06-15
  • 【Ubuntu】linux使用nmcli命令来连接Wi-Fi网络
    在Linux系统中,你可以使用nmcli命令来连接Wi-Fi网络。nmcli是NetworkManager的命令行工具,用于管理网络连接。 以下是通过nmcli命令连接Wi-Fi网络的步骤: 打开终端:你可以使用Ctrl+Alt+T快捷键...
    99+
    2023-09-09
    linux ubuntu 网络
  • 如何在RedHat系的Linux中使用nmcli命令管理网络
    本篇内容主要讲解“如何在RedHat系的Linux中使用nmcli命令管理网络”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何在RedHat系的Linux中使用nmcli命令管理网络”吧!Re...
    99+
    2023-06-13
  • Linux中如何使用nmcli命令配置网络
    这篇文章主要介绍Linux中如何使用nmcli命令配置网络,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!nmcli命令是redhat7或者centos7之后的命令,该命令可以完成网卡上所有的配置工作,并且可以写入配置...
    99+
    2023-06-27
  • 如何在CentOS 7中使用nmcli工具管理网络
    nmcli是用于控制NetworkManager和报告网络状态的命令行工具。nmcli用于创建、显示、编辑、删除、激活和停用网络连接,以及控制和显示网络设备状态。基本用法...
    99+
    2023-06-05
  • Linux终端中如何使用Nmcli命令连接WiFi
    小编给大家分享一下Linux终端中如何使用Nmcli命令连接WiFi,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!nmcli命令是redhat7或者centos7...
    99+
    2023-06-27
  • CentOS 7中怎么通过nmcli命令管理网络
    CentOS 7中怎么通过nmcli命令管理网络,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  1、nmcli 用法  # nmcli [ OPTIONS ] OBJEC...
    99+
    2023-06-10
  • 如何在ArchLinux中管理网络连接
    在ArchLinux中,网络连接可以通过命令行工具和图形界面工具来进行管理。 使用命令行工具: 使用ip命令来管理网络接口和路...
    99+
    2024-03-13
    ArchLinux
  • 如何使用netstat和awk命令来统计网络连接数
    小编给大家分享一下如何使用netstat和awk命令来统计网络连接数,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!netstat -n | awk '/^tcp/ {++state[$NF]} END {for(k...
    99+
    2023-06-04
  • 如何在Linux中使用nmcli命令绑定多块网卡
    如何在Linux中使用nmcli命令绑定多块网卡?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。网卡绑定为我们提供了两个主要的好处:现在让我们在 CentOS 7 上配置网卡绑定...
    99+
    2023-06-13
  • 怎么用Linux命令行管理网络
    小编给大家分享一下怎么用Linux命令行管理网络,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!无论你是要下载文件、诊断网络问题、管理网络接口,还是查看网络的统计数...
    99+
    2023-06-16
  • 如何在win7系统中使用DOS命令查看网络连接状况
    这篇文章主要介绍了如何在win7系统中使用DOS命令查看网络连接状况,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。按快捷键“win+R”,输入cmd后按回车进入DOS环境;输...
    99+
    2023-06-14
  • 电脑如何用命令打开网络连接
    这篇文章主要介绍了电脑如何用命令打开网络连接的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇电脑如何用命令打开网络连接文章都会有所收获,下面我们一起来看看吧。方法/步骤:在运行窗口中输入“ncpa.cpl”命令并...
    99+
    2023-06-27
  • 如何在go中使用shell命令来管理文件框架?
    如何在Go中使用Shell命令来管理文件框架? 在Go中使用Shell命令可以让开发者更加方便地管理文件框架。本文将介绍如何在Go中使用Shell命令来实现文件的创建、删除、复制、移动、重命名以及查找等操作。 创建文件 在Go中,我们可...
    99+
    2023-11-10
    文件 框架 shell
  • 网络管理常用命令之Pathping命令使用详解
    Pathping命令是Windows系统中的网络管理工具,它结合了Tracert和Ping命令的功能,可以提供更详细的网络路径信息。...
    99+
    2023-09-13
    详解
  • 如何在ubuntu中使用rdesktop命令连接windows
    本篇文章为大家展示了如何在ubuntu中使用rdesktop命令连接windows,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。默认端口是3389(linux 22 sh)注意:windows 的服...
    99+
    2023-06-13
  • 在Windows2008下如何通过命令行来管理磁盘
      Windows Server 2008的一个特性在于,操作系统的许多方面的功能都可以通过命令行方式进行管理。如果我们在一台带GUI界面的电脑上正好需要定义一个RAID阵列,通常是比较容易实现,在磁盘管理控制台程序重点...
    99+
    2023-05-24
    管理 磁盘 命令 通过 如何 Disk Diskpart 输入 可以 一个 命令行
  • 使用dos命令怎么查看网络连接
    使用dos命令查看网络连接的方法:1.使用组合键“win+R”输入cmd,点击“确定”;2.进入dos窗口;3.执行netstat -a命令查看所有连接;4.执行netstat -n命令查看连接地址和端口号;具体步骤如下:首先,在计算机中使...
    99+
    2024-04-02
  • Ubuntu如何用命令行连网
    Ubuntu用命令行连网的操作方法:使用ifconfig命令查看当前无线对应的接口名是什么。ifconfig再根据无线接口名用iwlist命令去扫描有哪些wifi。#例如接口名:wlp2s0iwlist wlp2s0 scanning | ...
    99+
    2024-04-02
  • 如何使用Linux命令来防御网络攻击
    以下是一些使用Linux命令来防御网络攻击的方法:1. 使用防火墙:使用iptables命令来配置和管理Linux防火墙,可以限制进...
    99+
    2023-10-09
    Linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作