遭遇
今天遇到一怪事:修改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服务程序监听/读取,从而导致修改不起作用。