工作中~
分类: LINUX
2008-09-24 09:00:53
我们前面谈到的命令大多数都是针对主机的网络参数设置所需要的,而ping是两台主机之间的回应与否的判断,那么有没有命令可以追踪两台主机之间通过的各个节点(Node)通信状况的好坏呢?如果我们联机到yahoo的速度比平常慢,你觉得是自己的网络环境有问题,还是外部的Internet有问题?如果是前者的话,我们当然需要检查自己的网络环境,看看究竟是谁中毒了?但如果是Internet的问题呢?那只有“等等等”了。判断是这个问题就得要使用traceroute这个命令。
[root@linux ~]# traceroute [-nwig] IP |
这个traceroute挺有意思的,这个命令会针对你想要连接的目的地的所有Router进行ICMP的超时等待,例如上面的例子当中,由鸟哥的主机连接到Yahoo时,它会经过12个节点,traceroute会主动对这12个节点做ICMP的回应等待,并检测回复的时间,每个节点会检测三次。所以像上面显示的结果,发现每个节点其实回复的时间大约在200 ms以内,算是Internet的环境还可以了。而且由上面的信息来看,在61.58.33.133这个节点后的传输延迟较久,至于之前的9个节点则有不错的表现。通过这种分析,可以让你了解到这条联线是哪个环节出了问题。
另外,如果在默认的5秒钟之内traceroute听不到节点的回应,那么屏幕上就会出现一个“*”的符号,告知该节点无法有顺利的响应。由于我们的traceroute用的是ICMP数据包,有些防火墙或者主机可能会将ICMP数据包扔掉,因此就会造成等不到回应的状况。另外,有些Gateway 本来就不支持traceroute的功能,因此也会产生“*”的状况,所以分析时要注意一下。