服务器测评网
我们一直在努力

Linux下如何检测网卡状态及驱动加载情况?

Linux检测网卡的基础方法

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

Linux下如何检测网卡状态及驱动加载情况?

1 使用ip命令查看网卡信息

ip命令是Linux中强大的网络配置工具,取代了传统的ifconfig(在部分新发行版中已默认不安装),通过ip aip 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表示网卡已启用,BROADCASTMULTICAST表示支持广播和多播,inet后为IPv4地址,link/ether后为MAC地址,若需查看特定网卡,可使用ip a show eth0

2 使用ifconfig命令(传统方式)

尽管ifconfig逐渐被ip命令取代,但在CentOS 7等较老发行版中仍可使用,通过ifconfigifconfig 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-toolssudo yum install net-tools)。

深入检测网卡状态与链路信息

除了基础信息,还需检测网卡的链路状态(是否连接网线)、速率、双工模式等关键参数,这些信息对排查网络故障至关重要。

1 使用ethtool查看网卡物理状态

ethtool是用于查询和设置网卡参数的工具,可检测网线的连接状态、速率、双工模式等,需先安装ethtoolsudo apt install ethtoolsudo yum install ethtool),然后执行ethtool eth0

Linux下如何检测网卡状态及驱动加载情况?

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 使用iftopnethogs实时监控流量

若需实时监控网卡的流量情况,可使用iftop(按带宽排序)或nethogs(按进程排序),安装iftopsudo apt install iftop),执行iftop -i eth0后,界面会显示实时上传/下载速率、连接的IP地址等信息。nethogssudo apt install nethogs)则能定位到占用带宽的具体进程。

Linux下如何检测网卡状态及驱动加载情况?

高级检测方法:系统日志与硬件信息

当基础工具无法定位问题时,可通过系统日志或硬件信息进一步排查。

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,可根据需求选择合适的工具,日常维护中,建议定期检查网卡状态、链路连接和流量统计,及时发现并解决网络问题,对于复杂场景,可结合多种工具综合分析,确保网络稳定运行。

赞(0)
未经允许不得转载:好主机测评网 » Linux下如何检测网卡状态及驱动加载情况?