不同环境上的命令
windows里的是tracert
Linux里的命令是traceroute
路由跟踪traceroute工具说明
Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。
Tracert 工作原理
路由扫描工具的原理都是存活时间(TTL)来实现的。通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert 诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。
Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 traceroute 实用程序中看不到。
Linux下的traceroute和Windows的tracert功能相似,所不同的是Windows的tracert发送的是ICMP报文,Linux的traceroute发送的是UDP数据包。
由于traceroute使用UDP协议,所以其目标端口号默认为33433,一般应用程序都不会用到这个端口,所以目标主机会回送ICMP。
traceroute也支持发送TCP和ICMP:
-I --icmp Use ICMP ECHO for tracerouting -T --tcp Use TCP SYN for tracerouting -p port --port=port
一般的Linux都会默认带有traceroute工具,如果没有可以yum安装一下。
yum install traceroute
traceroute最简单的基本用法是:traceroute hostname,示例:
# traceroute 192.168.0.99 traceroute to 192.168.0.99 (192.168.0.99), 30 hops max, 60 byte packets 1 192.168.2.1 (192.168.2.1) 5.642 ms 5.901 ms 12.287 ms 2 192.168.0.99 (192.168.0.99) 0.416 ms 1.193 ms 1.045 ms
traceroute会对每个节点测试三次,因此每一行会有三个时间,通过这个时间可以分析出哪一个路由节点延时最大。
traceroute使用技巧
--------------------------------------------------------------------------------
用traceroute一些网站时,可能无法到达最终节点,如:
这主要是因为有些服务器把UDP数据包屏蔽了,所以没有返回ICMP。
对于有HTTP服务的主机,可以用参数设置traceroute使用TCP协议进行探测,就可以获得最终节点:
参考资料:
Linux常用网络工具:路由扫描之traceroute:http://www.linuxidc.com/Linux/2015-06/118487.htm
centos6.3如何打开tracert:http://zhidao.baidu.com/question/1495967340545997059.html?fr=iks&word=linux+%B0%B2%D7%B0+tracert&ie=gbk
0 条评论。