在實際應用過程中可能會遇到DNS解析錯誤的問題,就是說當我們訪問一個網域時無法完成將其解析到IP位址的工作,而直接輸入網站IP卻可以正常訪問,這就是因為DNS解析出現故障造成的。這個現象發生的機率比較大,所以本文將從零起步教導各位讀者一些基本的排除DNS解析故障的方法。
一、什麼是DNS解析故障?
一般來說像我們造訪的www.sina.com,www.it168.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.softer.com,如果不能訪問的話,那麼DNS解析應該是不能夠正常進行的。我們會收到DNS request timed out,timeout was 2 seconds的提示訊息。這說明我們的電腦確實出現了DNS解析故障。
小提示:如果DNS解析正常的話,會回傳正確的IP位址,例如筆者用www.sohu.com這個位址進行查詢解析,會得到name:sohu.com,addresses:61.135.133.103,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 system32driversetc目錄中找到HOSTS檔案。如果你的系統是windows 2000,那麼應該到c:winntsystem32driversetc目錄中尋找。
第三步:雙擊HOSTS文件,然後選擇用「記事本」程式開啟。
第四步:之後我們就會看到HOSTS檔案的所有內容了,預設只有一行內容「127.0.0.1 localhost」。 (其他前面帶有#的行都不是真正的內容,只是幫助資訊而已)
第五步:將你希望進行DNS解析的條目加入HOSTS檔案中,具體格式是先寫該網域對應的IP位址,然後空格接網域資訊。例如筆者新增了「211.153.80.1 www.ftedu.gov.cn」與「10.82.0.1 www.ftedu.gov.cn」兩個條目。
步驟六:設定完畢後我們造訪www.ftedu.gov.cn時就會自動根據是在內部網路還是外網路來解析了。
三、總結:
透過上面介紹的四個步驟,我們就可以解決大部分DNS解析問題了,這幾個方法中前三個是循序漸進的一步步解決DNS解析故障,而最後一個修改HOSTS文件則是在實在沒有辦法的時候,一種權宜之計。當然不管是透過哪一種方法,我們都可以解決因為DNS解析錯誤所帶來的網路故障。相信這些方法可以幫助各位IT168的讀者解決更多實際的問題。