MacOS 使用SwitchHosts修改 hosts 不生效的原因及解决方法
使用switch host修改mac hosts后,cat 发现hosts已经修改成功。
但是ping的时候发现,域名解析的ip还是老的。
翻了很多资料,在windows下并没有这种情况。
最后在stackoverflow上发现如下咨讯:
This is because macOS Catalina has another thing going; it will only make changes in the hosts file effective if you change them as the root user !!
我使用的系统是MacOs Monterey,我猜测系统应该是做相同的权限处理。
这也就解释了,为什么hosts修改成功了,但是本地dns还是读取的老的IP。
可以看到hosts文件的修改权限是本地用户。
所以解决方法也就有两种了。
1.执行sudo killall mDNSResponder,手动刷新本地dns缓存。
2.使用sudo vim hosts命令修改hosts文件。