You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac系统下curl/wget遇SSL访问异常,Chrome可正常访问HTTPS页面

解决Mac上Chrome正常但curl/wget无法访问HTTPS的问题

看你贴的curl verbose输出,核心问题一眼就能看出来:Connected to www.google.com (::1) port 443——你的curl把谷歌域名解析到了本地回环地址(::1),这肯定连不上正常的HTTPS服务,而Chrome用了不同的解析逻辑或者绕过了这个错误配置,所以能正常工作。下面是一步步排查修复的方法:

  • 第一步:检查hosts文件是否被篡改
    Mac的hosts文件会强制指定域名的IP映射,大概率是这里出了问题。打开终端执行:

    sudo nano /etc/hosts
    

    看看里面有没有类似::1 www.google.com或者127.0.0.1 www.google.com的条目,如果有,把这行前面加个#注释掉,或者直接删除。修改完按Ctrl+O保存,Ctrl+X退出编辑器,然后再测试curl。

  • 第二步:重置系统DNS缓存并检查DNS设置
    Chrome可能启用了自己的安全DNS(比如Google Public DNS或者Cloudflare DNS),而curl/wget依赖系统DNS解析。先刷新系统DNS缓存:

    sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
    

    然后打开「系统设置」→「网络」→ 选中当前使用的网络(Wi-Fi/以太网)→ 点击「高级」→「DNS」,看看列表里的DNS服务器是否正常,建议添加几个公共DNS(比如8.8.8.8、1.1.1.1),把异常的DNS地址删掉。

  • 第三步:排查代理设置冲突
    Chrome可能单独配置了代理,或者系统代理有问题但Chrome绕过了它。先检查系统代理:打开「系统设置」→「网络」→「高级」→「代理」,看看有没有开启「自动代理配置」或者「手动代理」,如果有,先暂时关掉,再测试curl。
    另外,也可以直接让curl绕过代理测试,确认是不是代理的锅:

    curl --noproxy '*' --verbose https://www.google.com/
    

    如果这个命令能成功,说明你需要调整系统代理或者curl的代理配置。

  • 第四步:检查curl的自定义配置
    curl会读取用户目录下的~/.curlrc或者系统级的/etc/curlrc配置文件,里面可能有异常的代理、DNS或者证书设置。先把用户级的配置文件重命名备份:

    mv ~/.curlrc ~/.curlrc.bak
    

    然后再测试curl,如果恢复正常,说明之前的~/.curlrc有问题,你可以打开备份文件排查里面的配置项。

内容的提问来源于stack exchange,提问作者fatdragon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:24:59