升级OSX Sonoma后/etc/hosts本地域名解析失效,无法访问VirtualBox中CentOS虚拟机开发站点
Sebastian你好,看到你升级Sonoma后遇到本地域名解析失效的问题,确实Sonoma在DNS处理逻辑上有一些细节变化,我整理了几个针对性的排查和解决方法,你可以一步步尝试:
检查并关闭DNS over HTTPS(DoH)
Sonoma默认可能启用了加密DNS,这会导致系统绕过/etc/hosts文件直接通过云端DNS解析。你可以这样操作:
打开「系统设置」→「网络」→ 选中当前网络(比如Wi-Fi)→ 点击「高级」→ 切换到「DNS」标签,取消勾选「使用加密DNS(HTTPS)」选项,然后保存设置。彻底重置系统DNS缓存
常规的缓存刷新命令可能在Sonoma里不够彻底,试试执行以下两个命令(需要管理员权限):sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder执行完后重启浏览器再测试访问。
验证
/etc/hosts文件格式正确性
Sonoma对hosts文件的格式要求可能更严格,检查你配置的行是否符合标准格式:[IP地址] [域名],比如:192.168.178.x dev.yourdomain.com确保IP和域名之间用至少一个空格或制表符分隔,没有多余的特殊字符、换行或注释错误。
测试域名解析是否生效
用终端命令直接验证域名解析结果,比如执行:dig dev.yourdomain.com或者
nslookup dev.yourdomain.com如果返回的IP不是你在
hosts里配置的虚拟机IP,说明系统没有优先读取hosts文件,这时候可以继续排查下面的点。排查第三方软件干扰
一些网络工具(比如Little Snitch、VPN客户端、广告拦截软件)可能会劫持DNS请求,暂时关闭这类软件,再测试域名访问是否正常。确认VirtualBox网络配置
虽然你直接访问IP正常,但可以再确认虚拟机的网络模式:如果用的是NAT模式,确保端口转发规则没有失效;如果是桥接模式,确认虚拟机IP和宿主机在同一网段,且hosts里的IP是虚拟机当前的有效IP。
如果以上方法都试过还是不行,可以尝试创建一个新的网络位置:打开「系统设置」→「网络」→ 点击左下角的「⋯」→「添加位置」,命名后保存,切换到新位置再测试,有时候系统网络配置的缓存会导致这类问题。
备注:内容来源于stack exchange,提问作者Sebastian Kriesmer

