AI 使用指南Claude 使用指南Claude 专题

Claude Code 网络环境配置:终端代理、TUN 模式与节点选择

Claude Code 运行在终端里,不会自动使用浏览器的系统代理。本文给出环境变量与 TUN 模式两种配置方法、验证命令,以及 fetch failed、ECONNRESET、超时等常见报错的对应处理。

直接答案

Claude Code 连不上的根本原因通常是终端没有走代理。最快的解决方式是在终端中设置 HTTPS_PROXY 与 HTTP_PROXY 指向本地客户端的混合端口(如 http://127.0.0.1:7897),或者在 Clash Verge Rev 中开启 TUN 模式接管全部流量。节点选择美国、日本或新加坡的低丢包专线节点。

目录

Claude Code 是运行在终端里的 Node.js 程序,它不会像浏览器那样自动读取系统代理设置。因此“网页版 Claude 能用,Claude Code 一直连接失败”几乎都是同一个原因:终端进程根本没有经过代理。解决方式有两种,一是给终端设置 HTTPS_PROXY 环境变量指向本地客户端端口,二是在 Clash Verge Rev 中开启 TUN 模式让所有流量自动经过代理。

本文以 Clash Verge Rev 为例,给出两种方式的具体步骤、验证命令与常见报错的处理。节点地区的选择原则与网页版一致,可参考 Claude 网络环境完整指南。

先看结论

方式适用场景优点缺点
环境变量只想让当前终端走代理精确、可控、不影响其他程序每个终端都要设置,部分子进程可能不继承
TUN 模式终端、IDE、Git、Docker 等都要走代理一次开启全局生效需要安装服务模式,与部分杀软或 VPN 冲突

开发者日常推荐 TUN 模式,临时排查或多套代理环境切换时用环境变量。

第一步:确认本地代理端口与节点

打开 Clash Verge Rev,在设置页面找到混合端口(Mixed Port),记下数值,常见为 7897 或 7890。这个端口同时提供 HTTP 与 SOCKS5 代理。

然后在代理页面把 AI 分组固定到一个节点。Claude Code 的会话是长连接,自动测速分组在中途切换节点会直接导致连接重置,所以务必手动选定一个:

  • 地区优先美国,其次日本、新加坡。
  • 线路优先 IEPL / IPLC 专线,丢包率比延迟更重要。
  • 避开机房 IP 与香港节点,原因见 Claude 网络环境指南。

第二步:设置终端代理环境变量

macOS / Linux 的 bash 或 zsh:

export HTTP_PROXY=http://127.0.0.1:7897
export HTTPS_PROXY=http://127.0.0.1:7897
export ALL_PROXY=http://127.0.0.1:7897
export NO_PROXY=localhost,127.0.0.1,::1

要长期生效,把这几行追加到 ~/.zshrc 或 ~/.bashrc,然后重新打开终端。

Windows PowerShell:

$env:HTTP_PROXY = "http://127.0.0.1:7897"
$env:HTTPS_PROXY = "http://127.0.0.1:7897"
$env:NO_PROXY = "localhost,127.0.0.1"

要长期生效,可以写入 PowerShell 配置文件($PROFILE),或在系统“环境变量”中为当前用户新增同名变量。注意变量名大小写混用时,多数工具同时识别大写与小写版本,统一用大写即可。

第三步:验证代理是否生效

在设置好环境变量的同一个终端窗口中执行:

curl -sS https://api.anthropic.com/ -o /dev/null -w "%{http_code}\n"
curl -sS https://ipinfo.io/json

第一条命令返回任意 HTTP 状态码(如 404 或 401)都说明网络已通,返回 000 或长时间无响应说明代理未生效。第二条命令输出的 country 字段应与你选择的节点地区一致。如果出口 IP 显示为中国大陆,说明这个终端没有走代理。

Windows 用户在 PowerShell 中同样可以使用 curl.exe,注意要写成 curl.exe 而不是 curl,后者在 PowerShell 中是另一个命令的别名。

第四步:启动 Claude Code

在同一终端窗口运行 claude 并发送一条简短消息。首次使用时的登录流程会打开浏览器完成授权,此时浏览器与终端必须走同一地区的节点,否则可能出现授权回调失败。授权完成后回到终端,能正常收到回复就说明配置完成。

替代方案:开启 TUN 模式

如果环境变量在你的环境里不生效(常见于 IDE 内置终端、Windows 下的某些工具链、Docker 容器),直接开启 TUN 模式更省事:

  1. 在 Clash Verge Rev 设置中找到服务模式,按提示安装(需要管理员权限)。
  2. 打开 TUN 模式开关,栈类型保持默认即可。
  3. 关闭系统代理开关,避免两者叠加造成混乱。
  4. 重新打开终端,无需环境变量,直接用上一节的 curl 命令验证。

TUN 模式的安装细节、DNS 设置与冲突处理,见 Clash Verge Rev TUN 模式教程。

常见报错与处理

报错最可能原因处理方式
fetch failed终端未走代理检查环境变量是否在当前窗口生效,或开启 TUN
ECONNRESET节点丢包或中途切换节点固定单个专线节点,避开自动测速分组
ETIMEDOUT / 请求超时节点不可用或端口写错用 curl 验证端口,换节点重试
407 Proxy Authentication Required本地端口开启了认证在客户端关闭端口认证,或在 URL 中写入账号密码
地区不支持节点地区不在支持列表切换到美国 / 日本 / 新加坡节点
授权回调失败浏览器与终端地区不一致两者使用同一节点后重新登录

更多排查思路见 Claude Code 连接失败怎么办。

长连接与丢包

Claude Code 的一次任务可能持续数分钟,期间保持流式连接。与网页对话不同,它对丢包非常敏感:延迟 200ms 的专线通常比延迟 60ms 但丢包 3% 的中转更好用。晚高峰频繁断开时,先看客户端的连接日志是否有大量重连,再考虑更换为低倍率的专线节点。

对 Claude Code 重度用户来说,二猫云提供 Claude 专用节点组且全节点 IEPL,长连接表现是它的主要卖点。更多选择见 Claude 机场推荐。

总结

  • Claude Code 不读取系统代理,必须用环境变量或 TUN 模式之一。
  • 环境变量写 http://127.0.0.1:混合端口,在同一终端中用 curl 验证出口 IP。
  • AI 分组固定为单个美国 / 日本 / 新加坡专线节点,不要用自动测速。
  • fetch failed 看代理是否生效,ECONNRESET 看丢包与节点切换,超时先验证端口。
  • 需要 IDE、Git、Docker 一起走代理时,直接开 TUN 模式最省事。

本文提到的机场

以下信息来自品牌数据库,价格与套餐以官网为准。通过本站链接注册,本站可能获得佣金,不影响评测结论。

二猫云

¥20 / 月起 · IEPL / 中转 / 直连

9.4

三网优化 IEPL 专线机场,联通 / 电信 / 移动入口分别优化,主打 ¥20 / 月 130 GB,Claude、Claude Code、ChatGPT、Codex、Gemini 在美 / 日 / 新节点全部实测可用,不限设备。

常见问题

已经开了系统代理,为什么 Claude Code 还是 fetch failed?

系统代理只对浏览器和少数遵循系统设置的应用生效,终端中的 Node.js 进程默认不读取它。需要额外设置 HTTPS_PROXY 环境变量,或者开启 TUN 模式。

环境变量应该写 http:// 还是 socks5://?

优先写 http://127.0.0.1:端口。Clash 系客户端的混合端口同时支持 HTTP 与 SOCKS5,而 Node.js 对 HTTP 代理的兼容性更好,SOCKS5 在某些版本下可能被忽略。

为什么 Claude Code 用着用着就 ECONNRESET?

多数是节点丢包或自动测速分组中途切换节点导致长连接被重置。把 AI 分组固定为单个专线节点,并避开晚高峰拥塞的中转线路,通常能解决。

TUN 模式和环境变量可以同时开吗?

可以,互不冲突。TUN 模式生效后环境变量实际上不再起作用,但保留它没有副作用。若只想让部分终端走代理,用环境变量更灵活。

公司或 WSL 环境下应该怎么配置?

WSL2 中需要把 127.0.0.1 换成 Windows 宿主机在 WSL 网段的地址,并在 Clash Verge Rev 中开启“允许局域网连接”。如果嫌麻烦,直接在 Windows 侧开启 TUN 模式,WSL 流量同样会被接管。

搜索文章、品牌、AI 工具、客户端与问题

提示:直接输入 Claude、Codex、IEPL、订阅失败 等关键词。也可以打开 搜索页。