Win8.1系統(tǒng)Hosts文件失效的具體原因分析
不知大家是否遇到過(guò)Hosts文件失效的問(wèn)題。原本我的Windows 8.1系統(tǒng)的Hosts文件可以正常使用,但是最近不知何故突然失效了。Hosts文件失效給我工作帶來(lái)很多麻煩,為了分析具體原因,我給大家做個(gè)演示測(cè)試。

可見(jiàn)hosts文件路徑是對(duì)的,而且只有一行映射,確保沒(méi)有其他的干擾項(xiàng)?! ?/p>

使用ipconfig /flushdns清理DNS緩存,而且其實(shí)我還停止了DNS Client服務(wù)的。然后繼續(xù)ping,依然返回的是真實(shí)DNS解析的地址?! ?/p>

如圖,可見(jiàn)system的權(quán)限也是有分配的。下面那個(gè)我自己的賬戶和Admin組的賬戶的權(quán)限也是完全控制的。
情況就是這樣,不知為何最近突然失效了。我可能是遇到什么劫持了么?
分析處理
根據(jù)引用中我的猜想,我使用了消息記錄器來(lái)跟蹤與hosts文件有關(guān)的系統(tǒng)消息。為了對(duì)比,我同時(shí)在windows 8.1和虛擬機(jī)中運(yùn)行的windows XP下操作,以便作為對(duì)比。
首先我發(fā)現(xiàn)其實(shí)所有有網(wǎng)絡(luò)通信功能的程序都會(huì)去檢測(cè)HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\這個(gè)鍵下面是否存在UseHostsFile值是否存在,數(shù)據(jù)是多少。但是我發(fā)現(xiàn)無(wú)論XP還是8.1都沒(méi)有該值,但是根據(jù)之前的實(shí)驗(yàn)可知是XP可以正常讀取hosts文件的,所以可以斷定這個(gè)是無(wú)關(guān)項(xiàng)。(不過(guò)根據(jù)這個(gè)判斷,原來(lái)Dnscache服務(wù)(也就是在服務(wù)中顯示名稱為DNS Client的服務(wù),用于緩存DNS解析的結(jié)果)是可以手動(dòng)強(qiáng)制不讀取hosts文件的,修改這個(gè)鍵值即可)
然后我發(fā)現(xiàn)一個(gè)怪異的現(xiàn)象,每次我手動(dòng)修改hosts文件后,在8.1下會(huì)顯示出一個(gè)名為svchost.exe的進(jìn)程試圖訪問(wèn)hosts文件但是結(jié)果為Acces Denied。在XP下,也有同樣名稱的進(jìn)程試圖訪問(wèn)hosts文件但是結(jié)果卻是Success的。
根據(jù)消息記錄器提供的進(jìn)程的PID,追蹤到其承載的服務(wù)中有一個(gè)共同的服務(wù)就是DNS Client。于是可以斷定肯定是上述提到的DNS Client服務(wù)出現(xiàn)問(wèn)題了。因?yàn)槌霈F(xiàn)訪問(wèn)文件被拒,肯定是帳戶問(wèn)題,于是我習(xí)慣性地打開(kāi)DNS Client的屬性頁(yè),轉(zhuǎn)到登錄選項(xiàng)卡,發(fā)現(xiàn)其使用的帳戶不是默認(rèn)本地系統(tǒng)帳戶,而是名為“Network Service”的內(nèi)置安全主體。
到此一切都明了了,歸根到底還是權(quán)限問(wèn)題。DNS Client服務(wù)使用的帳戶不是system,而是Network Service。雖然我給system帳戶賦予了完全的訪問(wèn)控制,但是根據(jù)我開(kāi)篇的截圖可以發(fā)現(xiàn),我里面缺少了Network Service的安全主體。而現(xiàn)在我們可以斷定system帳戶和Network Service安全主體是沒(méi)有關(guān)聯(lián)的,所以才導(dǎo)致了DNS Client服務(wù)啟動(dòng)后無(wú)法正常讀取hosts文件,而導(dǎo)致hosts文件無(wú)效。
解決辦法就是:編輯etc文件夾的訪問(wèn)權(quán)限,添加Network Service安全主體并賦予至少允許讀取的權(quán)限,然后重新啟動(dòng)DNS Client服務(wù)即可。目前我的hosts已經(jīng)一切正常。
通過(guò)以上的分析,相信大家能夠更清楚地理解Windows 8.1系統(tǒng)下Hosts文件失效的原因,也能夠掌握解決它的應(yīng)對(duì)措施。最終,我們的Hosts文件可以恢復(fù)正常。
相關(guān)文章
Win10怎么修改hosts文件 Win10系統(tǒng)hosts文件修改圖文教程
很多從事網(wǎng)絡(luò)的工作者,一般都需要修改電腦的hosts文件,那么,win10系統(tǒng)的hosts文件怎么修改呢?針對(duì)此問(wèn)題,本文就為大家圖文詳細(xì)介紹win10修改hosts文件的方法2015-11-02Win10修改編輯hosts文件后無(wú)法保存的解決方法
Win10修改編輯hosts文件后無(wú)法保存怎么辦?本文將提供Win10修改編輯hosts文件后無(wú)法保存的解決方法供大家了解,希望可以幫助到大家2015-09-26Windows 10的HOSTS文件怎么用默認(rèn)應(yīng)用及第三方應(yīng)用編輯?
Windows 10的HOSTS文件怎么用默認(rèn)應(yīng)用及第三方應(yīng)用編輯?下面介紹兩種方法,其中一個(gè)最簡(jiǎn)單的方法無(wú)疑就是把你PC的網(wǎng)線給拔了,或者關(guān)閉WiFi適配器,詳細(xì)情況情況請(qǐng)看下文2015-08-10- 這篇文章主要介紹了Linux系統(tǒng)下的hosts文件,與大家所熟悉的Windows下的hosts文件功能及配置基本類似,需要的朋友可以參考下2015-08-07
在Linux上怎么安裝和配置DenyHosts工具以便進(jìn)行自動(dòng)屏ip
使用DenyHosts能夠進(jìn)行自動(dòng)屏ip的功能,掌握DenyHosts在Linux系統(tǒng)中的安裝是很有必要的,下面就為大家詳細(xì)介紹下如何安裝DenyHosts工具以及安裝之后如何配置2015-07-01win7 hosts文件位置在哪?win7修改hosts文件詳細(xì)圖文教程
對(duì)于喜歡倒騰電腦的朋友來(lái)說(shuō),對(duì)于hosts文件可能在熟悉不過(guò)了。那么,win7 hosts文件位置在哪里?如何修改?針對(duì)此問(wèn)題,本文就為大家介紹win7修改hosts文件的詳細(xì)教程2015-06-30操作系統(tǒng)中的Hosts文件工作原理和作用及其詳細(xì)介紹
這篇文章主要介紹了操作系統(tǒng)中的Hosts文件工作原理和作用及其詳細(xì)介紹,本文詳細(xì)講解了什么是Hosts文件、Hosts文件的工作方式、Hosts文件的具體作用、如何用手動(dòng)查殺劫持HOS2015-06-18- 這篇文章主要介紹了Hosts文件的作用和位置詳解,hosts文件在很多時(shí)候都有作用,本文就分析了它的原理,本文還介紹了多個(gè)系統(tǒng)下hosts文件的位置,需要的朋友可以參考下2015-06-10
windows系統(tǒng)怎么修改hosts文件的權(quán)限?
windows系統(tǒng)怎么修改hosts文件的權(quán)限?很多人只會(huì)修改hosts文件的內(nèi)容,但是不會(huì)修改權(quán)限,下面我們一起來(lái)看看詳細(xì)的設(shè)置過(guò)程吧2015-05-24win7中hosts文件無(wú)法保存怎么辦? win7中hosts文件保存方法匯總
很多朋友向我反映win7中hosts文件無(wú)法保存怎么辦?今天腳本之家小編就為大家?guī)?lái)win7中hosts文件保存匯總教程,需要的朋友可以一起看看2015-05-12

