【RedHat9.0】Linux中命令行界面nmcli工具——网络连接失败,解决网卡状态unmanaged实例

问题

  • 网络接口处于unmanaged状态,网络不可达连接失败
    在这里插入图片描述

参考IP地址网络配置的五种方法文章配置网络。

在Settings没有Wired有线网络设置键,右上角也没有结构图标识:

在这里插入图片描述

按照配置网络时的启动命令:

在这里插入图片描述

报错!!!

错误:连接激活失败:未找到适合此连接的设备(设备不可用,因为设备严格不受管理)。

表明nmcli工具未接管网络设置,无法使用该命令将设备启动,那么我们一起了解nmcli工具,解决这个问题吧!!!

(一)RedHat9网络管理方法

Red Hat Enterprise Linux (RHEL) 和许多基于 RHEL 的发行版(如 CentOS)提供了两种主要的网络管理方法:NetworkManager 和传统的 network 服务。但在最新版本的 RHEL(比如 RHEL 7 及以后版本),NetworkManager 已成为推荐的网络管理工具,特别是对于动态网络配置和无线网络管理而言。

  • NetworkManager:是现代 Linux 系统中的默认网络管理工具,它提供了一个统一的工具来管理网络配置,并且支持广泛的网络设备和连接类型,包括有线、无线(Wi-Fi)、移动宽带(如 LTE/3G)、VPN 以及 DSL 连接等。NetworkManager 旨在简化复杂的网络配置和自动化日常网络管理任务。它提供了命令行界面(nmcli)、图形界面(如 GNOME 的网络设置)和文本用户界面(nmtui)。

  • 传统 network 服务:在较旧的 RHEL 版本中(如 RHEL 6 及以前),传统的 network 服务是管理网络配置的标准方法。这种方法依赖于在 /etc/sysconfig/network-scripts/ 目录下编辑配置文件来手动配置网络接口。虽然这种方法在一些特定的服务器环境中仍然有其用歹,但它不如 NetworkManager 灵活,特别是在需要动态配置网络的情况下。

可以看到IP地址网络配置的五种方法这篇文章都用到了NetworkManager和传统network服务这两种网络管理方式来配置网络

(二)NetworkManager 概述

在 Red Hat Enterprise Linux 9中,默认网络服务由 NetworkManager 提供,NetworkManager 是一个动态网络控制和配置守护程序,用于在网络设备和连接可用时保持正常运行和活动状态。仍然支持传统类型的配置文件。

1、使用 NetworkManager 的好处

使用 NetworkManager 的主要好处是:

  • 使网络管理更轻松:NetworkManager 确保网络连接正常工作。当它检测到系统中没有网络配置但有网络设备时,NetworkManager 会创建临时连接以提供连接。
  • 为用户提供轻松的连接设置:NetworkManager 通过不同的工具(GUI、nmtui、nmcli)提供管理。
  • 支持配置灵活性。例如,配置 WiFi 接口时,NetworkManager 会扫描并显示可用的 wifi 网络。您可以选择一个接口,NetworkManager 会在重新启动过程后显示所需的凭据,提供自动连接。NetworkManager 可以配置网络别名、IP 地址、静态路由、DNS 信息和 VPN 连接,以及许多特定于连接的参数。
  • 通过 D-Bus 提供 API,允许应用程序查询和控制网络配置和状态。通过这种方式,应用程序可以通过D-BUS检查或配置网络。
  • 在重新启动过程后维护设备的状态,并接管在重新启动期间设置为托管模式的接口。
  • 处理未显式设置为非托管但由用户或其他网络服务手动控制的设备。

2、管理NetworkManager

  • 默认情况下,NetworkManager 在 Red Hat Enterprise Linux 中安装。如果没有,以 root 用户身份输入:
# yum install NetworkManager
  • 检查 NetworkManager 的状态
# systemctl status NetworkManager
  • 启动 NetworkManager :
# systemctl start NetworkManager
# systemctl stop NetworkManager
  • 在引导时自动启用 NetworkManager;禁止自启 :
# systemctl enable NetworkManager
# systemctl disable NetworkManager

3、 nmcli工具

nmcli (NetworkManager 命令行界面)命令行工具用于控制 NetworkManager 和报告网络状态。

  • nmcli 用于创建、显示、编辑、删除、激活和停用网络连接,以及控制和显示网络设备状态。

(三)nmcli命令

nmcli有四类常用命令:n、g、c、d

1、nmcli networking

  • 显示NetworkManager是否接管网络设置:
# nmcli networking
简写为:
# nmcli n
disabled
  • 查看网络连接状态:
# nmcli n connectivity
简写为:
# nmcli n c
none		#没连网

网络连接状态共有五种:full、limited(连网;但无法上网)、portal(连网,但需要登陆认证后才能上网)、none(没连网)和 unknown。

  • 开启、关闭网络连接:
# nmcli n on		#开启
# nmcli n off		#关闭

2、nmcli general

  • 显示网络状态:
# nmcli general status
简写为:
# nmcli g

命令结果如下:

在这里插入图片描述

其中参数:

STATE 显示网络是否连接;

CONNECTIVITY网络连接状态为full,已连网;

WIFI-HW 表示 WIFI 硬件开关;
WIFI 表示 WIFI 软件开关;

WWAN-HW 表示 WWAN 硬件开关;
WWAN 表示 WWAN 软件开关;

3、nmcli connection

  • 显示所有网络连接的信息:
# nmcli connection show
简写为:
# nmcli c
# nmcli c s -active		#显示当前启动的连接
简写为:
# nmcli c s -a

命令结果如下:

在这里插入图片描述

  • 显示某一设备连接的详细信息(以ens160为例):
# nmcli c s ens160

在这里插入图片描述

  • 启动、关闭指定连接设备:
# nmcli c up ens160		#启动,或者重启
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)

# nmcli c down ens160		#关闭
Connection 'ens160' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)

4、nmcli device

  • 显示所有网络接口设备的状态:
# nmcli device status
简写为:
# nmcli d

命令结果如下:

在这里插入图片描述

显示:

DEVICE(设备):此列列出了网络接口设备的名称。

lo:通常是环回接口,用于设备内部的通信。
ens160:通常是以系统命名约定命名的以太网接口。

TYPE(类型):此列指定了网络接口的类型。

loopback:表示环回接口,用于设备内部的通信。
ethernet:表示以太网接口,用于网络通信。

STATE(状态):此列显示接口的当前状态。

connected (externally):表示环回接口 (lo) 已连接并在外部正常运行。这是环回接口的正常状态。
disconnected:表示以太网接口 (ens160) 未连接到网络。

CONNECTION(连接):此列通常显示与接口关联的网络连接。

lo:表示环回接口 (lo) 连接到自身,符合预期。
–:表示以太网接口 (ens160) 目前没有活动的网络连接。

  • 显示所有设备的详细信息:
# nmcli d show
简写为:
# nmcli d sh
  • 显示某一特定设备的详细信息:
# nmcli d sh ens160
  • 连接设备:
# nmcli d connect ens33 
简写为:
# nmcli d c ens33  

(四)解决报错

在了解nmcli相关命令后,我们一起来输入命令解决

root@localhost ~]# nmcli networking		#查看,未管理网络设置
disabled
[root@localhost ~]# nmcli n connectivity		#未连网
none
[root@localhost ~]# nmcli n on		#开启网络连接,则setting中的Wired设置出现,右上角的结构图标也出现了
[root@localhost ~]# nmcli networking		#查看,已开启nmcli网络连接
enabled
[root@localhost ~]# nmcli n connectivity		#查看连接状态,已连网
full
[root@localhost ~]# nmcli general		#显示网络状态,已连网
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN     METERED      
connected  full          missing  enabled  missing  enabled  no (guessed) 
[root@localhost ~]# nmcli device		#显示所有网络接口状态为connect
DEVICE  TYPE      STATE                   CONNECTION 
ens160  ethernet  connected               ens160     
lo      loopback  connected (externally)  lo   

#如果ens160的网络接口状态不是connect则输入以下命令      
[root@localhost ~]# nmcli c up ens160		#启动,或者重启ens160网络接口设备
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/11)

测试:

在这里插入图片描述

若出现其他问题,可以参考nmcli命令或者参考如下文章自行解决:
[参考文章]:https://zhuanlan.zhihu.com/p/395236748

相关推荐

  1. Linux命令系列:Netcat网络工具

    2024-04-01 21:16:02       53 阅读
  2. Linux关于网络方面常用命令介绍

    2024-04-01 21:16:02       34 阅读
  3. Linux网络命令深度解析与CentOS实践

    2024-04-01 21:16:02       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-01 21:16:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-01 21:16:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-01 21:16:02       87 阅读
  4. Python语言-面向对象

    2024-04-01 21:16:02       96 阅读

热门阅读

  1. ARM架构在云计算的发展前景

    2024-04-01 21:16:02       37 阅读
  2. python转换视频格式为mp4

    2024-04-01 21:16:02       33 阅读
  3. 单例设计模式(2)

    2024-04-01 21:16:02       30 阅读
  4. 微信小程序(黑马优购:商品列表)

    2024-04-01 21:16:02       43 阅读
  5. 使用gradle离线编译ES 8.11

    2024-04-01 21:16:02       41 阅读