1.基本用法安全
Ping用於測試網絡是否連通,能夠說是最經常使用的網絡命令。
Ping命令利用ICMP協議進行工做,原理是在發送方主機上發送「echorequest」(回顯請求)控制消息,接收方正確接收後即發回「echoreply」(回顯應答)控制消息,從而判斷出雙方可否正常通訊。服務器
假設在A計算機上pingB,若是能ping通,在A計算機上顯示的信息是從B計算機上返回來的。若是不能ping通,A計算機上顯示的信息則是由系統產生的錯誤提示。
在Windows系統中,默認狀況下,每次執行ping命令會發送4個ICMP「回顯請求」(echorequest),每一個數據包大小爲32字節,若是一切正常,應能收到4個一樣爲32字節大小的ICMP「回顯應答」(echoreply):網絡
經過回顯應答中的「time」,能夠大體的推斷出網速狀況,數據傳遞通過的時間越長,網速越慢。分佈式
回顯應答中的「TTL」,即數據包的生存週期。每一個系統對其所發送的數據包都要賦一個TTL的初始值,默認狀況下,WindowsXP系統爲128,Win7系統爲64,Linux系統爲64或255(固然,系統的TTL值都是能夠修改的)。另外由於數據包每通過一次路由,TTL值就要減1,因此經過TTL值,咱們既能夠大概地推算出對方主機所用的操做系統,又能夠推斷出在數據包在傳送過程當中通過了多少次路由。好比,執行命令「pingwww.baidu.com」,回顯應答中顯示的TTL值爲52,則首先能夠推斷出對方使用的是Linux系統,其次能夠得知數據在傳送過程當中通過了12次路由。ide
這點能夠經過tracert命令進行驗證,tracert也是一個利用ICMP協議的命令,它的原理很是巧妙:它向指定的目的主機發送屢次回顯請求消息,並把封裝該消息的IP報文的TTL值從1開始遞增。即tracert命令第一次發送出去的IP報文的TTL爲1,這樣該報文在通過第一個路由器時,TTL值便被減爲了0,這臺路由器就要向源主機發回一個回顯應答消息,經過這種方式就得到了這臺路由器的信息。經過這種遞進的查詢過程,查詢端就能夠追蹤到達目的主機所通過的全部路由器的狀況。工具
tracert命令的執行結果:性能
另外,你們可能會發現,每次執行tracert命令所查詢到路徑都不大同樣,這是徹底正常的,數據包每次傳送時採用不一樣的路徑,這正是Internet所採用的分組交換方式的特色。測試
2.錯誤提示分析大數據
若是執行ping命令後,沒法接收到對方的回顯應答,則錯誤提示一般爲:
Requesttimedout
出現這種提示,表示網絡不通,但具體故障緣由要視實際網絡狀況而定。
另外還有一種錯誤提示爲:
Destinationhostunreachable
出現這種提示,則一般是由於沒有設置網關或網關設置不正確。
好比,有臺PC的IP地址爲192.168.0.10,子網掩碼255.255.255.0,默認網關爲192.168.0.1。在這臺PC機上隨便ping另一個網段中的不存在的IP,如ping172.16.1.10,由於這個IP根本不存在,因此顯示錯誤提示「Requesttimedout」;spa
將PC機的默認網關刪掉,再次ping172.16.1.10,此時則由於沒有網關爲其轉發數據,因此顯示錯誤提示「Destinationhostunreachable」。於是經過不一樣的錯誤提示,咱們能夠大體地判斷出故障緣由。
3.ping命令的防火牆設置
Ping命令利用ICMP協議工做,ICMP是一個比較複雜的協議,功能強大,也常常被***利用來***網絡上的路由器和主機,互聯網上的不少***方式都或多或少的用到了ICMP協議,因此目前的不少殺毒軟件或防火牆都提供了禁用ICMP協議的功能。如Windows2003/XP系統中自帶的防火牆就提供了這樣的設置,若是兩臺安裝Windows2003/XP系統的主機在網絡正常連通的狀況下沒法彼此ping通,則能夠檢測在防火牆的ICMP設置中是否啓用了「容許傳入回顯請求」,若是沒啓用該項功能,那麼防火牆將過濾掉ICMP回顯請求數據包,從而致使沒法ping通。
對於Windows7或WindowsServer2008系統的防火牆,能夠在「入站規則」中啓用「文件和打印機共享(回顯請求-ICMPv4-In)」規則,這樣防火牆就不會過濾ICMP回顯請求數據包了,從而使計算機能夠ping通。
或者咱們也能夠本身新建一條防火牆規則,以容許ping命令的數據包經過。
新建一條入站規則,規則類型選擇「自定義」:
規則應用於全部程序:
協議類型選擇ICMPv4
也能夠點擊右下角的「自定義」按鈕,用於設置容許經過的ICMP消息類型,默認是容許全部消息所有經過:
將規則應用於全部的本機IP和全部的遠程IP:
對符合條件的數據包容許經過:
將規則應用於全部的網絡類型:
爲規則起一個名稱:
這樣,咱們便本身建立好了一條防火牆規則,利用該規則一樣可使得ping命令的數據包經過。
4.ping命令經常使用參數
參數能夠對命令的功能進行擴展,Ping命令的參數比較多,經常使用的主要有如下幾個:
(1)pingIP地址–t
連續不停對IP地址發送ICMP數據包,直到被用戶以Ctrl+C中斷。
如:ping192.168.1.1-t
(2)pingIP地址–n
自由指定所發送的ICMP數據包的個數,而且個數沒有限制。
如:ping192.168.1.1–n10
(3)pingIP地址–ln
自由指定所發送的ICMP數據包的大小,上限爲65500B。
如:ping192.168.1.1–l100
5.拒絕服務***
Ping命令的參數也能夠組合使用,好比執行「pingIP地址–l65500–t」命令,就能夠連續地向某一臺主機發送最大數據包,這樣就有可能使對方系統資源耗盡而死機或致使沒法上網,因此這個命令也被稱爲「死亡之ping」。
死亡之ping是一種典型的DoS(DenialofService)***,即拒絕服務***。拒絕服務***以被***者的機器沒法提供正常服務爲***目的,常見的DoS***都是向被***者發送大量的垃圾數據包,使被***者一直在處理這些垃圾數據包而浪費資源,同時也消耗大量的網絡帶寬,最後致使被***者宕機,或者網絡遲緩。但對於目前的計算機來說,因爲大多性能強勁,網絡帶寬也很高,因此死亡之ping以及一些相似的***方法已沒法發揮做用。
單獨一臺計算機對目標機器發動死亡之ping沒法發揮做用,可是若是有多臺計算機同時向目標機器發動死亡之ping,則威力仍然是巨大的。這種***方式就被稱爲DDoS(DistributionDenialofService),即分佈式拒絕服務***。大規模的DDoS***很難防護,這也是目前一直沒法從根本上解決的一個重要的網絡安全問題。
下面咱們經過一款「SYN***器」工具來體驗一下拒絕服務***。「SYN***器」的原理是利用在TCP三次握手的過程當中創建大量僞造的半鏈接,從而耗盡目標計算機的資源。
咱們在一臺安裝有Win2003系統的虛擬機中運行該軟件(爲保證明驗效果,建議將Win2003系統的防火牆關閉),輸入要***的目標計算機的IP地址和端口號(端口號能夠是任意一個開放的TCP端口),而後點擊「start」按鈕開始***。
***開始後,到目標計算機上打開Windows任務管理器,能夠看到此時CPU使用率基本達到了100%,拒絕服務***成功。
不管目標計算機上是否啓用了防火牆,都沒法阻擋住SYN***,並且此種***方式對Win7系統也一樣有效。這還只是由單一***方發起的DoS***,若是是衆多***方同時展開的DdoS***,那麼威力將更增強大。
6.利用ping命令排查網絡故障
Ping命令對於咱們排查網絡故障將提供極大地幫助。好比電腦沒法接入Internet,咱們能夠按照以下思路來排查故障。
①首先來ping網關,若是可以ping通,則證實內部網絡沒有問題,問題應該出在外部網絡。
②再來ping某個網址,好比「pingwww.baidu.com」,測試可否將網址解析爲IP,以確認是否DNS服務器設置錯誤。③若是在步驟①中ping網關不通,則證實問題出在內部網絡。此時能夠測試可否ping通內網中的其它電腦,若是不能ping通,則證實是咱們本身的電腦或是網線出了問題,若是能ping通,問題則與咱們的電腦或網線沒有關係,多半是內部網絡的某處出現了問題。