问题中心

Claude Code 报 fetch failed / ECONNRESET:终端代理三步修好

Claude Code 报 Connection error、fetch failed、ECONNRESET、ETIMEDOUT、403 或 407?多数是终端没有走代理。本文给出 macOS、Linux、Windows 的代理设置命令、报错对照表和排查步骤。

简短回答

最常见的原因是终端没有走代理:浏览器开了代理,但 Claude Code 在终端运行,默认不继承浏览器设置。设置 HTTPS_PROXY 环境变量指向本地代理端口,或开启客户端的 TUN 模式,并确认节点在支持地区即可。

最后更新:作者:梯子Z编辑部3 分钟阅读首发 2026年9月8日

快速步骤 · 5 步

  1. 01
    确认本地代理端口

    在代理客户端设置中找到 HTTP 或混合代理端口,Clash 系客户端常见为 7890,以实际显示为准。

  2. 02
    为终端设置代理环境变量

    macOS 与 Linux 执行 export HTTPS_PROXY=http://127.0.0.1:7890,Windows PowerShell 使用 $env:HTTPS_PROXY 设置同样的地址。

  3. 03
    测试能否连通 Anthropic API

    在同一个终端执行 curl -I https://api.anthropic.com,只要返回 HTTP 状态行就说明网络已打通。

  4. 04
    检查节点地区

    通过代理查询出口 IP,确认不在中国大陆或香港等不支持地区,遇到 403 时尤其要检查这一步。

  5. 05
    重新启动 Claude Code

    在设置好代理的同一个终端里重新运行 claude,必要时执行 claude doctor 检查安装与配置。

原因

Claude Code 运行在终端里,而终端程序默认不会使用浏览器或系统的代理设置。很多人在浏览器里能正常打开 claude.ai,到了终端却一直报连接错误,根源就在这里。Claude Code 支持读取 HTTPS_PROXY、HTTP_PROXY 等标准环境变量,只要把它们指向本地代理客户端的端口,请求就会经过代理。剩下的问题多与节点地区、代理认证和证书有关,可以根据报错信息快速定位。

报错表现常见原因解决方法
Connection error、fetch failed终端没有走代理,直连被阻断设置 HTTPS_PROXY 或开启 TUN 模式
ETIMEDOUT、请求超时代理端口填错,或节点不可用核对端口,换节点后用 curl 测试
ECONNRESET、对话中途断开节点不稳定、晚高峰丢包换更稳定的节点,避免负载均衡
403 Forbidden出口地区不受支持,或 IP 被拒绝换美国、日本、新加坡等支持地区节点
407 Proxy Authentication Required代理需要用户名密码在代理地址中加入认证信息,或改用本地无认证端口
证书错误,如 unable to get local issuer certificate网络中存在 HTTPS 检查设备配置 NODE_EXTRA_CA_CERTS 信任对应根证书

解决步骤

  1. 确认本地代理端口。打开代理客户端的设置页,找到 HTTP 或混合(mixed)端口。7890 是 Clash 系客户端的常见默认端口,Clash Verge Rev 新版本常为 7897,v2rayN 等客户端端口不同,请以实际显示为准。

  2. 为终端设置代理环境变量。macOS、Linux 在终端执行:

    export HTTPS_PROXY=http://127.0.0.1:7890
    export HTTP_PROXY=http://127.0.0.1:7890

    Windows PowerShell 执行:

    $env:HTTPS_PROXY="http://127.0.0.1:7890"
    $env:HTTP_PROXY="http://127.0.0.1:7890"

    代理地址建议使用 http:// 形式的 HTTP 代理,SOCKS 代理的支持情况以官方文档为准。

  3. 测试能否连通 Anthropic API。在同一个终端窗口执行:

    curl -I https://api.anthropic.com

    只要返回了 HTTP 状态行(状态码是 404 之类也没关系),就说明网络已经打通;如果一直卡住或报超时,问题仍在代理或节点。

  4. 检查节点地区。执行 curl https://ipinfo.io/json 查看出口地区,确认不是中国大陆或香港。遇到 403 时优先检查这一步,参考 Claude 地区不可用怎么办。

  5. 重新启动 Claude Code。在设置好代理的终端里重新运行 claude。如果仍有问题,执行 claude doctor 检查安装和配置状态。

让代理设置长期生效

export 只对当前终端窗口有效,关掉窗口就失效了。常用的长期配置方式有两种:

  • 写入 shell 配置文件:把上面的 export 两行追加到 ~/.zshrc(macOS 默认)或 ~/.bashrc,执行 source ~/.zshrc 后生效。这样所有终端程序都会走代理。

  • 只对 Claude Code 生效:在 Claude Code 的用户配置文件 ~/.claude/settings.json 中加入 env 字段:

    {
      "env": {
        "HTTPS_PROXY": "http://127.0.0.1:7890"
      }
    }

    这种方式不影响 git、npm 等其他命令,适合只想让 Claude Code 走代理的情况。

还是不行?

  • curl 测试正常,但 Claude Code 仍报错:确认是在同一个终端窗口里运行的
  • 设置了 NO_PROXY 变量时,检查它是否意外包含了 anthropic.com
  • 登录时浏览器授权成功但终端没反应:浏览器与终端使用的网络环境应一致
  • 公司网络或校园网:可能存在额外的代理与证书策略,参考 TLS 握手错误怎么办
  • 查看 status.anthropic.com,排除官方服务故障

Claude Code 的完整网络配置(包括 IDE 插件、远程服务器场景)见 Claude Code 网络环境与连接配置。长时间编程任务对线路稳定性要求更高,选线路时可以参考 Claude 稳定机场推荐。

常见问题

Q每次打开终端都要重新设置代理吗?

用 export 设置的变量只在当前终端会话有效。可以写进 ~/.zshrc 或 ~/.bashrc 长期生效,也可以写进 Claude Code 配置文件 settings.json 的 env 字段,只对 Claude Code 生效,不影响其他命令。

Q开了 TUN 模式还需要设置 HTTPS_PROXY 吗?

一般不需要。TUN 模式在系统网络层接管流量,终端程序会自动经过代理。两者同时开启通常也不冲突,但排查问题时建议只保留一种,便于判断。

QClaude Code 用一段时间就断开,重新运行又好了,是什么原因?

多半是节点不稳定或晚高峰丢包,长时间的流式连接被中途重置。换延迟和丢包更稳定的节点、避开负载均衡策略组,通常能明显改善。

Q公司电脑上的 Claude Code 报证书错误怎么办?

公司网络可能对 HTTPS 做了中间人检查,需要让 Node.js 信任公司根证书,例如通过 NODE_EXTRA_CA_CERTS 指定证书文件。具体做法请咨询公司 IT 部门,并遵守公司网络使用规定。

参考来源

  1. Claude Code 网络配置文档
  2. Anthropic 支持的国家和地区
  3. Anthropic 服务状态页
Esc

热门搜索

    ↑↓ 选择 · Enter 打开 · Esc 关闭打开搜索页