遭遇
今天遇到一怪事:修改hosts文件不起作用。我要配置本機的nginx分發來模擬線上環境,必須得改hosts文件。
搜尋
用百度一搜:什麼“保證hosts文件編碼爲ANSI”,什麼“執行net stop Dnscache
”,什麼“執行ipconfig /flushdns
”,全都不適用。
分析
根據”正誤對比”的解疑思路,我拿有問題的(problematic)hosts
文件跟正常的services
文件對比,發現hosts
文件的權限列表少了兩行記錄。暫不確定“修改hosts文件不起作用”是因“hosts
文件的權限不對”導致的,亟待證實。
解決
首先將services
複製爲hosts2
,發現權限也沒變。
然後編輯hosts2
,清空內容,並將原hosts
文件的內容複製過來。
最後將hosts
和hosts2
的名稱互換,新的hosts
文件終於起作用了!
反思
話說回來,這個問題的產生也是我“偷懶”導致的。
那是因到hosts文件的路徑太長,我就在創建了一個符號鏈接C:\etc\hosts
指向目標C:\Windows\System32\drivers\etc\hosts
,後來符號鏈接的權限變化作用到了目標文件,導致目標文件不能正常被DNS服務程序監聽/讀取,從而導致修改不起作用。