You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

MacOS终端无法访问网络的排查求助

MacOS终端无法访问网络的排查求助

这种浏览器能正常上网但终端死活连不上的问题真的挺闹心的,结合你说的情况,给你几个可以进一步排查的方向:

  • 先测试终端的DNS解析能力:在终端里分别运行nslookup ghcr.ioping 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_proxyunset 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

火山引擎 最新活动