Ping 、 TCPing、 traceroute

轉載來自:https://jzgkchina.com/node/1005

Ping 命令

Ping 命令,是一個基於網絡層 (比傳輸層還底層) 的 ICMP(Internet Control Message Protocol) 協議的命 令,主要用於檢測和目標主機之間的網絡是否通暢,以及網絡的延時。Ping 命令的使用非常簡單,開始, 運行,cmd,回車,打開命令提示符 ( linux 用戶應該不需要教你們怎麼打開 terminal),“ping IP 地址”,或者 “ping 網站域名”。Ping 命令的解讀實在太人性化了,也沒必要再解釋了。 

ping 命令我們一般很少加別的參數運行,windows 下默認 ping 只運行 4 次,加上參數 “-t” 後可以讓 命令持續運行,直到我們手工停止。 

但是前幾年,有一種很流行的網絡攻擊手段就是利用 ping 命令進行的,所以很多主機現在都會在防火牆規則裏禁止 ping 響應,即使你可以訪問網站也未必就可以 ping 通。

這種情況下我們可以利用另一個 tcping 工具,通過對遠程服務器的 TCP 端口的通暢與否進行檢測,來判斷網絡的暢通。tcping 在 windows 和 linux 系統中都不是內建的命令,需要我們自己去下載,TCPING 的官方網站在這裏。 

TCPing 命令

TCPing 的命令參數和使用方法和 Ping 很相似,主要的區別是 Ping 是通過既有的 ICMP 協議進行,而 TCPing 是通過 TCP 協議進行,所以可以再最後加入一個端口參數,對服務器的不同端口進行探測,例如 網頁服務器默認是探測 80 端口 (不指定端口時默認就是 80),而郵件服務器可以探測 SMTP 的 25 端口。 基本上對於一個網站來說,80 端口是不可能關閉的,所以我們一般會用 TCPing 來代替 Ping 對本地 到服務器之間的網絡通斷進行探測。

traceroute 命令

路由表決定了兩個 IP 之間的連接最終是通過那些節點連接起來的。如果我們想要查看兩個 IP 之間的連接實際經過了哪些節點,就可以藉助 traceroute 命令來查看。traceroute 命令的使用非常簡單,“traceroute+ 目標 IP” 然後就會開始追蹤出你和目 標 IP 之間經過的路由節點了,當然你也可以直接用 “traceroute+ 域名” 的方式,前提是你執行 traceroute 命 令的機器有個正常工作的 DNS 系統,能正常解析域名。 

在 windows 下,有一個等效的命令叫做 “tracert”。如果你有興趣的話,可以去這個頁面看看 traceroute 的詳細解釋。我們在 windows 下用 tracert 命令跟蹤一下 twitter.com 試試: 

 通過FQ路由的 tracert 

第三行的目標 IP 因爲是我 VPN 服務器的 IP,所以抹黑隱藏掉。可以看到,tracert 會對每一個節點發 出 3 次探測包,並檢查每一次節點響應的速度,但這三次探測並不一定每一次都會有響應,於是就出現 了星號 “*”。一般來說,如果到一個節點之後出現了 3 個星號,就意味着到這個節點之後網路已經中斷了 (大部分是被 GFW 通過靜態路由丟棄了)。但也有可能是某些節點因爲自身的設置不響應 tracert 的探測, 碰到這種情況繼續等待一下,如果在等待過幾個節點之後探測信息又恢復了,那說明只是個別節點不響 應而已,但網路還是通的。 

而對於沒有 VPN 轉發的普通中國網路來說,到 twitter 的通路一般都是斷的,結果會是這樣:

 可以看到從第六個幾點之後就再也沒有跟蹤信息了,通過一些查 IP 的網站我們可以看到,最後一個 節點 “221.176.18.114” 是中國移動的骨幹網,也就是說我們對 twitter 的訪問在這個位置被路由丟棄了,根 本就沒達到國外,更不要說 twitter 的服務器了。

 

 

ping:通過ICMP協議發送報文到對方主機上任意一個60000以上的端口,然後獲取對方主機的回覆。(延遲)

tcping:使用tcp協議嘗試與某一個端口建立連接,然後獲取與對方主機建立一次連接的回覆。(延遲)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章