解决Windows中修改hosts文件不起作用的问题

2017-2-13来源:经验技巧人气:270

遭遇

今天遇到一怪事:修改hosts文件不起作用。我要配置本机的nginx分发来模拟线上环境,必须得改hosts文件。

搜寻

用百度一搜:什么“保证hosts文件编码为ANSI”,什么“执行net stop Dnscache”,什么“执行ipconfig /flushdns”,全都不适用。

分析

根据”正误对比”的解疑思路,我拿有问题的(PRoblematic)hosts文件跟正常的services文件对比,发现hosts文件的权限列表少了两行记录。暂不确定“修改hosts文件不起作用”是因“hosts文件的权限不对”导致的,亟待证实。

解决

首先将services复制为hosts2,发现权限也没变。 然后编辑hosts2,清空内容,并将原hosts文件的内容复制过来。 最后将hostshosts2的名称互换,新的hosts文件终于起作用了!

反思

话说回来,这个问题的产生也是我“偷懒”导致的。 那是因到hosts文件的路径太长,我就在创建了一个符号链接C:\etc\hosts指向目标C:\Windows\System32\drivers\etc\hosts,后来符号链接的权限变化作用到了目标文件,导致目标文件不能正常被DNS服务程序监听/读取,从而导致修改不起作用。