问题 问题排查
Claude Code 网络连接失败怎么办?终端代理与 TUN 排查方法
Claude Code 报 Connection error、请求超时或登录失败,多数是终端没有走代理。本文说明如何设置 HTTPS_PROXY 或开启 TUN 模式,并给出常见报错对照与排查步骤。
- 作者
- AI 工具编辑组
- 首次发布
- 最后更新
- 内容类型
- 问题排查
- 资料核对
- 阅读时间
- 约 2 分钟
信息可能随服务调整而变化,请以最新官方信息为准。
直接答案
Claude Code 连接失败,最常见的原因是终端没有走代理:代理客户端的「系统代理」通常只对浏览器生效,命令行程序需要单独设置 HTTPS_PROXY 环境变量,或开启客户端的 TUN 模式。其次是出口不在 Anthropic 官方支持地区、节点不稳定导致长连接中断,以及登录授权时浏览器与终端出口不一致。先在终端验证代理,再检查地区与节点。
可能原因
- A
终端没有走代理
浏览器能打开 claude.ai,不代表终端也能访问。命令行程序默认不读取系统代理设置,需要环境变量或 TUN 模式。
- B
代理端口或协议填写错误
HTTPS_PROXY 指向了错误端口,或客户端没有开启对应的混合端口,请求会直接被拒绝。
- C
出口不在官方支持地区
终端走的节点在香港等不受支持地区时,API 请求会被拒绝,表现为 403 或地区相关错误。
- D
节点不稳定,长连接中断
Claude Code 的任务往往持续较长时间并使用流式输出,节点丢包或晚高峰拥塞会导致请求中途断开。
- E
公司网络或安全软件拦截
企业代理、防火墙或杀毒软件的 HTTPS 检查,可能导致证书错误或连接被重置。
检查方法
- 在同一个终端窗口执行 echo $HTTPS_PROXY(Windows PowerShell 中为 $env:HTTPS_PROXY),确认变量已设置。
- 在终端中用 curl -I https://api.anthropic.com 测试,观察能否返回 HTTP 响应头而不是超时。
- 在代理客户端的连接列表中查看是否出现 anthropic.com 相关请求。
- 核对客户端设置中显示的混合端口或 HTTP 端口,例如 7897,与环境变量是否一致。
- 用 IP 查询网站确认当前策略组的出口地区在官方支持列表中。
解决步骤
-
确认代理客户端端口
打开代理客户端设置,记下混合端口或 HTTP 代理端口,以客户端显示的为准,例如 7897,并确认允许本机连接。
-
为终端设置代理环境变量
macOS / Linux 执行 export HTTPS_PROXY=http://127.0.0.1:端口 与 export HTTP_PROXY=http://127.0.0.1:端口;Windows PowerShell 使用 $env:HTTPS_PROXY="http://127.0.0.1:端口"。
-
或者开启 TUN 模式
不想逐个配置环境变量时,在 Clash Verge Rev 等客户端中开启 TUN 模式,让所有终端流量被系统级接管。
-
在终端内验证连通性
在设置了代理的同一个终端中用 curl 访问 Anthropic API 域名,确认能拿到响应后再启动 Claude Code。
-
固定支持地区节点
把 Anthropic 相关域名指向一个手动选择的支持地区节点,避免自动切换导致会话中断或地区变化。
-
重新登录 Claude Code
在代理生效的终端中重新执行登录,确保浏览器授权和终端请求使用同一地区出口。
-
持久化代理配置
确认可用后,把环境变量写入 shell 配置文件,或在 Claude Code 的 settings.json 中通过 env 字段设置,避免每次新开终端都要重复配置。
为什么终端是重灾区
浏览器、桌面 App 和终端读取代理的方式不同。代理客户端开启「系统代理」后,修改的是操作系统的代理配置,浏览器会读取它,但大多数命令行程序不会。这就是「网页正常、Claude Code 报错」最主要的原因。确认终端代理之后,剩下的问题才回到地区和节点质量上。
常见报错对照
| 报错 / 表现 | 可能原因 | 处理方向 |
|---|---|---|
| Connection error / Unable to connect | 终端未走代理 | 设置 HTTPS_PROXY 或开 TUN |
| Request timed out / ETIMEDOUT | 节点超时、端口错误 | 核对端口,换节点 |
| ECONNREFUSED 127.0.0.1 | 代理端口未开启或填错 | 检查客户端混合端口 |
| ECONNRESET / socket hang up | 长连接被中断 | 换稳定的专线节点 |
| 403 Forbidden | 出口地区或 IP 被拒 | 换支持地区节点 |
| 证书错误(self signed certificate 等) | 企业代理或安全软件解密 HTTPS | 关闭 HTTPS 扫描或在可信网络测试 |
不同系统与客户端的差异
- macOS / Linux:环境变量写入 ~/.zshrc 或 ~/.bashrc 后,需要新开终端或执行 source 才会生效。
- Windows:PowerShell 与 CMD 的设置语法不同,CMD 使用 set HTTPS_PROXY=…;在 WSL 中,127.0.0.1 不一定指向 Windows 主机,需要改用宿主机地址或在客户端中开启允许局域网连接。
- Clash Verge Rev:开启 TUN 模式需要授予服务权限,详细步骤见 Clash Verge Rev TUN 模式设置。
- IDE 内置终端:VS Code 等编辑器的终端继承的是编辑器启动时的环境,修改配置后需要重启编辑器。
提示可以写一个只在当前会话生效的代理别名,需要时执行,不需要时用 unset 取消,避免影响 npm 等其他工具访问国内镜像。
注意不要在环境变量中设置 NODE_TLS_REJECT_UNAUTHORIZED=0 来绕过证书错误,这会关闭证书校验,带来中间人攻击风险。
完整的配置说明见 Claude Code 网络环境配置与代理设置;Codex CLI 的同类问题可参考 Codex 无法连接怎么办。
仍然无法解决怎么办?
如果环境变量与 TUN 都已配置仍无法连接,建议联系机场客服确认节点是否能访问 Anthropic API,或换一款客户端(例如从 Clash Verge Rev 换到 v2rayN)复测;也可以在另一台设备上测试以排除本机安全软件影响。同时查看 Anthropic 官方状态页,确认 API 与 Claude Code 服务是否正常,并遵守服务条款与当地法律法规。
常见问题
Claude Code 网络连接失败怎么办?
Claude Code 连接失败,最常见的原因是终端没有走代理:代理客户端的「系统代理」通常只对浏览器生效,命令行程序需要单独设置 HTTPS_PROXY 环境变量,或开启客户端的 TUN 模式。其次是出口不在 Anthropic 官方支持地区、节点不稳定导致长连接中断,以及登录授权时浏览器与终端出口不一致。先在终端验证代理,再检查地区与节点。
为什么浏览器能用 Claude,Claude Code 却连不上?
系统代理只对遵循系统设置的程序生效,终端程序需要设置 HTTPS_PROXY 环境变量或开启 TUN 模式才会走代理。
设置了 HTTPS_PROXY 还是不行?
检查变量是否在启动 Claude Code 的同一个终端会话中生效、端口是否正确,以及出口地区是否在官方支持列表中。
TUN 模式和环境变量选哪个?
环境变量影响范围小、可控;TUN 模式一次性接管所有程序,适合同时使用多个命令行工具。二选一即可,无需叠加。