注意:本文所提的方法,在 ClashX 自动更新订阅配置后就自动失效了,因为被覆盖了。建议手动写一个定时脚本刷新一下,避免失效。
在平时的开发中,我们尝尝会自定义一些诸如 local.abc.com
、dev.xxx.cn
之类的域名指向本机地址,这些通常都是配置在 /etc/hosts
文件里的。
以前使用的是 V2RayX
、V2RayU
之类的工具,不影响,但由于前两款软件业界支持度不高且在 mac 使用 M 系列芯片后更新不及时,故而改用 ClashX。但在使用 ClashX 后,发现默认配置下自己配置的 hosts 都不生效了。
搜了一圈,原来是 ClashX 为了解决 DNS 污染的问题,有一个替代的 DNS 解析功能,坏消息是 hosts 的配置失效了。
解决办法
打开配置文件夹:
找到你当前使用的配置文件,使用文本编辑器(如 VSCode、Sublime)打开:
配置文件通常是 .yaml
文件,找到 dns 配置,将 enable
改为 false 即可:
然后重载配置(一般改完后会自动提示),即可生效。
本人实测问题解决。
如果你的系统是 Windows ,还有另一种解决办法
如果是 Windows 的话,还可以直接修改系统网络配置,直接指定域名忽略:
macOS 下我发现改不了(还是 Windows 更强大啊。。。):