Traceroute 只给出星星+如何修复

Traceroute 只给出星星+如何修复

当我做:

  $ traceroute 8.8.8.8

尽管 ping 到 google.com (8.8.8.8) 似乎有效,但我得到的输出仅显示星星。

  1. 为了解决这个问题,我需要在我的文件/conf 中修复什么?
  2. 我需要检查什么?

Ping 命令输出

    $ ping 8.8.8.8
    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
    64 bytes from 8.8.8.8: icmp_seq=1 ttl=46 time=73.4 ms
    64 bytes from 8.8.8.8: icmp_seq=2 ttl=46 time=69.6 ms

跟踪路由命令输出

 $ traceroute 8.8.8.8
 traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
 10  * * *
 11  * * *
 12  * * *
 13  * * *
  14  * * *
 15  * * *
 16  * * *
 17  * * *
 18  * * *
 19  * * *
 20  * * *
 21  * * *
 22  * * *
 23  * * *
 24  * * *
 25  * * *
 26  * * *
 27  * * *
 28  * * *
 29  * * *
 30  * * *

答案1

我发现这traceroute -I给了我更完整的结果。

-I, --icmp
      Use ICMP ECHO for probes

答案2

您看到的星号是您的数据包路由所经过的服务器,该服务器超时(5.0 秒以上),因此traceroute默认打印 *.

笔记:手册页中甚至有关于此的警告traceroute

摘抄

在现代网络环境中,由于防火墙的广泛使用,传统的traceroute方法并不总是适用。此类防火墙会过滤“不太可能”的 UDP 端口,甚至 ICMP 回显。为了解决这个问题,实现了一些额外的跟踪路由方法(包括 tcp),请参阅下面的可用方法列表。此类方法尝试使用特定的协议和源/目标端口,以绕过防火墙(防火墙将其视为允许的网络会话类型的开始)。

大多数防火墙会阻止 TCP/80(Web 流量的默认 IP 端口)以外的端口上的出站流量。traceroute在Linux中默认使用UDP,ping使用ICMP,所以作为你的输出,似乎ICMP数据包在你的防火墙中被允许,而UDP数据包被防火墙阻止。

您可以看到对我的问题的答复,标题为:来自学校网络的路由跟踪和 ping

编辑#1

根据评论,如果这在另一台 RHEL 机器上工作而在这台 RHEL 机器上不起作用,我建议执行以下步骤。

从工作的 RHEL 计算机(计算机 A)中复制该/etc/sysconfig/iptables文件。在有故障的 RHEL 机器(机器 B)中,将原始/etc/sysconfig/iptables文件复制到类似/etc/sysconfig/iptables.original.

$ cp /etc/sysconfig/iptables /etc/sysconfig/iptables.original

此步骤只是为了确保如果我们的设置出现问题,我们可以恢复到原始状态。现在,将文件/etc/sysconfig/iptables从机器 A 复制到机器 B。

答案3

您运行测试的计算机或您的本地网关(路由器)正在阻止 UDP 或 ICMP。确保您的防火墙/NAT 规则配置允许这些。

相关内容