ping 中的 ttl 选项无法识别

ping 中的 ttl 选项无法识别

我正在使用以下命令通过 Linux Mint 12 笔记本电脑 ping Android-2.3 pandaboard(Linaro Build):

$ ping -c 5 -t 10 192.168.50.200
PING 192.168.50.200 (192.168.50.200) 56(84) bytes of data.
64 bytes from 192.168.50.200: icmp_req=1 ttl=64 time=360 ms
64 bytes from 192.168.50.200: icmp_req=2 ttl=64 time=401 ms
64 bytes from 192.168.50.200: icmp_req=3 ttl=64 time=404 ms
64 bytes from 192.168.50.200: icmp_req=4 ttl=64 time=402 ms
64 bytes from 192.168.50.200: icmp_req=5 ttl=64 time=603 ms

--- 192.168.50.200 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 360.455/434.506/603.300/85.995 ms

虽然我指定了生存时间为 10,但 ping 命令似乎保留了默认的 64 值。

  1. 我在这里错过了什么?
  2. 如何检查我的网络配置没有阻止使用非 64 TTL?

反过来,即从 Android 设备 ping 我的笔记本电脑时,ttl 选项 (-t) 也不会被采用。非常感谢您的帮助。Emeric

[编辑]

# ping -c 10 -t 52 74.125.224.72
PING 74.125.224.72 (74.125.224.72) 56(84) bytes of data.
64 bytes from 74.125.224.72: icmp_seq=1 ttl=52 time=1143 ms
64 bytes from 74.125.224.72: icmp_seq=2 ttl=52 time=81.3 ms
64 bytes from 74.125.224.72: icmp_seq=3 ttl=52 time=80.2 ms
^C
--- 74.125.224.72 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2215ms
rtt min/avg/max/mdev = 80.200/435.170/1143.921/501.162 ms, pipe 2

# ping -c 10 -t 51 74.125.224.72
PING 74.125.224.72 (74.125.224.72) 56(84) bytes of data.
64 bytes from 74.125.224.72: icmp_seq=1 ttl=52 time=78.5 ms
64 bytes from 74.125.224.72: icmp_seq=2 ttl=52 time=78.5 ms
64 bytes from 74.125.224.72: icmp_seq=3 ttl=52 time=81.1 ms
64 bytes from 74.125.224.72: icmp_seq=4 ttl=52 time=78.6 ms
64 bytes from 74.125.224.72: icmp_seq=5 ttl=52 time=84.3 ms
^C
--- 74.125.224.72 ping statistics ---
6 packets transmitted, 5 received, 16% packet loss, time 5556ms
rtt min/avg/max/mdev = 78.507/80.237/84.372/2.290 ms

答案1

在大多数操作系统中,传出流量的 TTL 设置为系统范围参数,并且为所有传出流量设置相同的值。它与 ICMP 响应没有任何关系。

系统需要减少接收 TTL 的唯一情况是将具有重写源地址和目标地址的数据包的精确副本从另一个接口转发出去时,即充当路由器时。ICMP Echo 请求不属于此类。

尽管如此,您可以通过在主机上运行数据包嗅探器并查看传入流量的捕获记录来进行确认,或者如果您的操作系统安装了支持日志记录的防火墙软件,则可以查看防火墙日志。

答案2

pandaboard 运行 busybox 来处理最常见的 shell 命令。这些命令内置于 busybox 二进制文件中,而不是像在传统的 Linux 机器上那样作为单独的可执行文件运行。

busybox ping 命令只有一个子集标准 ping 可执行文件中可用的“适当”选项。

如果您需要 ttl,也许您可​​以安装完整的 ping 二进制文件。

相关内容