1. 程式人生 > >詳解常用測試機器(服務)是否可用的兩種方式

詳解常用測試機器(服務)是否可用的兩種方式

背景描述

在網路模型中有一層非常重要的一環,它實現了端到端之間的通訊,而傳輸層最主要用的到協議是tcp和udp,而tcp協議作為一種可靠的面向連線的傳輸層協議,被廣泛應用,所以本文所描述的幾種方式都是基於基於傳輸層的tcp協議的。

ping

相信一說到測試兩臺機器是否能通訊,第一時間想到的就是ping,的確如此,下面將講述它的原理及使用方式。

為什麼可以?

在這之前必須先了解一下網際控制報文協議(ICMP),這是一個屬於IP層的協議。ICMP報文作為IP層資料報的資料,加上資料報的首部,組成IP資料報傳送出去ICMP允許主機或路由器報告差錯情況和提供有關異常情況的報告出去。ICMP不像HTTP,FTP應用層擁有傳輸層的埠號。ICMP報文有兩種,即ICMP差錯報告報文和ICMP詢問報文。

ICMP的一個重要的應用就是分組網路探測Ping(Packet InterNet Groper),它利用網路上機器ip地址的唯一性來測試兩臺網路機器是否連線相通,時延是多少。Ping使用的是ICMP回送請求與回送回答報文。Ping是應用層直接使用網路層ICMP的一個例子。它沒有經過傳輸層的TCP或UDP。

如何使用?

Ping是Windows,Unix,Linux下都能使用的命令。使用用格式為

ping hostname

成功 ping通

這裡寫圖片描述

注意事項

有些病毒木馬會強行大量遠端執行ping命令搶佔你的網路資源,導致系統變慢,網速變慢。所以主機的防火牆都會有一個嚴禁ping的基本功能提供給使用者選擇。

所以如果ping不通主機,也有一種可能是對方主機將ping給禁用了。

telnet

telnet絕對是你需要掌握的另外一種手段,它是用來測試服務埠是否可訪問的神器。

為什麼可以?

telnet命令遵循的是TELNET協議(終端模擬協議)。它和FTP,HTTP一樣是屬於應用層的協議,是屬於TCP/IP協議族裡面的一員,是Internet遠端登入服務的標準協議和主要方式。使用者通過TELNET就可以在其所在地通過TCP連線註冊(即登入)到遠地的另外一個主機上(使用主機名或者IP地址)。

如何使用

telnet hostname  #預設訪問機器hostname的 23號埠
telnet hostname port_id #連線機器hostname的 prot_id埠

連線失敗

這裡寫圖片描述

連線成功

這裡寫圖片描述

這裡寫圖片描述

注意事項

同樣的主機的防火牆也提供禁用telnet功能的選項。還有就是,telnet是可以針對某個埠是否可用進行測試,因為是依賴tcp協議的,所以如果防火牆對某個埠進行了限制那麼使用telnet命令會連線不上去的。

常用服務層所對應的的tcp埠號

應用程式 FTP TELNET SMTP DNS TFTP HTTP SSH MYSQL
熟知埠 20,21 23 25 53 69 80 22 3306