linux网络相关问题的基本排查方法

发布时间:2019-08-03 23:30:48

linux网络相关问题的基本排查方法

推荐回答

linux网络相关问题的基本排查方法在做linux网络应用中,可能经常会遇到download或upload等失败的时候。那遇到这类问题时,该如何去入手查找问题点呢?下面是结合自己学习过程中总结的一些分析问题的方法,将其记录下来,以备将来需要时可以翻出来看一看。1. 如果网络不通,先用ifconfig检查系统是否正确识别到网络接口(即网卡),sh-# ifconfigeth0 Link encap:Ethernet HWaddr 00:00:00:11:22:33 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:40 Base address:0x2000可以看到,系统已经识别到了eth0。2. 如果能够识别到网卡,那还要从ifconfig的结果里面查看是否有分配IP address,sh-# ifconfigeth0 Link encap:Ethernet HWaddr 00:00:00:11:22:33 inet addr:192.168.102.86 Bcast:192.168.102.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:199 errors:0 dropped:6 overruns:0 frame:0 TX packets:146 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:69472 (67.8 Kb) TX bytes:17706 (17.2 Kb) Interrupt:40 Base address:0x2000如果没有ip address,就要检查一下你的主机是否连网了;如果有分配到ip address,接下来使用ping命令检查是否能ping通其它的主机。3. ping www.google.或者ping 192.168.0.1测试网络的连通性。ping命令通过向destination host发送ICMP ECHO_REQUEST packet来测试两台host之间的连通性。由于ping是网络层协议,所以ping通只能证明网络层及其以下层没有问题,而不能证明其上层如传输层(TCP/UDP)或应用层(FTP/HTTP等)是否有问题。另外一点ping通并不能代表可以连接到internet,因为一个局域网内部的两台host之间也能相互ping通;当然ping www.google.能ping通的话,可以说明你的host可以连接到internet。sh-# ping 192.168.0.1PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.64 bytes from 192.168.0.1: icmp_req=1 ttl=255 time=3.86 ms64 bytes from 192.168.0.1: icmp_req=2 ttl=255 time=17.0 ms64 bytes from 192.168.0.1: icmp_req=3 ttl=255 time=1.90 ms64 bytes from 192.168.0.1: icmp_req=4 ttl=255 time=1.32 ms^C--- 192.168.0.1 ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3027msrtt min/avg/max/mdev = 1.320/6.029/17.031/6.421 mssh-#sh-# ping www.google.PING www.google. (74.125.239.147) 56(84) bytes of data.64 bytes from nuq05s02-in-f19.1e100.net (74.125.239.147): icmp_req=1 ttl=53 time=258 ms64 bytes from nuq05s02-in-f19.1e100.net (74.125.239.147): icmp_req=2 ttl=53 time=244 ms64 bytes from nuq05s02-in-f19.1e100.net (74.125.239.147): icmp_req=3 ttl=53 time=242 ms^C--- www.google. ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2016msrtt min/avg/max/mdev = 242.508/248.524/258.558/7.153 ms3. 所以如果你ping google有成功的话,那接下来可能就需要抓包工具来协助分析问题了。工具之一tcpdump,tcpdump简单讲就是用来dump网络中的数据包:./tcpdump -i eth0 -w ./tcpdump.pcap其中,-i用来指定具体的interface,-w用来指定数据包的存储路径。待解决问题:那当我们抓到了数据包tcpdump.pcap后,如何根据数据包进行分析呢?4. 有时候可能需要对网络性能进行测试,那可以借助另一个工具iperf了,iperf是一个用来测量网络中最大TCP/UDP带宽性能的工具。(1)如果你要测试的是host接收数据的性能比如从某server上download数据,那此时你的host是接收端。a. 将你的PC配置成发送数据端,并且指定报告间隔为1s,测试时间为100s:./iperf.exe -c 192.168.0.111 -i1 -t100,其中-c指定为client mode,所以其后的192.168.0.111为server ip address;-i用来指定报告的时间时间;-t指定测试的时间。b. 接收数据端(此例要配置为server端)要:./iperf -s -i1,其中-s用来指定你的host为server mode。(2)测试host发送数据的性能:./iperf -c 192.168.0.110 -w 64k -i1 -u -b 15M -t600,其中-w指定TCP窗口的大小为64k,-u指定使用udp协议发送数据;-t指定udp带宽为15Mbit/s。
以上问题属网友观点,不代表本站立场,仅供参考!