首页 > Sysadmin > 正文

Linux 查看加装网卡信息:4 条命令

huyuanwen 2026-11-02 Sysadmin

加装新网卡后,用 ip、ethtool、/sys/class/net 和 journalctl 四类命令确认接口、驱动、链路和内核识别状态。

1. 列出当前网卡接口

ip link show 是最直接的入口,输出包含接口名、状态、MAC 地址和 MTU [1]。

ip link show

预期输出里 state UP 表示链路已激活,DOWN 表示未启用或未连接。如果加装后没看到新接口,继续往下看内核日志。

2. 获取接口详细参数

ip -details link show 会显示队列数、GSO/TSO/GRO 上限、父设备等附加字段;ethtool 则给出驱动、速度和链路检测 [2]。

ip -details link show
ethtool -i eth0
ethtool eth0

ethtool -i 输出 driver、bus-info、firmware-version;ethtool <iface> 输出 Speed、Duplex、Link detected。

3. 查看硬件标识

Linux 在 /sys/class/net/<iface>/device/ 下暴露 PCI vendor/device ID 和 modalias,方便比对硬件表 [6]。

ls /sys/class/net/
cat /sys/class/net/eth0/device/vendor
cat /sys/class/net/eth0/device/device

vendor 和 device 是十六进制 PCI ID,可在 PCI ID 数据库或 lspci 中对照 [3]。dmidecode 也能读取 DMI/SMBIOS 表,但在 WSL 和多数容器里受限 [4]。

4. 确认内核是否识别新网卡

加装后如果内核未识别,接口不会出现在 ip link 里。用 journalctl -k 查看启动和热插拔日志。

journalctl -k --no-pager | grep -i -E 'eth|net|vmbus|network|link'

如果看到 hv_netvsc、vmxnet3 或 e1000e 等驱动注册记录,说明内核已认到设备;没看到则需检查物理连接或 BIOS 设置。

排错速查表

现象 原因 处理
ip link 看不到新网卡 内核未加载对应驱动 journalctl -k 查报错,modprobe 尝试加载
接口存在但 state DOWN 网线松动或交换机端口关闭 检查物理链路,ip link set <iface> up
ethtool: Operation not permitted 普通用户权限不足 用 sudo 运行或检查 netlink 权限
dmidecode: Can't read memory 运行在容器或 WSL 里 依赖宿主机 DMI/SMBIOS 暴露,虚拟机通常不可用

回滚/撤销

若需临时关闭网卡再恢复:

sudo ip link set eth0 down
sudo ip link set eth0 up

ip link set down 仅关闭该接口,不影响路由和防火墙规则。

局限性

  • WSL2 虚拟网卡由 hv_netvsc 驱动管理,宿主机 Hyper-V 可见,但 WSL 内部无法直接 ip link add 物理 PCI 设备。
  • dmidecode 和 lspci 在虚拟机或容器中往往受限,硬件信息以 /sys/class/net/<iface>/device/* 为准 [5]。
  • 热插拔网卡时,部分旧内核不会自动触发 netlink 事件,建议人工刷新 ip link show。

附录:实测记录

测试环境:WSL2 (Ubuntu 22.04),内核 6.6.114.1-microsoft-standard-WSL2NAT,单网卡 (eth0, hv_netvsc)。

  • ip link show 正确列出 eth0,state UP。
  • ip -details link show 显示 parentbus vmbus、parentdev。
  • ethtool -i eth0 输出 driver: hv_netvsc,version: 6.6.114.1。
  • ethtool eth0 显示 Speed: 10000Mb/s,Link detected: yes。
  • /sys/class/net/eth0/device/vendor = 0x1414,device = 0x003。
  • journalctl -k 可见 hv_vmbus: registering driver hv_netvsc 记录。
  • dmidecode 因 /dev/mem 不可读报错,符合预期。
  • lspci 未安装(基于文档核查,尚未实际执行安装)。

FAQ

Q: 加装网卡后 ip link 还是只有 lo,怎么办? A: 先 journalctl -k 看内核是否加载了对应驱动;再检查 lsmod | grep <driver>。如果是物理机,确认 BIOS 里网卡未被禁用。

Q: 两块同名接口怎么区分? A: 用 MAC 地址或 PCI bus-info。ip link show 里的 link/ether 和 ethtool -i 里的 bus-info 是唯一标识。

Q: ethtool 显示 Speed 为 Unknown 正常吗? A: 虚拟化环境(如 WSL2、VMware)里可能不报告 negotiated speed,属于预期行为,不代表硬件故障。

Q: 如何批量检查多台机器的网卡信息? A: 用 Ansible 或 SSH 执行 ip -details link show + ethtool -i,把输出按主机名保存即可。lspci 需要在有权限的宿主机上跑。

Q: 网卡驱动版本变了会影响业务吗? A: 如果只是小版本 patch(如 6.6.114.1 → 6.6.120),通常不影响。大版本升级前建议在测试机验证 ethtool 报告的功能集是否一致。


参考资料

文中主要命令已在 WSL Ubuntu(24.04)实测并核对其在 Debian 系与通用发行版的文档口径。