在Linux系统中,查看网卡型号是网络配置、故障排查或硬件升级时的常见需求,由于Linux发行版众多,且网卡硬件类型多样(如Intel、Realtek、Broadcom等),掌握多种查看方法能更高效地获取信息,本文将详细介绍通过命令行和图形界面查看Linux网卡型号的多种方式,并分析不同方法的适用场景和优缺点。
通过命令行工具查看网卡型号
命令行是Linux系统管理的核心方式,通过特定命令可以快速、准确地获取网卡硬件信息,以下是几种常用的命令行方法:
使用 lspci
命令查看PCI网卡信息
lspci
(List PCI Devices)用于列出系统所有PCI设备,网卡通常作为PCIe或PCI设备连接在主板上,因此可通过该命令识别网卡型号。
基本用法:
直接执行 lspci
会列出所有PCI设备,但信息较简略,结合参数可筛选并显示详细信息:
lspci | grep -i "ethernet"
:仅显示以太网控制器(网卡)相关设备。lspci -v
(或lspci --verbose
):显示设备的详细信息,包括驱动、厂商ID等。lspci -nn
(或lspci --numeric-ids
):以数字格式显示厂商和设备ID,便于精准匹配型号。lspci -k
(或lspci --kernel
):显示设备使用的内核驱动模块。
示例输出:
$ lspci | grep -i ethernet 03:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03) $ lspci -nn -k | grep -i ethernet -A 3 03:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1572] (rev 03) Subsystem: Intel Corporation I210 Gigabit Network Connection [8086:1572] Kernel driver in use: igb Kernel modules: igb
解读:输出中 Intel Corporation I210 Gigabit Network Connection
即为网卡型号,[8086:1572]
是厂商和设备ID(8086为Intel厂商ID),igb
是当前使用的驱动模块。
注意事项:
- 若系统未安装
lspci
,可通过包管理器安装(如Ubuntu/Debian用sudo apt install pciutils
,CentOS/RHEL用sudo yum install pciutils
)。 - 对于USB网卡(如外接无线网卡),需使用
lsusb
命令,用法类似(lsusb | grep -i "network"
)。
使用 ethtool
查看网卡详细信息
ethtool
是用于查询和配置网卡参数的工具,不仅能查看速率、双工模式等网络状态,还能显示网卡硬件型号(部分驱动支持)。
基本用法:
ethtool -i <网卡接口名>
:显示网卡驱动的详细信息,包括驱动模块、版本等。ethtool <网卡接口名>
:显示网卡的基本状态,如速率、MAC地址等,部分驱动会包含硬件型号。
示例输出:
$ ethtool -i eth0 driver: igb version: 5.15.0-76-generic firmware-version: 0.6-1 expansion-rom-version: bus-info: 0000:03:00.0 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: yes
若驱动支持,ethtool
可能直接显示型号,但更多情况下需结合 lspci
的结果综合判断。
注意事项:
- 若未安装
ethtool
,可通过sudo apt install ethtool
(Ubuntu/Debian)或sudo yum install ethtool
(CentOS/RHEL)安装。 - 需确保网卡接口已启动(如
ip link set eth0 up
),否则可能无法获取信息。
通过 /proc
文件系统查看网卡信息
Linux内核将硬件信息暴露在 /proc
目录下,通过读取相关文件可直接获取网卡硬件数据。
关键文件:
/proc/net/dev
:列出所有网络接口及其统计信息,包含接口名(如eth0
、ens33
)。/proc/bus/pci/devices
:PCI设备的原始信息,需结合工具解析。/proc/interrupts
:查看网卡中断信息,间接关联硬件型号。
示例操作:
-
从
/proc/net/dev
获取接口名:$ cat /proc/net/dev | grep -E ":|^[^ ]" Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo: 12345 678 0 0 0 0 0 0 12345 678 0 0 0 0 0 0 eth0: 987654 12345 0 0 0 0 0 0 543210 10987 0 0 0 0 0 0
可知网卡接口名为
eth0
。 -
结合
lspci
通过接口名定位硬件:$ lspci -v | grep "03:00.0 - Ethernet controller" 03:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
优点:无需额外安装工具,适合脚本自动化处理。
使用 ip
或 ifconfig
命令辅助定位
ip
(或传统的 ifconfig
)主要用于网络接口管理,但可通过接口名结合其他命令获取硬件信息。
基本用法:
ip link show
:列出所有网络接口及其状态(如eth0
、wlan0
),获取接口名。ifconfig
(需安装net-tools
,Ubuntu/Debian用sudo apt install net-tools
):功能类似ip link show
。
示例输出:
$ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:1c:23:45:67:89 brd ff:ff:ff:ff:ff:ff
获取接口名 eth0
后,再用 lspci
或 ethtool
进一步查询硬件型号。
使用 dmidecode
查看硬件详细信息
dmidecode
(DMI Table Decoder)通过读取主板BIOS中的DMI表(SMBIOS信息),获取硬件的详细信息,包括网卡型号。
基本用法:
sudo dmidecode -t network
:仅显示网卡硬件信息。sudo dmidecode
:显示所有硬件信息,需手动筛选网卡部分。
示例输出:
$ sudo dmidecode -t network Handle 0x0003, DMI type 9, 15 bytes Ethernet Controller Device ID: 1572 Device Name: I210 Gigabit Network Connection Vendor: Intel Corporation Device Locator: PCIe Slot 1 Serial Number: 123456789 MAC Address: 00:1C:23:45:67:89
注意事项:
- 需root权限运行,且BIOS需开启DMI功能(大部分现代主板默认支持)。
- 部分虚拟化环境(如VMware、KVM)可能无法获取完整信息。
通过图形界面工具查看网卡型号
对于不熟悉命令行的用户,Linux图形界面提供了更直观的查看方式,以下是几种常用工具:
使用 lshw
(Hardware Lister)图形界面
lshw
是一款强大的硬件信息查看工具,支持命令行和图形界面(需安装 lshw-gtk
)。
安装与使用:
- Ubuntu/Debian:
sudo apt install lshw-gtk
- CentOS/RHEL:
sudo yum install lshw-gtk
启动后(sudo lshw-gtk
),在左侧列表展开network
或pci
,即可看到网卡型号、驱动等信息。
使用 Hardinfo
(硬件信息工具)
Hardinfo
是一款图形化硬件检测工具,可生成详细的硬件报告,包含网卡信息。
安装与使用:
- Ubuntu/Debian:
sudo apt install hardinfo
- CentOS/RHEL:
sudo yum install hardinfo
启动后选择Computer -> Scan
,扫描完成后在Network
或PCI
分类中查看网卡型号。
系统设置中的网络信息
部分Linux发行版(如Ubuntu的GNOME、Fedora的KDE)在系统设置的网络模块中会显示网卡硬件信息,但通常仅包含接口名和MAC地址,硬件型号需结合其他工具。
不同方法对比
为方便选择,以下通过表格总结各方法的适用场景和优缺点:
方法 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
lspci |
所有PCI/PCIe网卡,需精准硬件ID | 信息全面,支持驱动查询 | 需结合参数筛选,输出需解析 |
ethtool |
已激活的网卡,需驱动和速率信息 | 支持实时状态查询,部分显示型号 | 依赖驱动支持,未激活网卡无效 |
/proc 文件系统 |
脚本自动化,无需额外工具 | 轻量级,适合编程调用 | 信息分散,需手动关联 |
ip/ifconfig |
快速获取接口名,辅助定位 | 命令简单,所有发行版支持 | 仅显示接口信息,需结合其他工具 |
dmidecode |
需BIOS级硬件信息,虚拟化环境 | 信息权威,包含序列号等 | 需root权限,部分环境受限 |
图形界面工具 | 不熟悉命令行的用户 | 直观易用,无需记忆命令 | 功能有限,依赖桌面环境 |
相关问答FAQs
Q1:为什么使用 lspci
查看时只显示 “Ethernet controller” 而没有具体型号?
A:可能原因有二:
- 未安装对应驱动:Linux内核未加载网卡驱动时,
lspci
无法识别具体型号,仅显示设备类型,可通过lspci -nn
查看厂商和设备ID(如[8086:1572]
),然后搜索该ID对应的型号(如Intel 1572对应I210)。 - 参数不完整:未使用
-v
或-nn
参数,建议执行lspci -nn -v | grep -i ethernet -A 3
,获取更详细信息。
Q2:如何查看网卡的硬件地址(MAC地址)和驱动版本?
A:
- MAC地址:
- 命令行:
ip link show <接口名>
(如ip link show eth0
),输出中link/ether
后即为MAC地址; - 图形界面:系统设置 → 网络 → 点击网卡 → 查看详细信息。
- 命令行:
- 驱动版本:
- 命令行:
ethtool -i <接口名>
(如ethtool -i eth0
),driver
为驱动名,version
为驱动版本; - 或
modinfo <驱动名>
(如modinfo igb
),查看驱动的详细版本信息。
- 命令行:
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/34888.html