通常有时候犯一些低级错误,比如网线没有插上,这时候输入都没有弄好,再去到处找问题为什么没有数据,就会浪费时间,所以首先必须确定客观因素没问题,在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的状态是看不出来啥的