traceroute 命令用来检测发出数据包的主机到目标主机之间所经过的网关。它通过设置探测包的 TTL(存活时间)值,跟踪数据包到达目标主机所经过的网关,并监听来自网关 ICMP 的应答。
【实例】在主机 192.168.12.106 中,使用 traceroute 命令探测数据包到达目标 www.qq.com ( http://www.qq.com) 所经过的路由信息。
1) 进行路由跟踪,执行命令如下:
root@kali:~# traceroute www.qq.com
输出信息如下: traceroute to www.qq.com (125.39.52.26), 30 hops max, 60 byte packets
1 localhost (192.168.12.1) 0.297 ms 0.297 ms 0.336 ms
2 localhost (192.168.0.1) 0.971 ms 0.969 ms 0.964 ms
3 1.164.185.183.adsl-pool.sx.cn (183.185.164.1) 4.941 ms 5.173 ms 5.511 ms
4 157.28.26.218.internet.sx.cn (218.26.28.157) 4.554 ms 4.898 ms 5.463 ms
5 237.151.26.218.internet.sx.cn (218.26.151.237) 37.650 ms 85.135.26.218.router-switch.sx.cn (218.26.135.85) 15.346 ms 205.151.26.218.internet.sx.cn (218.26.151.205) 18.777 ms
6 219.158.15.214 (219.158.15.214) 36.378 ms 38.361 ms 38.319 ms
7 * * *
8 no-data (125.39.79.162) 16.932 ms no-data (125.39.79.234) 16.165 ms no-data (125.39.79.166) 16.766 ms
9 * * *
10 * * *
11 * * *
··· #省略其他信息
例如,经过的第 2 个网关的IP地址为 192.168.0.1。其中,为 *** 的记录表示可能被防火墙拦截的 ICMP 的返回信息。
2) 为了验证 traceroute 命令探测数据包,使用 Wireshark 捕获数据包进行查看,如图所示。