Linux查看网口是否接上网线

通常有时候犯一些低级错误,比如网线没有插上,这时候输入都没有弄好,再去到处找问题为什么没有数据,就会浪费时间,所以首先必须确定客观因素没问题,在linux下大概可以这样确认数据网口(非通信口)的网线是否插好无误

1:通过ifconfig查看TX

在网口插上了网线之后,假如没有任何数据传输,该网口的TX bytes也会有少量的数据,如:

xge0      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
          inet addr:XX.XX.XX.XX Bcast:XX.XX.XX.XX Mask:255.255.255.0
          inet6 addr: fe80::218:7dff:fe29:bfe1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:468 (468.0 b)

但是也有例外,假如插了网线,但是这个网口是down的,即ifconfig nic down,这时候只有通过ifconfig -a才能看到这个网口,这时候会出现一种情况,网线是插了的,但是这个网口的TX没有数据,但是只要up,立马TX就有数据了;还有一种情况ifconfig查看自己修改过的驱动,见到过ifconfig down的时候,TX没有数据,而up了之后,TX的数据才出现了,之后再down,TX还是会有数据,就这点比较奇怪

言归正传,除了上面这种牵强的方法(因为插上去,拔了还是有数据存在的)之外,还有一种通过ethtool来查看

2:ethtool nic

# ethtool eth1
Settings for eth1:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: Symmetric
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

通过ethtool主要看两项,speed和link detected,网上有人说只需要看link detected是要是yes就行了,最好是结合speed一起看,当然与前面一样,必须网卡处于up的状态,down的状态是看不出来啥的

发表评论