Traceroute(使用 TCP)不会捕获收到的 ICMP 响应

Traceroute(使用 TCP)不会捕获收到的 ICMP 响应

系统:Fedora 21

问题:实际上已经很好地描述了这里但不幸的是,没有任何解释为什么 TCP 的跟踪路由不显示 ICMP 响应,并且使用其他工具而不是跟踪路由(对我来说不满意)的解决方案。

使用 ICMP 或 UDP 发送跟踪路由工作正常:

跟踪路由-I www.here.com

traceroute to www.here.com (54.230.156.129), 30 hops max, 60 byte packets
 1  192.168.178.1 (192.168.178.1)  6.565 ms  8.483 ms  21.137 ms
 2  ppp-default.m-online.net (82.135.16.28)  34.677 ms  37.296 ms  37.495 ms
 3  ae2.rt-decix-2.m-online.net (82.135.16.209)  44.127 ms  45.428 ms  46.566 
...

跟踪路由 -U -p 53 www.here.com

traceroute to www.here.com (54.230.156.9), 30 hops max, 60 byte packets
 1  192.168.178.1 (192.168.178.1)  2.275 ms  7.949 ms  8.842 ms
 2  ppp-default.m-online.net (82.135.16.28)  36.303 ms  37.817 ms  38.685 ms
 3  ae2.rt-decix-2.m-online.net (82.135.16.209)  46.860 ms  47.964 ms  48.778 ms
 ...

但是,TCP Traceroute 不显示任何结果:

跟踪路由 -T -p 443 www.here.com

traceroute to www.here.com (54.230.156.9), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *

奇怪的是,在(wireshark)跟踪中可以看到 ICMP DU 响应:

线鲨

我正在检查 iptables DROP 和 REJECT 规则计数器,它们没有改变,所以我猜 iptables 可以被排除......

[编辑] 刷新 iptables 也没有显示出任何改进,也没有为回复 IP 添加 INPUT 规则。计数器显示使用了这些 ACCEPT 规则,因此可以排除 iptables 作为此问题的根源

> Chain INPUT (policy ACCEPT 180 packets, 39653 bytes)
>  pkts bytes target     prot opt in     out     source               destination
>     3   168 ACCEPT     all  --  *      *       82.135.16.28         0.0.0.0/0
>     3   264 ACCEPT     all  --  *      *       192.168.178.1        0.0.0.0/0

有人可以给我一些关于如何调试这个问题的提示,甚至从头到尾知道问题是什么吗?

答案1

不满意的解决方案:重新启动

我上次重新启动是很久以前的事了,因为我定期更新系统,所以我猜这导致了错误行为。我对更新后重新启动系统的建议有一个模糊的记忆,因为它们可能会修改库,这可能会导致仍在旧版本的 RAM 中运行的二进制文件出现错误行为。

调试这个并理解发生了什么仍然是有趣和有教育意义的。

相关内容