最近我发现有些 ping 命令出错了。当有人 ping 我的电脑时,每个数据包TTL
都会显示不同的值。TTL
例如,ping.eu 显示:
--- PING 78.188.216.242 (78.188.216.242) 56(84) bytes of data. ---
64 bytes from 78.188.216.242: icmp_req=1 ttl=112 time=78.7 ms
64 bytes from 78.188.216.242: icmp_req=2 ttl=17 time=78.8 ms
64 bytes from 78.188.216.242: icmp_req=3 ttl=206 time=78.7 ms
64 bytes from 78.188.216.242: icmp_req=4 ttl=212 time=78.7 ms
--- 78.188.216.242 ping statistics ---
packets transmitted 4
received 4
packet loss 0 %
time 3002 ms
--- Round Trip Time (rtt) ---
min 78.734 ms
avg 78.782 ms
max 78.861 ms
mdev 0.050 ms
(有时我也会看到错误。request timed out
)TTL expired
如您所见,每个数据包的TTL
值都不同。这有问题吗?如果是,这是由我的网络配置引起的,还是由我的 ISP 引起的?在这种情况下我该怎么办?
如果重要的话,我会使用带桥接调制解调器WRT54GH
的家用路由器ZyXEL ADLS
,连接三台 Windows 计算机。您可以尝试 ping 我的 IP 地址78.188.216.242
。
答案1
我从美国 ping 您的 IP 地址得到了类似的结果。
当我 ping 81.212.77.58(即您上游的下一跳,我推测这是您的 ISP 的设备)时,每次我都会得到 TTL 为 243 的结果。这显然是错误的。
下一跳上游的行为合理,每次的 TTL 都为 54。
根据这些结果,我强烈怀疑您的 ISP 正在破坏数据包。
答案2
假设您没有自己 ping,则返回的 TTL 是收到的 ping 数据包的 TTL 值。您几乎无法对其进行任何操作。