Linux检测网卡的基础方法
在Linux系统中,网卡作为设备与网络通信的核心组件,其状态检测是网络管理的基础工作,用户可通过多种命令行工具快速获取网卡信息,包括网卡名称、IP地址、MAC地址、链路状态等,这些方法无需安装额外软件,适用于绝大多数Linux发行版,是系统管理员和开发者的必备技能。

1 使用ip命令查看网卡信息
ip命令是Linux中强大的网络配置工具,取代了传统的ifconfig(在部分新发行版中已默认不安装),通过ip a或ip addr show,可以列出系统中所有网络接口的详细信息,包括接口状态(UP/DOWN)、IP地址(IPv4/IPv6)、MAC地址、子网掩码等。
执行ip a后,输出结果可能如下:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:1a:2b:3c:4d:5e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::21a:2bff:fe3c:4d5e/64 scope link
valid_lft forever preferred_lft forever
eth0是网卡名称,UP表示网卡已启用,BROADCAST和MULTICAST表示支持广播和多播,inet后为IPv4地址,link/ether后为MAC地址,若需查看特定网卡,可使用ip a show eth0。
2 使用ifconfig命令(传统方式)
尽管ifconfig逐渐被ip命令取代,但在CentOS 7等较老发行版中仍可使用,通过ifconfig或ifconfig eth0,可快速查看网卡的IP地址、MAC地址、接收/发送数据包统计等。
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:1a:2b:3c:4d:5e txqueuelen 1000 (Ethernet)
RX packets 12345 bytes 1234567 (1.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6789 bytes 987654 (964.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
注意:ifconfig需安装net-tools包(sudo apt install net-tools或sudo yum install net-tools)。
深入检测网卡状态与链路信息
除了基础信息,还需检测网卡的链路状态(是否连接网线)、速率、双工模式等关键参数,这些信息对排查网络故障至关重要。
1 使用ethtool查看网卡物理状态
ethtool是用于查询和设置网卡参数的工具,可检测网线的连接状态、速率、双工模式等,需先安装ethtool(sudo apt install ethtool或sudo yum install ethtool),然后执行ethtool eth0:

Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Link detected: yes
关键信息包括Speed(速率,如1000Mb/s)、Duplex(双工模式,Full为全双工)、Link detected: yes(表示网线已连接),若Link detected: no,则需检查网线或网卡硬件。
2 使用mii-tool(传统工具)
mii-tool是另一个用于查看网卡链路状态的工具,适用于较老网卡,执行mii-tool eth0:
eth0: 1000baseT-FD flow-control, link ok
输出表示网卡速率为1000Mb/s,全双工模式,链路正常,若显示no link,则表示链路断开。
检测网卡的流量与错误统计
通过分析网卡的流量数据包和错误统计,可判断是否存在网络拥塞、丢包或硬件故障。
1 使用netstat查看网络连接状态
netstat可显示网络连接、路由表、接口统计等信息,通过netstat -i可查看所有网卡的接收(RX)和发送(TX)数据包统计:
Interface Ipkts Ierrs Opkts Oerrs Collis
eth0 1234567 0 67890 0 0
lo 12345 0 12345 0 0
Ipkts为接收数据包数,Ierrs为接收错误数,Opkts为发送数据包数,Oerrs为发送错误数,若错误数持续增长,可能表明网卡或链路存在问题。
2 使用iftop或nethogs实时监控流量
若需实时监控网卡的流量情况,可使用iftop(按带宽排序)或nethogs(按进程排序),安装iftop(sudo apt install iftop),执行iftop -i eth0后,界面会显示实时上传/下载速率、连接的IP地址等信息。nethogs(sudo apt install nethogs)则能定位到占用带宽的具体进程。

高级检测方法:系统日志与硬件信息
当基础工具无法定位问题时,可通过系统日志或硬件信息进一步排查。
1 查看系统日志中的网卡错误
Linux系统日志记录了网卡驱动的加载、错误等信息,通过dmesg | grep -i "eth"或journalctl -u networking -f(systemd系统)可查看相关日志:
[ 1234.567890] e1000e 0000:02:00.0 eth0: (PCI:33MHz:32-bit) 00:1a:2b:3c:4d:5e
[ 1234.678901] e1000e 0000:02:00.0 eth0: detected link partner 1000baseT/Full flow-control
[ 1234.789012] e1000e 0000:02:00.0 eth0: enabling auto-negotiation
若日志中出现“link down”“timeout”等关键词,可能表示网卡硬件故障或驱动问题。
2 检查PCI网卡硬件信息
对于PCI网卡,可通过lspci查看硬件详细信息,执行lspci | grep -i "eth":
02:00.0 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-LM
结合lspci -v -s 02:00.0可查看网卡的详细参数和驱动状态,若驱动未加载或报错,需重新安装驱动。
Linux检测网卡的方法多样,从基础的ip/ifconfig到深入的ethtool/dmesg,可根据需求选择合适的工具,日常维护中,建议定期检查网卡状态、链路连接和流量统计,及时发现并解决网络问题,对于复杂场景,可结合多种工具综合分析,确保网络稳定运行。



















