
我運行的是 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 中對我有用。
將新條目新增至主機檔案時,請確保使用所有空格,沒有製表符。
這讓它對我有用。