您当前的位置:首页 > 计算机 > 系统应用 > Linux

linux下网卡链路状态检测方法

时间:02-12来源:作者:点击数:

可用方法:

1、ip addr | grep LOWER_UP

2、ethtool eth0 | grep detect

3、mii-tool -w ethx 这三个命令来查看网线是否插着,并且物理状态是否激活?

问题由来:

遇到外场故障,反馈直接断电更换机柜后一个无线核心网服务器运行不正常,所有基站都无法连接核心网设备。,接显示器发现arp -n,ip neigh list后,发现服务器上没有任何基站的mac地址,ifconfig eth0发现链路是up态。让直连设备,反馈也ping不通,抓包发现arp请求消息没有回,查看网卡eth0的收发都是0,判断网卡故障,建议让dell服务器厂家进行检测,反馈检测网卡正常。判断为更换系统故障,让用户备份数据,准备重装centos系统。等服务人员到达现场发现,客户把网线查到服务器的idrac接口上,而不是eth0口上,改接回来后发现业务正常。

当时ifconfig看eth0是up态,为什么会没有没发现插线呢?显然受了这个命令的误导。

在公司模拟,发现ifconfig无论是否插网线,均显示up态。但断线后仅仅少了running的标志位。

发现用ifconfig,ip addr,ethtool,mii-tool才能检测线路的物理状态。

对比验证:

分别插上网线,拔掉网线用几个命令进行进行对比测试。

插上网线,并点亮网卡灯,通过双工和速率协商后的几个命令显示如下:

Thu Aug 1 16:31:05 CST 2019开始测试链路物理状态

ifconfig eth0

eth0 Link encap:Ethernet HWaddr C8:1F:66:E4:1A:0A

inet6 addr: fe80::ca1f:66ff:fee4:1a0a/64 Scope:Link

UPBROADCASTRUNNINGMULTICAST MTU:1500 Metric:1(网线插上并且点亮状态灯是有running显示)

RX packets:22464301 errors:0 dropped:0 overruns:0 frame:0

TX packets:147296815 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:2475109636 (2.3 GiB) TX bytes:18645815710 (17.3 GiB)

Interrupt:35

ip addr | grep stat

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq stateUPqlen 1000

3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000

4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000

5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000

ethtool eth0 | grep detect

Link detected:yes

Thu Aug 1 16:31:05 CST 2019 开始拔出网线进行几个命令的测试。

NOW pull out the wire plug (拔出网线插头)

现在拔掉网线执行几个命令显示:

ifconfig eth0(发现ifconfig不能测试链路状态,都是up态)

eth0 Link encap:Ethernet HWaddr C8:1F:66:E4:1A:0A

inet6 addr: fe80::ca1f:66ff:fee4:1a0a/64 Scope:Link

UPBROADCAST MULTICAST MTU:1500 Metric:1(拔掉网线后没有running的显示)

RX packets:22464315 errors:0 dropped:0 overruns:0 frame:0

TX packets:147297002 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:2475110672 (2.3 GiB) TX bytes:18645839744 (17.3 GiB)

Interrupt:35

ip addr | grep stat(可以看到链路的物理状态,可以看到状态down,有没有载波的显示)

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN

2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq stateDOWNqlen 1000

3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000

4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000

5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000

ethtool eth0 | grep detect(检测到没有载波)

Link detected:no

NOW pull on the wire plug

mii-tool -w eth0(跟踪物理链路并且激活状态灯,可以看到连接是否在线)

16:31:12 eth0:no link(发现没有连接)

16:31:20 eth0:negotiated 100baseTx-FD, link ok(发现)

测试是可以用ethtool -p eth0来测试网卡,网卡的双灯会一秒一闪。

结论:

ifconfig ethx不可靠,可用ip addr,ethtool ,mil-tool命令来确认。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门