介绍
在这个实验中,你将学习如何检查你的 Linux 系统中是否存在网络适配器。我们将探讨三种常用的方法来实现这一目标。
首先,你将使用带有 -C network 选项的 lshw 命令来列出网络硬件的详细信息。接下来,你将通过检查 /sys/class/net 目录的内容来验证网络接口是否存在。最后,你将使用 lspci 命令列出 PCI 设备并过滤出网络控制器,这为识别你的网络适配器提供了另一种方法。通过完成这些步骤,你将获得在 Linux 系统上诊断网络硬件是否存在的实用技能。
使用 lshw -C network 检查适配器
在这一步中,我们将探讨如何使用 lshw 命令识别连接到你系统的网络适配器。lshw 代表“list hardware”(列出硬件),是一个用于获取系统硬件配置详细信息的强大工具。
要专门列出网络适配器,我们使用 -C 选项,后面跟上类名 network。
如果终端尚未打开,请打开它。你可以通过点击桌面左侧的 Xfce Terminal 图标来完成此操作。
现在,输入以下命令并按回车键:
sudo lshw -C network
让我们来分解一下这个命令:
sudo:正如我们之前所学,这允许我们以超级用户权限运行命令,访问详细的硬件信息通常需要这样做。lshw:用于列出硬件的命令。-C network:此选项过滤输出,仅显示属于“network”类的设备。
你将看到类似以下的输出(确切的详细信息会根据虚拟机的配置而有所不同):
*-network
description: Ethernet interface
product: Ethernet controller
vendor: Red Hat, Inc.
physical id: 3
bus info: pci@0000:00:03.0
logical name: eth0
version: 00
serial: 52:54:00:xx:xx:xx
size: 1Gbit/s
capacity: 10Gbit/s
width: 32 bits
clock: 66MHz
capabilities: pm bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autoneg negotiated
configuration: autonegotiation=on broadcast=yes driver=virtio_net driverversion=1.0.0 ip=172.18.0.x latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
resources: irq:24 ioport:c040(size=32) memory:fe000000-fe000fff
此输出提供了关于你的网络适配器的大量信息,包括:
description:设备的类型(以太网接口)。product和vendor:硬件的制造商和型号。logical name:操作系统用于此接口的名称(例如eth0)。这对于配置网络设置很重要。serial:网络适配器的 MAC 地址。size和capacity:连接的当前速度和最大能力。configuration:关于此接口当前设置的详细信息,包括如果已分配的 IP 地址。
理解此输出有助于你识别网络接口并解决网络问题。
点击 Continue 进入下一步。
验证 /sys/class/net 中的网络接口
在 Linux 中,/sys 文件系统提供了对内核设备模型的视图。它是一个虚拟文件系统,这意味着其中的文件和目录并非以传统方式存储在磁盘上,而是由内核生成以表示系统信息。
具体来说,/sys/class/net 是一个目录,包含指向系统检测到的所有网络接口的符号链接。这些链接的名称对应于网络接口的逻辑名称,就像我们在上一步中看到的 eth0 一样。
让我们列出这个目录的内容,以查看网络接口。我们将使用 ls 命令,该命令用于列出文件和目录。
在终端中输入以下命令并按回车键:
ls /sys/class/net/
你应该会看到类似以下的输出:
eth0 lo
eth0:这是我们在上一步中使用lshw识别出的以太网接口。lo:这代表“loopback”(回环)接口。它是一个特殊的虚拟接口,计算机使用它与自身进行通信。即使计算机未连接到物理网络,它对于网络软件的正常运行也是必不可少的。
此目录中存在 eth0 和 lo 确认了系统识别这些网络接口。通过这个目录,你可以快速查看系统上有哪些可用的网络接口。
点击 Continue 继续。
使用 lspci 检查硬件
在这一步中,我们将使用 lspci 命令列出连接到你系统的 PCI 设备的信息。PCI(Peripheral Component Interconnect,外围组件互连)是一种标准总线,用于将硬件设备连接到计算机的主板。包括网卡、显卡和存储控制器在内的许多设备都是通过 PCI 或其继任者 PCI Express(PCIe)连接的。
lspci 命令对于快速识别已连接的硬件及其基本信息很有用。
在你的终端中输入以下命令并按回车键:
lspci
你将看到一个 PCI 设备列表。输出大致如下:
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE controller: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:01.2 USB controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Red Hat, Inc. QXL Paravirtual graphic driver
00:03.0 Ethernet controller: Red Hat, Inc. Virtio network device
00:04.0 Communication controller: Red Hat, Inc. Virtio console
00:05.0 SCSI storage controller: Red Hat, Inc. Virtio SCSI
00:06.0 Unclassified device [0000]: Red Hat, Inc. Virtio balloon
00:07.0 Audio device: Intel Corporation 82801AA AC'97 Audio Controller (rev 01)
每一行代表一个 PCI 设备。格式通常为 总线:设备.功能 类别: 厂商 产品。
总线:设备.功能:标识设备在 PCI 总线上的位置。类别:描述设备的类型(例如,主机桥、以太网控制器、VGA 兼容控制器)。厂商和产品:标识设备的制造商和具体型号。
注意显示 Ethernet controller: Red Hat, Inc. Virtio network device 的那一行。这对应于我们使用 lshw 以及在 /sys/class/net 中看到的网络适配器。lspci 从 PCI 总线的角度为你提供了对硬件的不同视角。
你可以结合使用 lspci 和 -v 等选项以获得更详细的输出,或者使用 -nn 以数字格式显示厂商和设备 ID,这对于在网上查找硬件信息很有用。
例如,尝试:
lspci -v
这将提供每个设备的更详细信息。当你查看完详细输出后,按 q 退出。
点击 Continue 完成此实验。
总结
在这个实验中,我们学习了如何使用各种命令行工具来检查 Linux 中是否存在网络适配器。我们首先使用 sudo lshw -C network 命令列出网络接口的详细信息,包括其描述、厂商、产品和配置细节。这个命令能全面概述硬件情况。
接下来,我们探索了 /sys/class/net 目录,该目录为系统上存在的每个网络接口提供了一个符号链接,这是一种快速验证它们是否存在的方法。最后,我们使用 lspci 命令检查 PCI 总线,并通过筛选输出中的“Ethernet controller”或类似描述来识别网络控制器,这为确认网络硬件的存在提供了另一种方法。这些步骤共同展示了在 Linux 环境中识别网络适配器的不同方法。



