所以这就是问题所在.我在同一个网络后面有两台不同的计算机.两者都具有相同的网关,IP地址前缀等.
电脑1:
Windows XP
IP 192.168.0.15
这台计算机可以ping通网络到我想要到达的另一台计算机
电脑2:
Linux(debian)
IP 192.168.0.54
此计算机可以ping通网络外的计算机,但无法跟踪到它.
这让我相信它与防火墙无关,而是与操作系统配置无关.
route命令的输出:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 U 0 0 0 eth0 default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
关于问题可能是什么的任何想法?
解决方法
那是因为Windows和Linux以不同方式实现traceroute.
在Windows上,它使用具有不同生存时间设置的ICMP Echo数据包来计算中间跃点.
在Linux上,它使用具有不同生存时间设置的UDP数据包来计算中间跃点.
有些网络允许一个或两个,或者不允许.允许ICMP但不允许UDP的网络将表现不同. Linux上的Ping使用与Windows相同的ICMP Echo数据包,这解释了为什么它可以工作但不是Traceroute.
此外,不同的traceroute程序表现不同.并非所有的Linux都使用UDP.所以这不是普遍的.