關於ping命令的 I選項的乙個問題

2021-07-14 00:12:05 字數 729 閱讀 9120

在排查網路問題的時候,ping是乙個不可或缺的工具(比ping更不可或缺的是www.baidu.com...),在cisco上,可以指定源ip位址去ping任意ip,但是在linux上指定源ip位址卻並不是那麼直觀。通過ping的manual,發現乙個-i選項,可以從指定網絡卡傳送出去資料報,我天真以為後面攜帶的那個ip位址就是指定的源ip位址了,其實並不是。

通過抓包,發現-i選項後面可以跟乙個ip位址列表,這指定了「源路由選項」,什麼是源路由,請自行google。比如,如果我執行ping 1.1.1.2 -i eth2 1.1.1.1,資料報如下:

極其混亂,不是嗎?目標位址在ip頭里明明是1.1.1.2,但是卻解析成了1.1.1.1。如果執行ping 1.1.1.2 -i eth1 1.1.1.2 10.2.2.4 2.2.2.2,抓包如下:

更加混亂...

實際上,-i選項指定了源路由,wireshark會把-i列表的最後乙個ip位址解析成目標ip展示出來,但是資料報的ip頭里的目標ip,可能並不是這個ip。這極其容易被誤用,特別是對於初學者而言,特別容易搞出一些讓人難以理解的問題,分析來分析去,原來是ping工具實現的不健全導致。cisco的ping就非常好用,我個人的觀點。

Linux下ping命令的常用命令選項

一 ping命令簡介 ping packet internet groper 網際網路包探索器,用於測試網路連線量的程式。ping傳送乙個icmp 回聲請求訊息給目的地並報告是否收到所希望的icmp echo icmp回聲應答 它是用來檢查網路是否通暢或者網路連線速度的命令 ping命令通常用來作為...

發布乙個C編寫的Ping類

cping.h ping.h inte ce for the cping class.if defined afx ping h 2ebf2c11 a0a3 403b 9eb2 1905cff8ee58 included define afx ping h 2ebf2c11 a0a3 403b 9e...

關於PING命令TTL值的理解

關於ttl值 ttl值是生存時間 time to live 的縮寫,ip包被路由器丟棄之前允許通過的最大網段數量。雖然意思是生存時間,但看這個解釋是不是有點讓人摸不清頭腦?好那麼我們可以看看ip資料報,這個ttl值到底是指什麼?結果我幹了一件事就是ping了www.baidu.com的網域名稱,我們...