
我正在使用以下命令對 Android-2.3 pandaboard (Linaro Build) 和 Linux Mint 12 筆記型電腦執行 ping 操作:
$ 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。
- 我在這裡錯過了什麼?
- 如何檢查我的網路配置是否阻止使用非 64 TTL?
當執行相反的操作時,即從 Android 裝置 ping 我的筆記型電腦,ttl 選項 (-t) 也不會被採用。非常感謝你的幫忙。埃默里克
[編輯]
# 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 二進位。