Linux怎样查看系统的网卡驱动名称

作者:袖梨 2026-06-20
ethtool -i 是最直接的查看方式,可一步输出 driver、version、firmware-version 三项关键信息;必须加 -i 参数,仅用 ethtool 或 --driver 无效;driver 字段为内核加载模块名(如 e1000e、r8169),非芯片型号,且 version 与当前内核强绑定。

ethtool -i 是最直接的查看方式

想立刻知道当前网卡用的是哪个驱动模块,ethtool -i 是唯一能一步到位输出 driver 名称、version、firmware-version 的命令。它不依赖内核日志或硬件扫描,结果明确、可比性强。

常见错误是只输 ethtool ens33 —— 这只会显示链路状态(Speed、Duplex、Link detected),完全不包含驱动信息;ethtool --driver ens33 也无效,参数会被忽略。

  • 先确认物理网卡名:ip -br als /sys/class/net/,排除 loveth*docker0 等非物理接口
  • 典型物理名有:ens33eno1enp0s3eth0(老系统)
  • 执行:ethtool -i ens33,重点看 driver 字段(如 e1000eigbr8169),它代表加载的内核模块名,不是芯片型号

driver 字段和芯片型号不是一回事

driver 输出的是内核模块名,不是硬件型号。比如 Realtek RTL8111 网卡在 Linux 下通常由 r8169 驱动接管,但这个驱动长期存在兼容性问题;换用专版 r8168 后,ethtool -idriver 字段就会变成 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.0driver: 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 列出 r8169r8168 都已加载 → 必须用 ethtool -i 确认哪个正在服务该接口
  • modinfo r8169 可查版本,但无法反映该模块是否真正在运行 —— ethtool -iversion 字段才是真实生效的编译版本

driver version 和内核版本强绑定

ethtool -i 输出的 version 字段(如 5.4.0-k)表示该驱动模块是为特定内核版本编译的。如果你当前运行的是 6.6 内核,却看到 version: 5.4.0-k,说明驱动未随新内核更新,很可能存在兼容风险。

某些驱动(如 r8169)在新版内核中被大幅重构,旧版模块即使能加载,也可能导致 Speed: Unknown!Link detected: no,即使网线插着、交换机端口亮灯。

  • 对比 uname -rethtool -i xxx 中的 version 字段,二者主版本号应一致或接近
  • firmware-version 独立于驱动版本,升级固件需厂商工具,ethtool -i 仅作参考,不提供升级能力
  • supports-eeprom-access: no,说明该驱动禁用了 EEPROM 访问,ethtool -e 必然失败,这不是权限问题,是驱动功能阉割
真正容易被忽略的是:驱动名和芯片名不等价,ethtool -iversion 是运行时真实版本,不是模块源码版本;而 modinfo 查到的只是磁盘上模块文件的元信息。

相关文章

精彩推荐