MacOS终端无法访问网络的排查求助
这种浏览器能正常上网但终端死活连不上的问题真的挺闹心的,结合你说的情况,给你几个可以进一步排查的方向:
先测试终端的DNS解析能力:在终端里分别运行
nslookup ghcr.io和ping ghcr.io,看看能不能正常解析出IP地址。如果nslookup直接报错“无法解析主机”,那大概率是终端的DNS配置出了问题。可以临时在终端里手动指定公共DNS试试:export DNS_SERVERS=8.8.8.8,1.1.1.1 curl -v https://ghcr.io如果这样能成功,说明系统默认的DNS在终端环境下不生效,得去系统设置里调整DNS服务器。
刷新系统DNS缓存:有时候系统DNS缓存紊乱,浏览器可能用了自己的缓存但终端依赖系统缓存。执行以下命令清缓存,然后重启终端再试:
sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder检查防火墙规则:不管是系统自带的防火墙还是第三方安全工具(比如Little Snitch),都有可能误拦截了终端程序的网络请求。去「系统设置-网络-防火墙」里看看有没有禁止终端、curl或者brew联网的规则;如果装了第三方防火墙,也打开对应的管理界面排查一下。
排查终端残留的代理环境变量:虽然你说没有启用代理,但终端里可能残留了之前设置的代理环境变量。运行以下命令检查:
echo $http_proxy echo $https_proxy echo $ALL_PROXY如果有输出内容,用
unset http_proxy、unset https_proxy之类的命令清除,然后再测试网络连接。检查brew的专属网络配置:brew有时候会有自己的网络配置,比如是否被设置了镜像或者代理。运行
brew config看看输出里有没有HTTP_PROXY、HTTPS_PROXY相关的配置,如果有的话,可以尝试重置brew的配置:brew cleanup brew update-reset检查残留的网络扩展:有些VPN或安全软件卸载后,对应的网络扩展可能还留在系统里,干扰终端的网络请求。去「系统设置-隐私与安全性-网络扩展」里,看看有没有可疑的扩展项,移除后重启电脑再试。
切换网络环境测试:比如换成手机热点连接,看看终端能不能正常上网。如果换网络后没问题,那就是当前宽带的DNS或者网络策略有问题,可能需要联系宽带服务商,或者在路由器上手动设置公共DNS(比如8.8.8.8)。
如果以上方法都试过还是不行,可以试试重装系统的命令行工具:xcode-select --install,或者检查系统更新,看看是不是当前MacOS版本存在已知的网络bug。
备注:内容来源于stack exchange,提问作者knirirr




