Windows 7 停止使用「hosts」檔案進行 DNS 解析

Windows 7 停止使用「hosts」檔案進行 DNS 解析

我運行的是 Windows 7 家用進階版 64 位元。從今天開始,我注意到 DNS 解析不會讀取我的%SYSTEMROOT%\System32\drivers\etc\hosts檔案。我這樣說是因為我為檔案新增了兩個新條目,當我在命令列上執行“nslookup”時,它們無法解析。此外,光是嘗試解析「localhost」就會導致我的主 DNS 伺服器被查詢。

我讀過幾個線程,表明該文件可能已損壞,請將其移到一邊並創建一個新文件。我已經這樣做了,但沒有任何改善。

是否有某種登錄項目可以控制用於 DNS 解析的資源順序(類似於 Unix 上的 nsswitch.conf)?還有什麼可能導致這種情況?

答案1

當你運行一個nslookup對於某個位址,Windows 將查詢 DNS 伺服器並且不會尋找主機檔案。總是。但是,當它實際連接時,它將使用主機檔案值。嘗試將 example.com 新增到您的主機檔案中,並將其指向 127.0.0.1。運行nslookup:它將解析為實際的 IP 位址。平它。您的本機主機將會回應。

C:\>nslookup example.com
Server:  
Address:  10.110.5.1

Non-authoritative answer:
Name:    example.com
Address:  192.0.32.10


C:\>ping example.com

Pinging example.com [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128

Ping statistics for 127.0.0.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\>

答案2

我還沒有設法讓我的主機檔案在 Windows 7 x64 上運行。令人討厭的是,使用完全相同的設置,它也可以在 x86 上運行。

因此,我需要阻止對某些網站的某些程式的訪問,所以我所做的就是使用免費的 ZoneAlarm 個人防火牆。我知道這是最不優雅的解決方案,但對我來說,沒有解決這種情況的方法。

對我來說,儘管我嘗試了多個版本並修改了字元編碼但沒有成功,ping但忽略了主機檔案。nslookup

我不知道其他人是否可以從我使用的解決方案中受益,但只是想讓您知道它存在並且有效!

答案3

我為此苦苦掙扎了太久,認為是我的防毒軟體或其他東西出了問題。事實上,我的編輯,記事本,將 .txt 副檔名新增至檔案名稱中,從而使其對系統不可見!

檢查擴展名。應該是空的!也可以看看如何將 Hosts 檔案重置回預設值?。這會將您的主機檔案重置回其開始時的原始方式。

答案4

我遇到了同樣的問題,這在 Win 7 中對我有用。

將新條目新增至主機檔案時,請確保使用所有空格,沒有製表符。

這讓它對我有用。

相關內容