這個現象發生的機率比較大,所以本文將從零起步教給各位讀者一些基本的排除DNS解析故障的方法。
一、什麼是DNS解析故障?
一般來說像我們訪問的www.jb51.net,www.kanshule.com這些地址都叫做網域名稱,而眾所周知網路中的任何一個主機都是IP地址來標識的,也就是說只有知道了這個網站的IP地址才能夠成功實現訪問操作。
不過由於IP地址資訊不太好記憶,所以網路中出現了網域名稱這個名字,在訪問時我們這需要輸入這個好記憶的網域名稱即可,網路中會存在著自動將相應的網域名稱解析成IP地址的伺服器,這就是Dns伺服器。能夠實現DNS解析功能的機器可以是自己的電腦也可以是網路中的一台電腦,不過當DNS解析出現錯誤,例如把一個網域名稱解析成一個錯誤的IP地址,或者根本不知道某個網域名稱對應的IP地址是什麼時,我們就無法通過網域名稱訪問相應的網站了,這就是DNS解析故障。
出現DNS解析故障最大的癥狀就是訪問網站對應的IP地址沒有問題,然而訪問他的網域名稱就會出現錯誤。
二、如何解決DNS解析故障:
當我們的電腦出現了DNS解析故障後不要著急,解決的方法也很簡單。
(1)用nslookup來判斷是否真的是DNS解析故障:
要想百分之百判斷是否為DNS解析故障就需要通過系統內建的NSLOOKUP來解決了。
第一步:確認自己的系統是windows 2000和windows xp以上作業系統,然後通過“開始->運行->輸入CMD”後斷行符號進入命令列模式。
第二步:輸入nslookup命令後斷行符號,將進入DNS解析查詢介面。
第三步:命令列視窗中會顯示出當前系統所使用的DNS伺服器位址,例如筆者的Dns伺服器IP為202.106.0.20。
第四步:接下來輸入你無法訪問的網站對應的網域名稱。例如筆者輸入 www.jb51.net,假如不能訪問的話,那麼DNS解析應該是不能夠正常進行的。我們會收到DNS request timed out,timeout was 2 seconds的提示資訊。這說明我們的電腦確實出現了DNS解析故障。
小提示:如果DNS解析正常的話,會反饋回正確的IP地址,例如筆者用www.jb51.net這個地址進行查詢解析,會得到name:jb51.net,addresses:61.129.70.67,61.135.133.104的資訊。
(2)查詢Dns伺服器工作是否正常:
這時候我們就要看看自己電腦使用的DNS地址是多少了,並且查詢他的運行情況。
第一步:確認自己的系統是windows 2000和windows xp以上作業系統,然後通過“開始->運行->輸入CMD”後斷行符號進入命令列模式。
第二步:輸入ipconfig /all命令來查詢網路參數。
第三步:在ipconfig /all顯示資訊中我們能夠看到一個地方寫著DNS SERVERS,這個就是我們的DNS伺服器位址。例如筆者的是202.106.0.20和202.106.46.151。從這個地址可以看出是個外網地址,如果使用外網DNS出現解析錯誤時,我們可以更換一個其他的Dns伺服器位址即可解決問題。
第四步:如果在DNS伺服器處顯示的是自己公司的內部網路地址,那麼說明你們公司的DNS解析工作是交給公司內部的DNS伺服器來完成的,這時我們需要檢查這個DNS伺服器,在DNS伺服器上進行nslookup操作看是否可以正常解析。解決 Dns伺服器上的DNS服務故障,一般來說問題也能夠解決。
(3)清除DNS緩衝資訊法:
當電腦對網域名稱訪問時並不是每次訪問都需要向DNS伺服器尋求協助的,一般來說當解析工作完成一次後,該解析條目會儲存在電腦的DNS緩衝列表中,如果這時DNS解析出現更改變動的話,由於DNS緩衝列表資訊沒有改變,在電腦對該網域名稱訪問時仍然不會串連Dns伺服器擷取最新解析資訊,會根據自己電腦上儲存的緩衝對應關係來解析,這樣就會出現DNS解析故障。這時我們應該通過清除DNS緩衝的命令來解決故障。
第一步:通過“開始->運行->輸入CMD”進入命令列模式。
第二步:在命令列模式中我們可以看到在ipconfig /?中有一個名為/flushdns的參數,這個就是清除DNS緩衝資訊的命令。
第三步:執行ipconfig /flushdns命令,當出現“successfully flushed the dns resolver cache”的提示時就說明當前電腦的緩衝資訊已經被成功清除。
第四步:接下來我們再訪問網域名稱時,就會到Dns伺服器上擷取最新解析地址,再也不會出現因為以前的緩衝造成解析錯誤故障了。
(4)修改HOSTS檔案法:
修改HOSTS法就是把HOSTS檔案中的DNS解析對應關係進行修改,從而實現正確解析的目的。因為在本機電腦訪問某網域名稱時會首先查看本地系統中的HOSTS檔案,HOSTS檔案中的解析關係優先順序大於Dns伺服器上的解析關係。
這樣當我們希望把某個網域名稱與某IP地址綁定的話,就可以通過在HOSTS檔案中添加解析條目來實現。
第一步:通過“開始->搜尋”,然後尋找名叫hosts的檔案。
第二步:當然對於已經知道他的路徑的讀者可以直接進入c:\windows\ system32\drivers\etc目錄中找到HOSTS檔案。如果你的系統是windows 2000,那麼應該到c:\winnt\system32\drivers\etc目錄中尋找。
第三步:雙擊HOSTS檔案,然後選擇用“記事本”程式將其開啟。
第四步:之後我們就會看到HOSTS檔案的所有內容了,預設情況下只有一行內容“127.0.0.1 localhost”。(其他前面帶有#的行都不是真正的內容,只是協助資訊而已)
第五步:將你希望進行DNS解析的條目添加到HOSTS檔案中,具體格式是先寫該網域名稱對應的 IP地址,然後空格接網域名稱資訊。例如筆者添加了“61.129.70.67 www.jb51.net”與“10.82.0.1 www.jb51.net”兩個條目。
第六步:設定完畢後我們訪問www.jb51.net時就會自動根據是在內網還是外網來解析了。
三、總結:
通過上面介紹的四個步驟,我們就可以解決大部分DNS解析問題了,這幾個方法中前三個是循序漸進的一步步解決DNS解析故障,而最後一個修改HOSTS檔案則是在實在沒有辦法的時候,一種權宜之計。當然不管是通過哪種方法,我們都可以解決因為 DNS解析錯誤帶來的網路故障。相信這些方法可以協助各位jb51的讀者解決更多的實際問題。