为什么traceroute不起作用

我有一些关于为什么traceroute在某些情况下不起作用的问题。 虽然我理解它是如何工作的,但我无法弄清楚一些问题。 喜欢,

$traceroute www.google.com 1 * * * 2 * * * ...... 

有 '*'。 当我使用ICMP代替UDP时,我得到了下面的内容:

 $traceroute www.google.com -I 1 * * * 2 * * * 3 222.42.254.130 (222.42.254.130) 7.980 ms 10.785 ms 4.920 ms 4 222.42.254.129 (222.42.254.129) 4.363 ms 8.141 ms 5.849 ms 5 bogon (10.2.1.1) 7.957 ms 7.787 ms 8.321 ms 6 61.237.121.97 (61.237.121.97) 25.341 ms 24.895 ms 28.725 ms 7 61.237.123.66 (61.237.123.66) 23.738 ms 24.172 ms 23.916 ms 8 221.4.120.173 (221.4.120.173) 23.096 ms 24.539 ms 20.827 ms 9 221.4.6.61 (221.4.6.61) 58.516 ms 60.035 ms 63.200 ms 10 120.80.0.73 (120.80.0.73) 60.991 ms 59.520 ms 59.853 ms 11 219.158.19.69 (219.158.19.69) 59.771 ms 59.192 ms 59.072 ms 12 219.158.22.249 (219.158.22.249) 89.185 ms 87.928 ms 89.582 ms 13 219.158.22.158 (219.158.22.158) 102.195 ms 103.409 ms 106.153 ms 14 219.158.35.114 (219.158.35.114) 218.816 ms 224.845 ms 218.470 ms 15 203.208.62.15 (203.208.62.15) 212.560 ms 208.640 ms * 16 chrome.google.com (203.208.46.1) 210.655 ms * 216.369 ms 

我想知道为什么第一跳和第二跳还不得而知。 我试图用-z 500设置icmp速率,但是没用。 所以我的问题如下:

  1. 为什么我在使用ICMP时会跳跃?
  2. 我怎样才能得到前两跳?

我已经find了,但我什么都没有用。 我通过一条没有任何防火墙的路线连接到互联网。 感谢您的帮助。

由于Traceroute基于ICMP Echo请求,因此您似乎将前两条路线(可能是您自己的本地防火墙)configuration为丢弃/阻止ICMP回应请求。 这就是为什么Traceroute无法看到前两者的实际响应,而是超出了这一点。

第一跳是你通往互联网的门户,你可以看到netstat -rn

第二跳是你的提供商的网关,如果你碰巧有一个Fritzbox的东西,你可以看到那里的IP地址。

为了完成下一步发现,您可以使用另一个工具:hping。 正如弗兰克之前的回应所解释的那样,可能有防火墙或路由器会丢弃这种ICMP消息。

例如,您可以将此命令用于第一个下一个跃点:

 hping www.google.com -p 86 -S -t 1 

另外这个看第二个:

 hping www.google.com -p 86 -S -t 2