HOSTS對於需要設置的人應該都知道為何用,主要就是在本地建立一個域名--ip映射,而不需要再去找上層的DNS服務器去進行解析。直接就能建立鏈接操作,進行相關信息的發送。而某些情況下我們可能設置了HOSTS后不能生效,這里總結一下工作中遇到問題和解決的方法:
1、雙系統的機器:
設置hosts后不生效的原因主要是:設置的hosts不是當前操作系統的hosts,比如當前系統裝在D盤,而修改hosts修改在了C盤的。查看當前系統安裝在哪個盤的最簡單方法就是開一個cmd命令行,其初始的提示符路徑的磁盤就是當前系統盤:如C:\Documents and Settings\sina>, 那么C盤就是當前系統盤。或者用set命令查看系統的環境變量。
2、由於本地DNS的緩沖:
因為hosts是一個本地的dns解析服務,所以在本地有一個專門的dns client服務在后台運行,而這個服務會有一個緩存機制,所以有時可能不能及時生效。這是可以通過刷新dns緩存或手動重啟dns client服務來解決。刷新命令為:ipconfig /flushdns。 手動重啟dns client 服務器的方法為:cmd--》services.msc--》找到dns cilent 服務-》停止--》重啟
3、由於文本格式原因導致格式不正確:
hosts文件中是有一定格式的,即單行一個dns的ip地址映射,可以一個ip對應多個域名,每行的ip和域名之間至少有一個空格或TAB鍵。通常我們直接輸入都是正確的,而當我們復制粘貼進來的文本時,有時會不生效。這就是因為換行符的問題導致的,因為你從其它終端復制過來的內容換行格式可能與windows的換行符不一樣,那這樣就不會生效了。
解決辦法:自己手動填寫,或通過文本編輯器進行自動轉換。如:editplus
1. hosts文件必須是ascii編碼方式, 如果保存為unicode格式將不會被正確讀取,所以,打開host,選擇“另存為”確認保存格式是否是ascii。
2. 打開了程序后修改hosts,大部分程序不會實時更新hosts,重啟程序即可更新,例如啟動瀏覽器,系統將hosts拷貝了一份到內存中,瀏覽器使用內存中的hosts,這時候不會讀取修改過的硬盤上的hosts,這種情況我們只需關閉瀏覽器使系統釋放內存中的hosts,然后再重啟瀏覽器重新讀取即可。
3. hosts文件沒有擴展名,hosts文件本身是沒有文件擴展名的,如果不小心被加上了如txt等的文件擴展名,就會失效。
4. 確認hosts設置:打開本地連接的 Internet(TCP/IP)協議的屬性頁,點擊常規選項卡中的高級按鈕,選擇WINS選項卡,勾選“啟用 LMHOSTS 查詢”,接着按下“導入 LMHOSTS”按鈕,導入C:/WINDOWS/system32/drivers/etc下的hosts文件,hosts文件生效。
5. 使用ipconfig /flushdns命令刷新dns緩存。