如何測(cè)試TCP/IP協(xié)議棧來(lái)修復(fù)網(wǎng)絡(luò)連接故障
在我們修復(fù)Windows網(wǎng)絡(luò)連接時(shí),要確保本地TCP/IP棧沒(méi)有問(wèn)題。本文將一步步地指導(dǎo)您進(jìn)行本地主機(jī)連接DNS服務(wù)器和默認(rèn)網(wǎng)關(guān)服務(wù)器的能力測(cè)試,并介紹如何測(cè)試主機(jī)名解析。
在“檢查IP配置”中,我闡述了如何確定哪個(gè)IP地址是我們的系統(tǒng)使用的主地址。接下來(lái),我們會(huì)驗(yàn)證IP地址配置是正常工作的,以及本地TCP/IP堆棧沒(méi)有問(wèn)題。
首先,我們需要執(zhí)行的測(cè)試是PING本地主機(jī)地址。有幾種不同的方法可以實(shí)現(xiàn)這個(gè)步驟。其中一個(gè)是輸入下面的命令:
PING LOCALHOST
當(dāng)我們輸入這個(gè)命令時(shí),Windows將PING地址127.0.0.1。不管我們的機(jī)器的地址是什么,Windows總會(huì)使用127.0.0.1作為本地主機(jī)地址。因此,對(duì)于上面所列出來(lái)的命令,另外一個(gè)替代的命令是:
Ping 127.0.0.1
輸入這個(gè)命令時(shí),我們應(yīng)該可以查看到一個(gè)成功的PING,如同使用其它的PING命令一樣。我們可以看到圖A所顯示的例子。
PING本地主機(jī)地址對(duì)診斷遠(yuǎn)程主機(jī)連接問(wèn)題沒(méi)有什么作用。然而,它卻可以允許我們確認(rèn)我們的本地TCP/IP 棧運(yùn)行是否正確。當(dāng)我們PING本地主機(jī)地址時(shí)接收到目的主機(jī)無(wú)法到達(dá)的錯(cuò)誤信息時(shí),這往往意味著TCP/IP的配置是不正確的,或者本地TCP/IP棧的某個(gè)部分出錯(cuò)了。
依據(jù)我的個(gè)人經(jīng)驗(yàn),我們通??梢酝ㄟ^(guò)刪除計(jì)算機(jī)的TCP/IP協(xié)議來(lái)處理這個(gè)問(wèn)題,然后重新設(shè)置。
PING默認(rèn)網(wǎng)關(guān)
在本系列的前面的部分文章中,我提到有幾種不同的TCP/IP配置部分需要文檔化,它們是故障修復(fù)過(guò)程所必需的。其中有默認(rèn)網(wǎng)關(guān)的IP地址和主DNS服務(wù)器的信息。
假設(shè)我們嘗試連接的是遠(yuǎn)程網(wǎng)絡(luò)或者在企業(yè)網(wǎng)絡(luò)的不同分片上的主機(jī),那么我們下一步需要嘗試的是PING默認(rèn)網(wǎng)關(guān)。我們可以簡(jiǎn)單地通過(guò)在PING命令后添加默認(rèn)網(wǎng)關(guān)的IP地址來(lái)完成。比如,如圖B,請(qǐng)注意我的TCP/IP配置列出了我的默認(rèn)網(wǎng)關(guān)地址是147.100.100.100。然后,我會(huì)直接PING這個(gè)地址。這就驗(yàn)證了本地機(jī)器可以連接到默認(rèn)網(wǎng)關(guān)。同時(shí),它也告訴我們本地網(wǎng)絡(luò)的連接工作正常,至少在IP地址層上是正常的。
PING DNS服務(wù)器
目前,我們已經(jīng)確定在本地計(jì)算機(jī)和默認(rèn)網(wǎng)關(guān)之間的IP層連接是正常的。然而,這并不保證主機(jī)名被解析到正確的IP地址。在這一系列的文章的***部分“使用PING命令來(lái)修復(fù)網(wǎng)絡(luò)連接故障”中,我已經(jīng)探討了如何使用目的主機(jī)的正式域名和PING命令來(lái)驗(yàn)證DNS服務(wù)器是否正常工作。還有幾種其它的方法我們可以用來(lái)簡(jiǎn)單地測(cè)試DNS名字解析。
其中一個(gè)是,我們可以PING DNS服務(wù)器的IP地址,如圖C所示。這并不保證名字解析是正確工作的,但是它肯定可以驗(yàn)證本地機(jī)器能夠連接到DNS服務(wù)器上。
另外一個(gè)方法是使用Nslookup命令來(lái)驗(yàn)證域名解析是正確工作的。我們只需簡(jiǎn)單地輸入Nslookup,后面加上遠(yuǎn)程主機(jī)的正式域名。Nslookup命令就應(yīng)該能夠?qū)⒂蛎馕龅揭粋€(gè)IP地址,如圖D所示。
如果我們不經(jīng)常使用Nslookup,那么一開(kāi)始上面的圖象可能會(huì)有點(diǎn)誤導(dǎo)我們。首先,這個(gè)屏幕似乎在報(bào)告一個(gè)錯(cuò)誤。如果我們更仔細(xì)點(diǎn)觀察,我們可以看到返回的信息的***部分是來(lái)自于本地DNS服務(wù)器。這是因?yàn)樗玫腎P地址是與DNS服務(wù)器的IP地址相匹配的。然而,返回的信息的后面部分為我們提供的是我們所要查詢的主機(jī)的IP地址。只要列出了這個(gè)IP地址,那么DNS查詢就是成功的。
如果域名解析過(guò)程失敗了,那么就可以肯定存在一個(gè)DNS問(wèn)題。實(shí)際問(wèn)題可能是許多不同的DNS服務(wù)器問(wèn)題中的其中一個(gè)。比如,轉(zhuǎn)發(fā)的DNS服務(wù)器地址可能是不正確的,或者DNS服務(wù)器可能并不訪問(wèn)因特網(wǎng),這些都是連接更高級(jí)DNS服務(wù)器所必須的。類似的,DNS服務(wù)器的DNS服務(wù)可能已經(jīng)中斷。典型地,由于許多客戶往往都依賴于一個(gè)DNS服務(wù)器,因此這些類型的問(wèn)題將會(huì)影響到其它客戶。
如果DNS域名解析成功了,那么,重要的是我們要驗(yàn)證域名解析過(guò)程中返回的IP地址。我們可以通過(guò)對(duì)比返回的IP地址和遠(yuǎn)程主機(jī)正在使用的實(shí)際的IP地址來(lái)進(jìn)行驗(yàn)證。這些IP地址必須是相匹配的,但是,其中可能會(huì)有不匹配的情況,它將造成連接失敗。
當(dāng)出現(xiàn)IP地址不匹配時(shí),可能是客戶端感染了惡意軟件或者是DNS中毒了。DNS中毒指的是DNS緩存中被寫(xiě)入無(wú)效的或者不正確的IP地址。
當(dāng)出現(xiàn)這樣一個(gè)問(wèn)題時(shí),我會(huì)建議客戶端機(jī)器的進(jìn)行惡意軟件掃描。同時(shí)對(duì)間諜軟件和病毒進(jìn)行掃描是很重要的,因?yàn)樗鼈兌紩?huì)引起這種問(wèn)題。一旦清除了惡意軟件的問(wèn)題,那么可以嘗試清空DNS緩存。我們可以輸入下面的命令來(lái)清空DNS緩存:
IPCONFIG /FLUSHDNS
我們可以看看這個(gè)例子,如圖E所示:
其中需要記住的重要一點(diǎn)是, DNS緩存包含不準(zhǔn)確IP地址,并不總是意味著發(fā)生了DNS中毒。因?yàn)橛袝r(shí)主機(jī)被指派了新的IP地址后,DNS緩存需要一段時(shí)間才會(huì)得到修改后的IP地址。
總結(jié)
在本文中,我已經(jīng)闡述了如何驗(yàn)證本地TCP/IP協(xié)議棧是否正確工作。接下來(lái),我還繼續(xù)闡述了如何測(cè)試本地主機(jī)與DNS服務(wù)器和默認(rèn)網(wǎng)關(guān)服務(wù)器交互的能力,以及如何測(cè)試主機(jī)域名解析。在本系列接下來(lái)的內(nèi)容中,我將探討可以使用PING命令來(lái)檢測(cè)的幾個(gè)常見(jiàn)問(wèn)題,同時(shí)我還將開(kāi)始探討路由問(wèn)題。