Chinaunix首页 | 论坛 | 博客
  • 博客访问: 580069
  • 博文数量: 142
  • 博客积分: 10016
  • 博客等级: 上将
  • 技术积分: 1835
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-10 14:30
个人简介

工作中~

文章分类

全部博文(142)

文章存档

2009年(25)

2008年(117)

我的朋友

分类: LINUX

2008-09-24 09:00:53

摘自鸟哥的私房菜

我们前面谈到的命令大多数都是针对主机的网络参数设置所需要的,而ping是两台主机之间的回应与否的判断,那么有没有命令可以追踪两台主机之间通过的各个节点(Node)通信状况的好坏呢?如果我们联机到yahoo的速度比平常慢,你觉得是自己的网络环境有问题,还是外部的Internet有问题?如果是前者的话,我们当然需要检查自己的网络环境,看看究竟是谁中毒了?但如果是Internet的问题呢?那只有“等等等”了。判断是这个问题就得要使用traceroute这个命令。

[root@linux ~]# traceroute [-nwig] IP
参数:
-n,可以不必进行主机的名称解析,只用 IP ,速度较快。
-w,若对方主机在几秒钟内没有回声就宣告不治...默认是 5 秒。
-i,用在比较复杂的环境,如果你的网络接口很多很复杂时,才会用到这个参数。
例如,你有两条 ADSL 可以连接到外部,那你的主机会有两个 ppp。
你可以使用 -i 来选择是 ppp0 还是 ppp1 啦。
-g,与 -i 的参数相仿,只是 -g 后面接的是 gateway 的 IP 。

范例一:
[root@linux ~]# traceroute -n tw.yahoo.com
traceroute to tw.yahoo-ap1.akadns.net (203.84.202.164), 30 hops max,
38 byte packets
1 61.59.121.1 42.174 ms 41.690 ms 41.058 ms
2 139.175.172.2 40.962 ms 41.978 ms 40.973 ms
3 192.72.122.130 40.983 ms 41.930 ms 41.003 ms
4 139.175.58.210 42.956 ms 41.997 ms 42.337 ms
5 139.175.58.153 47.591 ms 47.972 ms 48.748 ms
6 139.175.56.30 48.193 ms 47.970 ms 47.986 ms
7 139.175.57.94 47.959 ms 47.951 ms 47.985 ms
8 139.175.56.138 48.363 ms 47.586 ms 47.995 ms
9 139.175.58.42 49.256 ms 50.668 ms 47.490 ms
10 61.58.33.133 201.882 ms 201.565 ms 200.973 ms
11 61.58.33.50 199.910 ms 199.019 ms 198.961 ms
12 203.84.200.226 202.391 ms 202.567 ms 209.283 ms

这个traceroute挺有意思的,这个命令会针对你想要连接的目的地的所有Router进行ICMP的超时等待,例如上面的例子当中,由鸟哥的主机连接到Yahoo时,它会经过12个节点,traceroute会主动对这12个节点做ICMP的回应等待,并检测回复的时间,每个节点会检测三次。所以像上面显示的结果,发现每个节点其实回复的时间大约在200 ms以内,算是Internet的环境还可以了。而且由上面的信息来看,在61.58.33.133这个节点后的传输延迟较久,至于之前的9个节点则有不错的表现。通过这种分析,可以让你了解到这条联线是哪个环节出了问题。

另外,如果在默认的5秒钟之内traceroute听不到节点的回应,那么屏幕上就会出现一个“*”的符号,告知该节点无法有顺利的响应。由于我们的traceroute用的是ICMP数据包,有些防火墙或者主机可能会将ICMP数据包扔掉,因此就会造成等不到回应的状况。另外,有些Gateway 本来就不支持traceroute的功能,因此也会产生“*”的状况,所以分析时要注意一下。


阅读(942) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~