很多用戶在檢查花生殼的域名解析時(shí),習(xí)慣于使用ping域名的方法。實(shí)際上這個(gè)方法經(jīng)常會(huì)誤導(dǎo)我們。為什么這么說呢?假設(shè)我們的域名是ping-is-no-good.gicp.net,當(dāng)我們在命令提示符界面輸入”ping ping-is-no-good.gicp.net”查詢到的域名的ip地址有這樣幾個(gè)可能:
1.ping命令返回一個(gè)公網(wǎng)ip地址,但是這個(gè)ip地址和花生殼客戶端所在機(jī)器的當(dāng)前公網(wǎng)ip不一致
例如ping ping-is-no-good.gicp.net,返回的ip是59.37.71.85,如下圖:
而當(dāng)前花生殼登錄的電腦通過路由器上網(wǎng),路由器的wan口ip是121.32.186.189,也就是說花生殼登錄的這臺(tái)電腦的公網(wǎng)ip是121.32.186.189。
①遇到這種情況,首先要確認(rèn)是不是你的電腦中的DNS緩存尚未刷新導(dǎo)致。
想象這樣一個(gè)例子:你剛才在電腦C打開瀏覽器訪問域名ping-is-no- good.gicp.net,發(fā)現(xiàn)瀏覽器提示“您輸入的域名和網(wǎng)址無法訪問”,這時(shí)C的DNS緩存中留下了一個(gè)關(guān)于此域名的ip地址記錄。你檢查了服務(wù)器 S,發(fā)現(xiàn)花生殼的客戶端離線了,接下來你把花生殼客戶端重新登錄在線,這時(shí)你再在電腦C上去訪問這個(gè)域名,很可能此時(shí)本機(jī)的DNS緩存會(huì)返回給你之前的 ip地址,而不是S當(dāng)前的公網(wǎng)ip地址。
下面是具體過程:
用命令” ipconfig /displaydns”可以看到本機(jī)DNS緩存中的所有記錄。發(fā)現(xiàn)其中有一條關(guān)于ping-is-no-good.gicp.net的記錄如下圖所示:
計(jì)算機(jī)ping一個(gè)域名時(shí),會(huì)先去本機(jī)的DNS緩存中查找,上面看到的DNS緩存中的信息就影響了ping的結(jié)果。
這時(shí)用命令” ipconfig /flushdns”可以清除本機(jī)DNS緩存中的所有記錄,如下圖所示:
清除了緩存后,再ping域名,就可以排除本機(jī)DNS緩存的影響,這時(shí)返回的ip地址就是正確的,如下圖所示:
②有時(shí)候你會(huì)發(fā)現(xiàn)清除了本機(jī)的DNS緩存后,ping域名得到的ip仍然不是正確的ip地址。這時(shí)候很可能是你的寬帶接入商的地區(qū)DNS服務(wù)器尚未刷新數(shù)據(jù),也就是它尚未同步DNS數(shù)據(jù),那么當(dāng)你的花生殼所在電腦的 ip地址變化了之后,雖然Oray的DNS服務(wù)器已經(jīng)將ping-is-no-good.gicp.net指向了當(dāng)前的新ip地址,但是你那個(gè)地區(qū)的接入商的DNS服務(wù)器返回給你電腦的ping-is-no-good.gicp.net的ip地址還是之前的舊ip地址。如下圖所示:
這種時(shí)候你要做的就是把本機(jī)DNS服務(wù)器設(shè)置為當(dāng)?shù)刈罡咝У腄NS服務(wù)器,你可以直接撥打你的寬帶接入商的服務(wù)電話詢問并把問到的高效DNS地址設(shè)置到你的電腦上即可。例如將電腦的主DNS從202.96.128.86改為 202.96.128.166,然后用命令” ipconfig /flushdns”清除本機(jī)DNS緩存后,再ping ping-is-no-good.gicp.net,結(jié)果正確,如下圖所示:
2. ping命令返回一個(gè)局域網(wǎng)ip地址
如下圖所示:
192.168.0.2是一個(gè)局域網(wǎng)ip地址,在公網(wǎng)上是無效的。
造成這種情況的原因,一般是用戶在本機(jī)的hosts文件中添加了一條關(guān)于ping-is-no-good.gicp.net的ip地址記錄。
Hosts文件是一個(gè)用于存儲(chǔ)計(jì)算機(jī)網(wǎng)絡(luò)中節(jié)點(diǎn)信息的文件,它可以將主機(jī)名映射到相應(yīng)的IP地址,實(shí)現(xiàn)DNS的功能,它可以由計(jì)算機(jī)的用戶進(jìn)行控制。Hosts文件只對(duì)本機(jī)有效。
Hosts文件的存儲(chǔ)位置在不同的操作系統(tǒng)中并不相同,甚至不同Windows版本的位置也不大一樣。Windows NT/2000/XP/2003/Vista:默認(rèn)位置為%SystemRoot%\system32\drivers\etc\。例如 c:\windows\system32\drivers\etc\。
修改本機(jī)的Hosts文件,一般出于以下幾種應(yīng)用目的:
(1)加快域名解析
如果在Hosts中配置了某個(gè)域名和IP的映射關(guān)系,當(dāng)輸入域名計(jì)算機(jī)就能很快從本機(jī)的Hosts文件中查找到該域名的IP,而不用請(qǐng)求網(wǎng)絡(luò)上的DNS服務(wù)器查詢,從而提高域名解析速度。
(2)方便局域網(wǎng)用戶
在很多局域網(wǎng)中,會(huì)有內(nèi)部服務(wù)器提供給用戶使用。但由于局域網(wǎng)中一般很少架設(shè)DNS服務(wù)器,訪問這些服務(wù)器時(shí),要輸入難記的IP地址。管理員可以分別給這些服務(wù)器取個(gè)容易記住的名字,然后在每個(gè)用戶機(jī)器的Hosts中建立IP映射,這樣以后訪問的時(shí)候,只要輸入這個(gè)服務(wù)器的名字就行了。
(3)屏蔽網(wǎng)站
對(duì)于某些不良網(wǎng)站,我們可以利用Hosts把該網(wǎng)站的域名映射到錯(cuò)誤的IP或本地計(jì)算機(jī)的IP,這樣本機(jī)就訪問不到了。在WINDOWSX系統(tǒng)中,約定127.0.0.1為本地計(jì)算機(jī)的IP地址, 0.0.0.0是錯(cuò)誤的IP地址。
如果在Hosts中,寫入以下內(nèi)容:
127.0.0.1要屏蔽的網(wǎng)站A
0.0.0.0 要屏蔽的網(wǎng)站B
這樣,計(jì)算機(jī)解析域名A和B時(shí),就解析到本機(jī)IP或錯(cuò)誤的IP,達(dá)到了屏蔽網(wǎng)站A和B的目的。某些殺毒軟件就是通過修改Hosts文件達(dá)到屏蔽不良網(wǎng)站的目的。
(4)順利連接某些特殊系統(tǒng)
對(duì)于Lotus的服務(wù)器和一些數(shù)據(jù)庫服務(wù)器,在訪問時(shí)如果直接輸入IP地址那是不能訪問的,只能輸入服務(wù)器名才能訪問。那么配置好Hosts文件,這樣輸入服務(wù)器名就能順利連接了。
例如:某服務(wù)器管理員在服務(wù)器的Hosts文件中加了一條記錄:
192.168.0.2 ping-is-no-good.gicp.net
如下圖所示:
那么你在服務(wù)器上去ping域名ping-is-no- good.gicp.net,得到的ip是192.168.0.2,同時(shí)你如果看一下花生殼客戶端上ping-is-no-good.gicp.net的域名診斷,會(huì)發(fā)現(xiàn)域名診斷提示域名指向192.168.0.2,提示域名解析錯(cuò)誤,如下圖所示:
這都是本機(jī)Hosts文件造成的影響。只要在”192.168.0.2 ping-is-no-good.gicp.net”這一行前面加個(gè)”#”號(hào)把它變成注釋,或者直接刪掉這一行,然后保存文件,就可以消除這個(gè)影響。改變hosts文件后,查詢結(jié)果如下:
總結(jié):
在計(jì)算機(jī)上ping一個(gè)域名時(shí),首先會(huì)去查詢該域名的ip地址,查到了再ping這個(gè)ip地址。
計(jì)算機(jī)查詢域名ip地址的過程如下:
①在本機(jī)DNS緩存中查詢(本機(jī)Hosts文件中任何域名到ip地址的映射都將加載到本機(jī)DNS緩存中)
如果本機(jī)DNS緩存中有關(guān)于該域名的記錄,那么返回記錄中對(duì)應(yīng)的ip地址,清除了本機(jī)DNS緩存就可以消除此影響。如果該記錄是從Hosts文件加載到本機(jī)DNS緩存的,那么必須通過修改Hosts文件消除此影響。
②若本機(jī)DNS緩存中沒有對(duì)應(yīng)的記錄,將向本機(jī)的主DNS服務(wù)器詢問
DNS服務(wù)器接收到查詢時(shí),會(huì)首先查找能否根據(jù)在服務(wù)器的就地配置區(qū)域中獲取的資源記錄信息作出權(quán)威性的應(yīng)答,若沒有該域名的信息,再檢查它能否通過本地緩存的先前查詢信息(從以前DNS查詢應(yīng)答的響應(yīng)中獲取的資源記錄將被添加至緩存并保留一段時(shí)間)來解析域名,若仍然沒有查找到該域名的對(duì)應(yīng)記錄,將使用遞歸查詢域名,即詢問其他DNS服務(wù)器幫助解析域名。
下圖所示為本機(jī)嘗試訪問www.microsoft.com 的解析過程:
從上面的過程看,受本機(jī)DNS緩存、Hosts文件、地區(qū)DNS服務(wù)器刷新時(shí)間等因素影響,你ping域名得到的ip地址可能根本不是Oray的DNS服務(wù)器將你的域名解析到的ip地址。
其實(shí),ping命令不是用來檢測域名當(dāng)前解析到的公網(wǎng)ip的,Ping命令是通過ICMP協(xié)議進(jìn)行檢測網(wǎng)絡(luò)連通性的一個(gè)工具,除了上面說到的因素,防火墻或路由器訪問規(guī)則也可能造成ping域名得到的ip地址不是花生殼真正將域名指向到的ip地址,并且也有可能ping不通。
你可以直接用下面的命令來查詢:
nslookup ping-is-no-good.gicp.net ns1.oray.net 或者 nslookup ping-is-no-good.gicp.net ns2.oray.net
ns1.oray.net和ns2.oray.net是Oray的兩臺(tái)DNS服務(wù)器域名。以上兩個(gè)命令直接指定以O(shè)ray的DNS服務(wù)器作為命令詢問的對(duì)象,是不受本機(jī)DNS緩存、Hosts文件、地區(qū)DNS服務(wù)器刷新時(shí)間的因素影響的。命令將返回ping-is-no-good.gicp.net當(dāng)前被花生殼解析到的ip地址。例如下圖中,查詢到的ip地址是58.62.105.187:
這時(shí)候你只要查看花生殼所登錄的那臺(tái)電腦的公網(wǎng)ip,如果也是58.62.105.187,那么說明花生殼的解析是正確的。