最直接方式是用ethtool -i 网卡名,可一次性输出驱动名、内核模块版本、固件版本和总线地址;需指定物理网卡名(如ens33),不加-i参数无效。

通过终端命令查看网卡驱动版本
当你需要确认当前加载的网卡驱动是否匹配硬件型号、排查连接异常或准备升级驱动时,必须准确获取驱动模块名称与版本信息。仅靠设备管理器显示的“Realtek RTL8188GU”这类描述无法判断内核实际加载的是哪个驱动模块,更无法得知其编译时间或适配的内核小版本。
按 Ctrl+Alt+T 打开终端→执行 lspci -k -s $(lspci | grep -i "network\|ethernet" | head -n1 | awk '{print $1}') →在输出中找到“Kernel driver in use:”后的内容,例如 【r8188eu_usb_linux】 或 【rtw89pci】;该字段即为当前生效的驱动模块名。
接着输入 modinfo $(lspci -k -s $(lspci | grep -i "network\|ethernet" | head -n1 | awk '{print $1}') | grep "Kernel driver in use:" | awk '{print $5}') →回车后查看“version:”行,如显示 version: v5.12.5.4_34472.20211202,这就是该驱动模块的完整版本号。注意:若输出中无 version 字段,说明该驱动未声明版本,通常为内核原生集成模块(如 r8169),此时需结合 uname -r 判断内核自带驱动的迭代状态。
用 lshw 查看驱动名称与固件版本
此方法适用于需要同时比对驱动名、固件版本和硬件ID的场景,尤其当网卡工作异常但模块已加载时,可快速识别是否为固件不匹配导致。
在终端中运行 sudo lshw -C network →定位到你的无线或有线网卡区块(关注 description 含 “Wireless interface” 或 “Ethernet interface” 的条目)→查找 configuration 行中的 driver=xxx 和 firmware=xxx 字段。
例如输出中出现 configuration: broadcast=yes driver=rtw89pci firmware=N/A latency=0 link=no multicast=yes,说明驱动为 rtw89pci,但固件未加载(firmware=N/A);若 firmware 显示为 fw_version: 0x8852a-220323,则该固件版本必须与驱动源码中 firmware 目录下的 bin 文件严格对应,否则会导致扫描不到WiFi或频繁断连。
检查驱动文件时间戳反推版本归属
某些第三方驱动(如 RTL8188GU 的 rtl8188guwu)不提供 modinfo version 字段,但会把编译时间写入 ko 文件名或注释中。此时可通过文件时间戳辅助判断驱动来源。
先查清驱动模块路径:运行 lsmod | grep -E "(rtl|8188|8852|rtw)" →记下模块名(如 rtl8188guwu)→再执行 find /lib/modules/$(uname -r) -name "*${MODULE_NAME}*.ko" 2>/dev/null,将 ${MODULE_NAME} 替换为实际模块名。
假设返回路径为 /lib/modules/4.19.0-amd64-desktop/kernel/drivers/net/wireless/realtek/rtl8188guwu/rtl8188guwu.ko,则运行 stat /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtl8188guwu/rtl8188guwu.ko | grep Modify →输出类似 Modify: 2025-11-03 14:22:18.000000000 +0800,这个时间点可对应到统信生态官网发布的驱动包更新日志,从而确认是否为最新稳定版。
注意:不要依赖 ls -l 输出的时间,必须用 stat 命令查看 Modify 时间戳,因为部分驱动包在打包时会重置 atime/mtime,只有 stat 中的 Modify 字段真实反映编译时刻。











