當咱們須要屏蔽某些惡意網站或訪問特定網址以及在內網作測試的時候,經常須要修改hosts 文件,可是會發現有時修改完卻老是不生效,並且Windows7系統和Vista系統、XP系統都會碰到此類狀況,因此研究一下解決此類問題的辦法。windows
通常在LINUX下修改完/etc/hosts文件都會當即生效的,即使偶爾不生效,只要重啓一下network服務就能夠了。可是windows倒是會遇到這樣的問題,並且在不一樣版本的系統中還略有區別。瀏覽器
在解決問題以前,讓咱們瞭解一下dns和hosts的知識。咱們知道在訪問網站時,首先要經過DNS服務器把要訪問的域名解析成IP地址後,咱們才能在瀏 覽器中看到所訪問網站的頁面內容。根據Windows系統規定,在進行DNS請求之前,Windows系統會先檢查本身的Hosts文件中是否有網絡域名 的映射關係。若是有,則調用這個IP地址映射,若是沒有再向已知的DNS服務器提出域名解析,也就是說Hosts的請求級別比DNS高。
緩存
下面說一下如何具體修改Hosts文件:安全
首先要知道hosts文件的位置,在xp,2000,win7等系統中找到以下位置C:\windows\system32\drivers\etc,咱們能夠看到hosts文件,注意hosts文件是ascii編碼方式,並且是沒有後綴名的。服務器
其二正確修改hosts文件,通常hosts文件裏面都會有個示例,好比 127.0.0.1 51cto.com 即表明打開51cto.com這個網址將解析到127.0.0.1,ip地址與網址間至少要有一空格,另外在最後一行書寫映射時必定要加上回車再保存 以免最後一行不生效,若是某條記錄暫時不用,只須要在它前面加一個#號便可。 網絡
hosts文件默認具備隱藏屬性,系統默認設置狀況下是看不到的,解決辦法是打開個人電腦-點擊工具-文件夾選項-查看-取消勾選隱藏受保護的系統文件,肯定便可。若是修改後沒法保存,請在Hosts文件上面點右鍵-屬性-把只讀屬性去掉便可保存。工具
在修改HOSTS文件時候,還經常遇到修改保存後無效的狀況,咱們可使用ipconfig /flushdns命令來刷新dns緩存, 或者也能夠在管理工具中打開服務,找到「DNS Client」將其停用並改成手動模式在修改完hosts啓動。測試
注意:當你在打開瀏覽器的狀況下修改hosts文件時,關閉瀏覽器時系統纔會釋放掉hosts文件佔用的那部份內存,咱們再次打開瀏覽器訪問就發現已經生效了。網站
若是遇到windows 7 操做系統沒法打開和編輯的狀況,通常是由於安全機制UAC形成的,你能夠按着Shift鍵,而後Hosts文件上面右鍵,以管理員方式運行便可。或者修改Hosts文件權限,將當前登陸的帳號加入到安全選項卡中,賦予寫入權。編碼
還有一種方法就是打開本地鏈接的Internet(TCP/IP)協議的屬性頁,點擊常規選項卡中的高級按鈕,選擇WINS選項卡,勾選「啓用 LMHOSTS 查詢」,接着按下「導入 LMHOSTS」按鈕,導入hosts文件,這樣再次啓動瀏覽器時,就會發現hosts文件生效了。