当我做:
$ traceroute 8.8.8.8
尽管 ping 到 google.com (8.8.8.8) 似乎有效,但我得到的输出仅显示星星。
- 为了解决这个问题,我需要在我的文件/conf 中修复什么?
- 我需要检查什么?
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 规则配置允许这些。