macOS 下解决 ClashX 的 DNS 策略覆盖了本地 hosts 解析的问题

注意:本文所提的方法,在 ClashX 自动更新订阅配置后就自动失效了,因为被覆盖了。建议手动写一个定时脚本刷新一下,避免失效。

在平时的开发中,我们尝尝会自定义一些诸如 local.abc.comdev.xxx.cn 之类的域名指向本机地址,这些通常都是配置在 /etc/hosts 文件里的。

以前使用的是 V2RayXV2RayU 之类的工具,不影响,但由于前两款软件业界支持度不高且在 mac 使用 M 系列芯片后更新不及时,故而改用 ClashX。但在使用 ClashX 后,发现默认配置下自己配置的 hosts 都不生效了。

搜了一圈,原来是 ClashX 为了解决 DNS 污染的问题,有一个替代的 DNS 解析功能,坏消息是 hosts 的配置失效了。

解决办法

打开配置文件夹:

找到你当前使用的配置文件,使用文本编辑器(如 VSCode、Sublime)打开:

配置文件通常是 .yaml 文件,找到 dns 配置,将 enable 改为 false 即可:

然后重载配置(一般改完后会自动提示),即可生效。

本人实测问题解决。

如果你的系统是 Windows ,还有另一种解决办法

如果是 Windows 的话,还可以直接修改系统网络配置,直接指定域名忽略:

macOS 下我发现改不了(还是 Windows 更强大啊。。。):

参考资料