修改Hosts不生效的根本原因


大網站會查詢host的ip和域名是不是和自己的網站一樣,不一樣可能會阻止你訪問或者做別的處理。
也有可能是這些大網站防止其他網站盜鏈接自己網站的圖片。 比如我登陸的是一個盜版某寶網站,點了某個頁面域名后,重定向到host寫的某個真某寶的ip地址去了


原文:http://zhidao.baidu.com/link?url=-T6LWGyYbo7_RkzHw9ERaJFKzTsOimhTKH1FVBnyOXtO5hNgR8NrJW5vLZ8XtooSYdZWEXRZXqBqw8MfoYfAM_
當我們需要屏蔽某些惡意網站或訪問特定網址以及在內網做測試的時候,常常需要修改hosts 文件,但是會發現有時修改完卻總是不生效,而且Windows7系統和Vista系統、XP系統都會碰到此類情況,所以研究一下解決此類問題的辦法。 一般在LINUX下修改完/etc/hosts文件都會立即生效的,即便偶爾不生效,只要重啟一下network服務就可以了。但是windows卻是會遇到這樣的問題,而且在不同版本的系統中還略有區別。 在解決問題之前,讓我們了解一下dns和hosts的知識。我們知道在訪問網站時,首先要通過DNS服務器把要訪問的域名解析成IP地址后,我們才能在瀏覽器中看到所訪問網站的頁面內容。根據Windows系統規定,在進行DNS請求以前,Windows系統會先檢查自己的Hosts文件中是否有網絡域名的映射關系。如果有,則調用這個IP地址映射,如果沒有再向已知的DNS服務器提出域名解析,也就是說Hosts的請求級別比DNS高。 首先要知道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文件生效了。

修改Hosts不生效的根本原因

因為服務器設置了 keep-alive !次要原因是存在瀏覽器 DNS 緩存和系統 DNS 緩存。

> Keep-alive 相關文檔

服務器在響應頭設置了 Connection: keep-alive (一般的網頁都會設置 keep-alive,保持長連接,避免多次連接產生網絡消耗)之后,客戶端會跟服務器保持長連接,只要長連接不斷開,頁面在請求的時候就不會重新解析域名!

我們可以這樣來測試:

  1. 打開一個你至少兩分鍾沒有打開的瀏覽器(你也可以關閉掉你的瀏覽器,然后重新打開,記得把所有的 tab 都關了,除了當前 tab ^_^)
  2. 在 hosts 添加 127.0.0.1 www.taobao.com
  3. 新開 tab,打開 www.taobao.com,是不是進不去了 <這里說明 hosts 修改生效了>
  4. 注釋掉剛才hosts修改,# 127.0.0.1 www.taobao.com ,再打開 www.taobao.com,很好,正常打開了 <這里說明 hosts 修改也生效了>
  5. 去掉注釋符,127.0.0.1 www.taobao.com ,再打開 www.taobao.com,依然可以訪問!!!
  6. Chrome 中進入 chrome://net-internals/#sockets,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM