在管理和维护CentOS服务器的过程中,了解服务器所使用的网卡型号是一项基础且至关重要的技能,无论是为了安装特定的驱动程序、排查网络性能瓶颈,还是进行硬件资产盘点,准确识别网卡型号都是第一步,CentOS作为一个稳定且广泛使用的Linux发行版,提供了多种命令行工具来帮助用户获取详细的硬件信息,本文将系统地介绍几种在CentOS系统中查看网卡型号的常用方法,从最直接快捷的命令到更深入的内核信息查询,旨在为不同水平的系统管理员提供一份详尽的参考指南。

使用 lspci 命令查看PCI设备
lspci(List PCI)命令是用于列出系统中所有PCI总线设备信息的标准工具,绝大多数服务器网卡都是通过PCI或PCIe接口连接的,因此这是查看网卡型号最直接、最常用的方法。
基本用法
直接在终端中输入 lspci,系统会列出所有PCI设备的列表,信息非常繁杂,为了快速定位到网卡,我们可以结合 grep 命令进行过滤。
lspci | grep -i ethernet
或者,有些无线网卡或虚拟网卡可能会被归类为“Network”:
lspci | grep -i network
这里的 -i 参数表示忽略大小写,确保能匹配到“Ethernet”或“Network”的各种大小写形式。
输出示例与解读
执行上述命令后,通常会得到类似以下的输出:
02:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
03:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
这行输出包含了丰富的信息:
- 02:00.0:这是设备的PCI地址,由域、总线、设备和功能号组成,是设备的唯一标识符。
- Ethernet controller:设备类型,明确指出这是一个以太网控制器。
- Intel Corporation I350 Gigabit Network Connection:这是最核心的信息,
Intel Corporation是制造商,I350 Gigabit Network Connection则是具体的网卡型号。
获取更详细的信息
如果需要获取更详细的驱动、版本等信息,可以使用 -v(verbose,详细)或 -vv(更详细)参数。
lspci -v | grep -A 10 -i ethernet
-A 10 参数表示显示匹配行及其后10行的内容,这样可以看到该网卡的详细信息块,包括使用的内核驱动模块(Kernel driver in use)、中断号(IRQ)等。

使用 ethtool 命令查询特定网卡
ethtool 是一个强大的工具,用于查询和配置以太网设备,与 lspci 不同,ethtool 作用于网络接口的逻辑名称(如 eth0, ens33),因此需要先知道接口名称。
获取网络接口名称
可以使用 ip 命令或传统的 ifconfig 命令来查看当前系统的网络接口。
ip addr show
或者简写为 ip a,输出会列出所有接口,lo(回环接口)、ens33、eth0 等,找到你想要查询的那个物理网卡接口名。
使用 ethtool 查询驱动信息
使用 -i 参数可以查询指定网络接口的驱动程序信息。
ethtool -i ens33
输出示例与解读
driver: e1000e
version: 3.2.6-k
firmware-version: 0.6-1
expansion-rom-version:
bus-info: 0000:00:19.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
这里的关键信息是:
- driver:
e1000e,这是内核中为该网卡工作的驱动模块名称。 - bus-info:
0000:00:19.0,这是设备的PCI地址,与lspci输出的地址格式一致,通过这个地址,我们可以将逻辑接口ens33与物理设备Intel Corporation ...精确地对应起来。
探究 /sys 虚拟文件系统
Linux内核通过 /sys 这个虚拟文件系统向用户空间暴露硬件和驱动的详细信息,这是一种更底层、更精确的查询方式。
查询路径
网络接口的信息通常存放在 /sys/class/net/ 目录下。

ls /sys/class/net/
这会列出所有网络接口的名称,如 ens33。
每个接口目录下都有一个指向其物理设备的符号链接 device。
ls -l /sys/class/net/ens33/device
输出会显示一个指向 /sys/devices/pci0000:00/0000:00:19.0 的链接,进入这个目录,就可以找到该硬件的详细信息。
cd /sys/class/net/ens33/device cat vendor cat device cat modalias
vendor和device文件会以十六进制的形式显示制造商和设备ID。modalias文件则提供了一个完整的模块别名,包含了设备类别、厂商ID、设备ID等,内核正是通过这个信息来加载正确的驱动模块,你可以将这个ID复制到网上搜索,得到最精确的硬件型号。
方法对比与小编总结
为了更直观地选择合适的方法,下表对上述几种常用方法进行了小编总结:
| 命令/方法 | 主要用途 | 优点 | 缺点 |
|---|---|---|---|
lspci \| grep |
快速查看所有PCI网卡型号 | 简单直接,信息全面,无需知道接口名 | 无法直接看到逻辑接口名与物理设备的对应关系 |
ethtool -i |
查看指定接口的驱动和PCI信息 | 能精确关联逻辑接口与物理设备,显示驱动版本 | 需要先知道网络接口的逻辑名称 |
/sys 文件系统 |
获取最底层的硬件标识符(ID) | 信息最精确,是内核加载驱动的依据 | 操作相对繁琐,需要理解Linux文件系统结构 |
ip addr show |
查看网络接口的逻辑名称和状态 | 获取接口名、IP、MAC地址等网络层信息 | 不直接显示物理网卡型号 |
在实际操作中,通常的组合拳是:先用 ip a 或 ifconfig 确定接口名(如 ens33),然后用 ethtool -i ens33 查看其驱动和PCI地址,最后用 lspci | grep <PCI地址> 来获取完整的硬件型号描述,这种组合方式兼顾了效率和准确性。
相关问答FAQs
为什么 lspci 显示的网卡型号(如 Intel I210)和我用 ethtool -i 看到的驱动名称(如 igb)不一样?
解答: 这是一个非常常见且正常的现象。lspci 显示的是硬件本身的型号,它是由制造商(如Intel)设计和命名的物理实体,而 ethtool -i 显示的 driver 是内核中用来驱动这块硬件的软件模块的名称,一个驱动程序(如 igb)通常是为了支持一个系列或多个型号的Intel网卡而编写的。igb 驱动可能同时支持 Intel I210、I211、I350 等多种千兆网卡,硬件型号和驱动名称不同是常态,它们之间是“设备与驱动”的关系,而不是同一个概念。
lspci 命令完全找不到任何以太网控制器(Ethernet controller)怎么办?
解答: lspci 的输出中没有网卡信息,这通常意味着问题出现在更底层,可以从以下几个方面排查:
- 物理连接:检查网卡是否已牢固地插入主板插槽,对于服务器,可以尝试拔插网卡或更换到另一个PCIe插槽。
- BIOS/UEFI设置:进入服务器的BIOS或UEFI设置界面,检查是否有“Onboard LAN”或类似选项被意外禁用了,如果是独立网卡,检查PCIe插槽是否被禁用。
- 内核识别:服务器启动后,使用
dmesg | grep -i eth或dmesg | grep -i pci命令查看内核启动日志,看是否有关于网卡初始化失败或检测不到设备的错误信息,这有助于判断是硬件故障还是兼容性问题,如果以上步骤都无法解决,很可能是网卡本身硬件损坏或与主板存在严重的兼容性问题。