一、Ping 命令
“Ping”命令是我們在判斷網絡故障常用的命令,但您真正明白這個命令運行后會發生什么,以及出現的各種信息說明了什么嗎?其實熟練的掌握 Ping 命令的各種技巧可以幫助你解決很多網絡故障。下面我們就來詳細的了解一下 Ping 命令。
它是用來檢查網絡是否通暢或者網絡連接速度的命令。
作為一個生活在網絡上的管理員或者黑客來說,ping 命令是第一個必須掌握的 DOS 命令,它所利用的原理是這樣的:
網絡上的機器都有唯一確定的IP地址,我們給目標 IP 地址發送一個數據包,對方就要返回一個同樣大小的數據包,根據返回的數據包我們可以確定目標主機的存在,可以初步判斷目標主機的操作系統等。
下面就來看看它的一些常用的操作。先看看幫助吧,在 DOS 窗口中鍵入:ping /? 回車,出現如圖1所示的幫助畫面。
在此,我們只掌握一些基本的很有用的參數就可以了.
- -t 表示將不間斷向目標 IP 發送數據包,直到我們強迫其停止。試想,如果你使用 100M 的寬帶接入,而目標 IP 是 56K 的小貓,那么要不了多久,目標 IP 就因為承受不了這么多的數據而掉線,呵呵,一次攻擊就這么簡單的實現了。
- -l 定義發送數據包的大小,默認為 32字節,我們利用它可以最大定義到 65500字節。結合上面介紹的 -t 參數一起使用,會有更好的效果哦。
- -n 定義向目標 IP 發送數據包的次數,默認為 3次。如果網絡速度比較慢,3次對我們來說也浪費了不少時間,因為現在我們的目的僅僅是判斷目標 IP 是否存在,那么就定義為 1次吧。說明一下,如果 -t 參數和 -n 參數一起使用,ping 命令就以放在后面的參數為標准,比如“ping IP -t -n 3”,雖然使用了 -t 參數,但並不是一直 ping 下去,而是只 ping 3次。另外,ping 命令不一定非得 ping IP,也可以直接 ping 主機域名,這樣就可以得到主機的 IP。
下面我們舉個例子來說明具體用法,如圖2。
這里 time=2 表示從發出數據包到接受到返回數據包所用的時間是 2毫秒,從這里可以判斷網絡連接速度的大小 。從 TTL 的返回值可以初步判斷被 ping 主機的操作系統,之所以說“初步判斷”是因為這個值是可以修改的。這里 TTL=32 表示操作系統可能是 win98。
用這個命令時候 ping 192.168.1.1 -t
TTL(生存時間)
TTL 是 IP 協議包中的一個值,它告訴網絡路由器包在網絡中的時間是否太長而應被丟棄。
有很多原因使包在一定時間內不能被傳遞到目的地。例如,不正確的路由表可能導致包的無限循環。一個解決方法就是在一段時間后丟棄這個包,然后給發送者一個報文,由發送者決定是否要重發。TTL 的初值通常是系統缺省值,是包頭中的 8位的域。TTL 的最初設想是確定一個時間范圍,超過此時間就把包丟棄。由於每個路由器都至少要把 TTL 域減一,TTL 通常表示包在被丟棄前最多能經過的路由器個數。當記數到0時,路由器決定丟棄該包,並發送一個 ICMP 報文給最初的發送者 。
- TTL 時間越長,緩存時間越長,更新越不容易及時生效。增大 TTL 值,以節約域名解析時間,給網站訪問加速。
- TTL 設置的小一些,生效時間就會快一些。減小 TTL 值,減少更換空間時的不可訪問時間。
System | TTL Value |
LINUX | 64 |
WIN2K/NT | 128 |
WINDOWS | 32 |
UNIX | 255 |
二、對Ping后返回信息的分析
1. Request timed out——超時
這是大家經常碰到的提示信息,很多文章中說這是對方機器置了過濾 ICMP 數據包,從上面工作過程來看,這是不完全正確的,至少有下幾種情況。
(1) 對方已關機
,或者網絡上根本沒有這個地址。
(2) 對方與自己不在同一網段內,通過路由也無法找到對方
,但有時對方確實是存在的,當然不存在也是返回超時的信息。
(3) 對方確實存在,但設置了 ICMP 數據包過濾
(比如防火牆設置)。
怎樣知道對方是存在,還是不存在呢,可以用帶參數 -a 的 ping 命令探測對方,如果能得到對方的 NETBIOS 名稱,則說明對方是存在的,是有防火牆設置,如果得不到,多半是對方不存在或關機,或不在同一網段內。
(4) 錯誤設置 IP 地址
正常情況下,一台主機應該有一個網卡,一個 IP 地址,或多個網卡,多個 IP 地址(這些地址一定要處於不同的 IP 子網)。但如果一台電腦的“撥號網絡適配 器”(相當於一塊軟網卡)的 TCP/IP 設置中,設置了一個與網卡 IP 地址處於同一子網的 IP 地址,這樣,在 IP 層協議看來,這台主機就有兩個不同的接口處於同一網段內。當從這台主機 ping 其他的機器時,會存在這樣的問題:
- 主機不知道將數據包發到哪個網絡接口,因為有兩個網絡接口都連接在同一網段。
- 主機不知道用哪個地址作為數據包的源地址。因此,從這台主機去 ping 其他機器,IP 層協議會無法處理,超時后,ping 就會給出一個“超時無應答”的錯誤信息提示。但從其他主機 ping 這台主機時,請求包從特定的網卡來,ICMP 只須簡單地將目的、源地址互換,並更改一些標志即可,ICMP 應答包能順利發出,其他主機也就能成功 ping 通這台機器了。
2. Destination Host Unreachable——連不上
(1) 對方與自己不在同一網段內,而自己又未設置默認的路由。
(2) 網線出了故障。
這里要說明一下“destination host unreachable”和“time out”的區別,如果所經過的路由器的路由表中具有到達目標的路由,而目標因為其他原因不可到達,這時候會出現“time out”,如果路由表中連到達目標的路由都沒有,那就會出現“destination host unreachable”。
3. Bad IP Address——IP有問題
這個信息表示您可能沒有連接到 DNS 服務器,所以無法解析這個 IP 地址,也可能是 IP 地址不存在。
4.Source Quench Received——服務器忙
這個信息比較特殊,它出現的機率很少。它表示對方或中途的服務器繁忙無法回應。
5. Unknown Host——不知名主機
這種出錯信息的意思是,該遠程主機的名字不能被域名服務器(DNS)轉換成 IP 地址。故障原因可能是域名服務器有故障,或者其名字不正確,或者網絡管理員的系統與遠程主機之間的通信線路有故障。
6. No Answer——無響應
這種故障說明本地系統有一條通向中心主機的路由,但卻接收不到它發給該中心主機的任何信息。故障原因可能是下列之一:中心主機沒有工作;本地或中心主機網絡配置不正確;本地或中心的路由器沒有工作;通信線路有故障;中心主機存在路由選擇問題。
7. ping 127.0.0.1:127.0.0.1是本地循環地址——TCP/IP 協議不工作
如果本地址無法Ping通,則表明本地機 TCP/IP 協議不能正常工作。
8. no rout to host——網卡工作不正常
9. transmit failed, error code: 10043——網卡驅動不正常