想要查看 Linux 网卡驱动信息,最高效的方式就是使用 ethtool -i 命令——只需一行指令,就能获取 driver 名称、version、firmware-version 这三项核心参数,结果直观且便于对比。相比依赖内核日志或硬件扫描的传统方法,它更加轻量、精准。但需要注意一个关键细节:必须加上 -i 参数。如果只输入 ethtool ens33,显示的全部是链路状态信息(如 Speed、Duplex、Link detected),与驱动信息毫无关系;ethtool --driver ens33 同样无法生效,系统会忽略该参数。
因此,在操作前请先确认物理网卡名称:运行 ip -br a 或 ls /sys/class/net/,排除掉 lo、veth*、docker0 等非物理接口。常见的物理网卡名包括 ens33、eno1、enp0s3,较老的系统则可能是 eth0。确认后执行 ethtool -i ens33,重点关注 driver 字段——它显示的是当前内核加载的模块名称(例如 e1000e、igb、r8169),而非芯片型号,这一点在后续内容中会反复强调。

ethtool -i 是查看网卡驱动最直接的方法
ethtool -i 可以一次性输出 driver 名称、version、firmware-version,这种效率是其他命令难以比拟的。常见误操作是只输入 ethtool ens33——这样只会显示 Speed、Duplex、Link detected 等链路参数,与驱动信息无关;ethtool --driver ens33 同样无效,参数会被直接忽略。
- 先确认物理网卡名:使用
ip -br a或ls /sys/class/net/,排除lo、veth*、docker0等非物理接口 - 典型物理网卡名有:
ens33、eno1、enp0s3、eth0(老系统) - 执行命令:
ethtool -i ens33,重点查看driver字段(例如e1000e、igb、r8169),它代表已加载的内核模块名,并非芯片型号
driver 字段与芯片型号并非同一概念
driver 输出的是内核模块名称,而不是硬件型号。举例来说:Realtek RTL8111 网卡在 Linux 下通常由 r8169 驱动接管,但该驱动长期存在兼容性问题。如果换用专用版本 r8168,ethtool -i 中的 driver 字段就会变为 r8168,同时 rx_missed_errors 这类异常也会随之消失。另外,如果你看到 driver: forcedeth,但运行 dmesg | grep forcedeth 时出现 ignoring PHY interrupt,说明驱动已放弃对物理层的管理——此时使用 ethtool -s 强制设定速率很可能会失败。
- Intel X710 显示
driver: i40e→ 支持完整诊断功能(ethtool -t、-e) - VMware 虚拟网卡显示
driver: vmxnet3→ 不经过 PHY 协商,ethtool -s speed会直接报错 bus-info: 0000:02:00.0且driver: ixgbe→ 基本可以确定是万兆独立网卡
为什么不能仅依赖 lspci 或 lsmod
lspci | grep -i ethernet 只能显示硬件型号和 PCI 地址,无法确认当前实际加载的是哪个驱动;lsmod | grep -i network 会列出所有网络相关模块,但你无法知道哪个模块被绑定到具体网卡上。lspci -k 是一个折中方案,它会在每个设备条目下显示 Kernel driver in use:,但输出内容冗长、需要人工匹配设备与接口,而且对 USB 网卡或某些虚拟化场景并不适用。
lspci -k中看到Kernel driver in use: r8169,但ethtool -i ens33显示driver: e1000e→ 说明接口名对应关系有误,可能绑定了错误的设备lsmod列出r8169和r8168都已加载 → 必须通过ethtool -i确认哪个驱动正在服务该接口modinfo r8169可以查询版本信息,但无法反映该模块是否真正在运行 ——ethtool -i中的version字段才是实际生效的编译版本
driver version 与内核版本紧密关联
ethtool -i 输出的 version 字段(例如 5.4.0-k)表示该驱动模块是针对特定内核版本编译的。如果你当前运行的是 6.6 内核,却看到 version: 5.4.0-k,说明驱动未随新内核更新,可能存在兼容性风险。某些驱动(如 r8169)在新版内核中经历了大幅重构,旧版模块即使能加载,也可能导致 Speed: Unknown! 或 Link detected: no,即使网线已插好、交换机端口指示灯正常。
- 对比
uname -r与ethtool -i xxx中的version字段,二者主版本号应一致或接近 firmware-version独立于驱动版本,升级固件需要使用厂商提供的工具,ethtool -i仅作参考,不具备升级能力- 若
supports-eeprom-access: no,说明该驱动禁用了 EEPROM 访问,ethtool -e必然失败,这不是权限问题,而是驱动功能上的限制
真正容易被忽略的是:驱动名和芯片名并不等价,ethtool -i 中的 version 是运行时真实版本,而非模块源码版本;而 modinfo 查到的只是磁盘上模块文件的元信息。
