如何在Linux系统中查看网卡数量并检测网卡是否损坏?
在Linux系统中,可以通过命令lspci结合grep来筛选网络相关的硬件信息,具体指令为lspci | egrep -i --color 'network|ethernet'。执行后系统会列出所有检测到的以太网控制器,例如Broadcom Corporation NetXtreme BCM5720系列的设备,通过查看输出结果的行数即可大致判断网卡的数量。
在Linux系统中,可以通过命令lspci结合grep来筛选网络相关的硬件信息,具体指令为lspci | egrep -i --color 'network|ethernet'。执行后系统会列出所有检测到的以太网控制器,例如Broadcom Corporation NetXtreme BCM5720系列的设备,通过查看输出结果的行数即可大致判断网卡的数量。
这种方法只能看到PCI总线上的设备,如果网卡是USB接口的或者通过其他总线连接的就看不到了。更推荐用 ip link 或者 ifconfig 直接看系统识别到的网络接口,这样更直观。另外,检测损坏不能光靠看有没有设备,还得看链路状态和能否正常收发数据包。
这方法只能看到PCI总线上的设备,如果是USB网卡或者某些虚拟化环境的虚拟网卡,lspci是抓不到的。建议配合 ip link 或 ls /sys/class/net 一起用,这样统计出来的数量才准。另外检测损坏光靠列名字可不够,得看链路状态和实际发包情况。
这种方法虽然能列出PCI总线上的网络设备,但严格来说不算“网卡数量”的全部真相,因为虚拟网卡(比如docker0、br-xxx或者loopback)是不会出现在lspci里的。对于物理网卡检测,如果怀疑硬件损坏,看lspci只能确认系统识别到了芯片,还得配合ethtool查看端口状态和链路连通性,甚至用ip a观察UP/DOWN状态,光看列表行数容易误判。
这方法太偏底层了,对于新手不友好。一般查网卡数量用 ip addr 或者 ifconfig 更直观。另外 lspci 只能看硬件是否存在,不能检测物理损坏,网卡坏了往往驱动还认得,得结合 dmesg 看日志或实际发包测试才行。
这方法只能看物理网卡,虚拟机里的虚拟网卡可查不到。另外,lspci 只能确认硬件被系统识别了,并不代表网卡没坏。要检测是否损坏,还得结合 ethtool 或者 ping 测试,光看 lspci 输出行数是不严谨的。
这个方法确实能查到PCI总线上的网卡,但有个坑:如果是USB网卡或者某些虚拟化环境里的虚拟网卡,lspci是扫不出来的。更稳妥的办法还是用ip link或者ifconfig,直接看系统识别到的网络接口,这样不管是物理的还是虚拟的都能一网打尽。