解决 Claude Code 频发 「Connection refused」 错误:修改 hosts 绕过 IPv4 Anycast 节点故障

最近在使用 Anthropic 的 Claude Code CLI 工具或调用 API 时,不少开发者遇到了以下报错:

API Error: Connection refused — a firewall or proxy may be blocking it (ConnectionRefused) • Retrying in 0s • attempt 1/10

提示信息通常指向“防火墙或代理拦截”,但检查本地代理、DNS 和防火墙后往往发现一切正常。本文将深入解析该问题的根源,并提供通过修改 hosts 文件快速绕过故障节点的解决方案。


🔍 问题根源分析

经过网络抓包与路由跟踪,该报错的核心原因在于网络服务商与 Anthropic 边缘路由之间的 Anycast 节点问题,以及本地虚拟化环境对 IPv6 降级(Fallback)的阻碍

  • IPv4 任播(Anycast)路由阻断:Anthropic 的服务默认解析并集中在单一定点 Anycast IP 160.79.104.10 上。在特定网络线路或环境下,发往该 IP 443 端口的新 TCP 连接会每隔 10~30 分钟断续被丢弃,导致出现 ConnectionRefused 错误。
  • IPv6 回退机制失效:正常情况下 IPv4 连不上时系统会尝试降级使用 IPv6 建立连接。但若本地安装了 VirtualBox 等虚拟化软件,其自带的网络过滤驱动(Network Filter)可能会引发 IPv6 默认路由(::/0)配置失效,导致系统无法成功回退到 IPv6,连接彻底中断。

🛠️ 解决方案:通过 hosts 重定向至 .11 节点

既然问题出在默认的 .10 节点上,最简单直接的解决办法就是通过本地 hosts 文件,将 Anthropic 相关域名强制解析到相邻的健康节点 160.79.104.11

📝 1. 修改 hosts 文件

在系统中打开 hosts 文件:

  • WindowsC:\Windows\System32\drivers\etc\hosts(需要管理员权限)
  • macOS / Linux/etc/hosts(使用 sudo 权限编辑)

在文件末尾添加以下配置:

# Anthropic IPv4 Edge Workaround (.10 -> .11)
160.79.104.11 api.anthropic.com
160.79.104.11 platform.claude.com
160.79.104.11 console.anthropic.com
160.79.104.11 a-api.anthropic.com

🧹 2. 刷新 DNS 缓存

保存文件后,在终端中运行相应的命令刷新本地 DNS 缓存:

  • Windows
ipconfig /flushdns
  • macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

⚡ 3. 触发 TCP 状态重置(关键步骤)

根据实测经验,更改 hosts 或网络配置后,原有的长连接或缓存路由可能不会立即释放。如果修改后仍然提示拒连:

  • 断开并重新连接网络:通过物理拔插网线,或关闭并重新开启 Wi-Fi 链接。这样可以强制系统彻底重置 TCP 链接与路由状态,使新的 .11 IP 规则立刻生效。

📌 总结

当遇到 a firewall or proxy may be blocking it 提示时,不必拘泥于排查本地代理软件。通过修改 hosts 重新定向 Anycast IP 节点,能够以最低成本快速恢复 Claude Code 与 Anthropic API 的正常通信。


🔗 参考

posted on 2026-08-26 17:12  a120608yby  阅读(253)  评论(0)    收藏  举报