先说几个核心判断:网卡物理固件版本,并非系统内核版本或BIOS版本,它直接决定了网卡在底层信号处理、链路协商和数据传输方面的稳定性。如果排查网络问题时方向错误,很可能浪费了大量时间,而真正的问题源头其实就藏在这几个数字里。
查看网卡固件版本的方法其实很简单——ethtool -i 是Linux下最直接、最可靠的路径,它不依赖内核日志,也不需要硬件扫描,输出字段清晰明了,甚至在单用户模式下也能运行。但前提是,你必须先正确识别出物理网卡。
物理网卡与虚拟接口之间的区别,这里需要先分清楚。使用 ip -br a 或 ls /sys/class/net/ 列出所有接口,然后排除掉 lo、veth*、docker0 这类虚拟设备。常见的物理网卡名称有 ens33、eno1、enp0s3,在较老系统上还可能显示为 eth0。确定接口名称后,执行以下命令:
sudo ethtool -i ens33
输出中最重要的那一行内容如下:
firmware-version: 6.80 0x80003cfb 1.2007.0
这里第一个字段,比如 6.80,就是主固件版本号。Intel官方推荐的基线版本是 ≥6.80;Realtek的常见格式则是 14.5.8 或者 0x80000acf 这类十六进制字符串。请注意,这个版本号并非BIOS/UEFI固件,而是网卡芯片内部自己运行的固件,两者在物理上和逻辑上都是完全独立的。
网卡固件版本显示为空或N/A时的排查方法
如果执行命令后,firmware-version: 后面为空,或者显示 N/A、0.0,先不要怀疑命令没跑对。通常有以下几种原因:
- 驱动本身就不支持读取固件版本,比如某些旧版本
r8169对 RTL8111 的固件访问是禁用状态 - 固件文件根本没有成功加载,dmesg 中大概率能看到
firmware missing或failed to load firmware的提示 - 网卡本身是虚拟设备,例如
vmxnet3、veth,物理固件不存在,ethtool -i不会报错,但该字段就是空的 - PCIe 设备未完成初始化,比如 BIOS 关闭了 ASPM,dmesg 中报
PCIe Bus Error,导致固件被枚举中断
此时需要补查 dmesg 信息:
dmesg | grep -i "ens33|firmware|phy"
如果看到 request_firmware failed,那就基本确定是缺少固件文件。解决办法是去厂商官网下载对应的 .bin 文件,放入 /lib/firmware/ 目录,然后重启驱动模块。
区分主板BIOS固件与网卡固件的关键差异
这是一个非常容易混淆的地方。firmware-version 来自 ethtool -i,只反映网卡芯片(MAC/PHY)的固件。而 dmidecode -t bios 或 cat /sys/class/dmi/id/bios_version 查的是主板BIOS/UEFI固件——两者完全独立。升级BIOS无法解决网卡固件问题,反过来也一样。
在实际排错中,这种混淆经常导致误判:
- 服务器频繁硬重启,有人盯着BIOS版本看,发现很旧,却没注意到
ethtool -i里网卡固件是1.56,而Intel推荐的基线是 ≥6.80 - Realtek网卡link反复 down/up,dmesg里报
PHY reset failed,但BIOS版本是最新的——问题其实出在网卡固件,跟主板毫无关系
判断依据很简单:只要 ethtool -i 输出里有 firmware-version 字段,它就属于网卡本身;其他任何路径下的固件信息都不相关。
部分网卡需安装独立固件包方可查看完整版本
某些厂商,特别是Intel和Broadcom,把固件拆分为独立的二进制文件,并不包含在内核源码中。如果 ethtool -i 显示 firmware-version: 为空,但 driver 字段是正常的(比如 i40e、ixgbe),大概率就是缺少固件包。
不同发行版的安装方式有所差异:
- Debian/Ubuntu:
sudo apt install firmware-intel-sound firmware-misc-nonfree(后者包含多数Intel网卡固件) - RHEL/CentOS:
sudo dnf install linux-firmware - Arch Linux:
sudo pacman -S linux-firmware
安装完成后需要重新加载驱动:
sudo modprobe -r i40e && sudo modprobe i40e
再次运行 ethtool -i,firmware-version 通常就能正常显示了。这里有一个容易被忽略的细节:并非所有发行版默认启用了非自由固件,安装前先确认仓库配置可以省去不少麻烦。

