使用教程教程

Claude Code 终端网络配置:代理环境变量与 settings.json 设置

Claude Code 在终端中运行,默认不读取系统代理设置。本文讲解在 macOS、Linux 与 Windows 上如何设置 HTTPS_PROXY 环境变量,如何写入 settings.json 的 env 字段让配置长期生效,以及验证方法和常见报错的排查思路。

作者 发布于 更新于 约 3 分钟阅读

简要回答

Claude Code 遵守标准的 HTTPS_PROXY 与 HTTP_PROXY 环境变量。启动前在终端中设置这两个变量,或把它们写入 ~/.claude/settings.json 的 env 字段,即可让它通过本地代理客户端联网;代理端口以你所用客户端的设置为准。

  • 系统代理对 Claude Code 通常无效,需要环境变量或 TUN 模式
  • 代理地址使用客户端的 HTTP / 混合端口,端口号以客户端设置为准
  • settings.json 的 env 字段可以让代理配置长期生效,不必每次 export
  • 出口节点必须位于 Claude 支持的地区,香港节点不可用
难度
入门
预计用时
约 10 分钟
适用平台
macOS / Linux / Windows

准备工作

  • 已安装 Claude Code,并能在终端中运行 claude 命令
  • 本地代理客户端已运行,并知道它的 HTTP 或混合端口
  • 当前节点位于 Claude 支持的国家或地区

问题说明

Claude Code 是运行在终端里的编程助手,它需要持续访问 Anthropic 的 API。与浏览器不同,终端程序一般不读取操作系统的代理设置,所以经常出现“浏览器能打开 claude.ai,终端里的 claude 却一直超时”的情况。

解决思路有两种:一是让代理客户端开启 TUN 模式,在网络层接管所有流量;二是为终端设置代理环境变量。本文重点讲第二种,它更可控,也不影响其他程序。客户端的 TUN 设置可参考 Clash Verge Rev 使用教程。

操作步骤

第 1 步:确认本地代理端口

打开代理客户端的设置页面,找到 HTTP 端口或混合端口(mixed port)。不同客户端默认值不同,常见的有 7890、7897 等。下文示例统一使用 7890,请替换为你自己的端口。

第 2 步:在当前终端设置环境变量

macOS / Linux(bash、zsh):

export HTTPS_PROXY=http://127.0.0.1:7890
export HTTP_PROXY=http://127.0.0.1:7890
export NO_PROXY=localhost,127.0.0.1
claude

Windows PowerShell:

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

Windows CMD:

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

注意代理地址的协议写 http://,即使访问的是 HTTPS 网站也是如此——这里指的是“与本地代理之间使用 HTTP 代理协议”。

第 3 步:写入 settings.json 长期生效

每次打开终端都要 export 比较麻烦。Claude Code 的配置文件支持 env 字段,其中的变量会在每次启动时自动应用。用户级配置文件位于 ~/.claude/settings.json(Windows 下在用户目录的 .claude 文件夹中):

{
  "env": {
    "HTTPS_PROXY": "http://127.0.0.1:7890",
    "HTTP_PROXY": "http://127.0.0.1:7890",
    "NO_PROXY": "localhost,127.0.0.1"
  }
}

如果文件中已经有其他配置,只需把 env 合并进去,保证 JSON 格式正确。项目目录下的 .claude/settings.json 也支持同样的字段,但它可能会被提交到代码仓库,个人代理地址更适合放在用户级配置中。

第 4 步(可选):写一个开关函数

如果你希望在 shell 中随时切换,可以把下面的函数加入 ~/.zshrc 或 ~/.bashrc:

proxy_on() {
  export HTTPS_PROXY=http://127.0.0.1:7890
  export HTTP_PROXY=http://127.0.0.1:7890
  export NO_PROXY=localhost,127.0.0.1
  echo "proxy on"
}
proxy_off() {
  unset HTTPS_PROXY HTTP_PROXY NO_PROXY
  echo "proxy off"
}

关于 TUN 模式与编辑器集成终端

如果代理客户端已经开启 TUN 模式,终端流量会在网络层被接管,此时不设置环境变量 Claude Code 也能联网。两种方式可以同时存在,但排查问题时建议只保留一种,便于判断是哪一层出了问题。

在 VS Code、Cursor 等编辑器的集成终端中运行 Claude Code 时,终端会继承编辑器启动时的环境变量。如果你是在设置环境变量之前打开的编辑器,需要完全退出编辑器再重新打开;写在 settings.json 中的 env 则不受这个影响,这也是推荐长期使用 settings.json 的原因之一。

验证是否生效

先确认变量已设置,再测试 API 域名是否可达:

env | grep -i proxy
curl -I https://api.anthropic.com

只要 curl 能返回一行 HTTP 状态(即使是 404 之类的状态码),就说明网络已经打通;如果长时间无输出后超时,说明请求没有经过代理。随后启动 claude,能正常进入对话即表示配置完成。

常见错误

报错或现象 可能原因 处理方法
Connection refused / ECONNREFUSED 代理客户端未运行或端口错误 核对客户端端口并确认已启动
请求长时间无响应后超时 环境变量未生效或拼写错误 用 env | grep -i proxy 检查
返回 403 或提示地区不支持 出口节点不在支持地区 切换到支持地区的节点
在新终端窗口中失效 只用 export 设置了当前会话 写入 settings.json 或 shell 配置文件

问题排查

  1. 地区相关的拒绝:换节点比改配置更有效,详见 Claude 提示地区不可用。
  2. 使用中途频繁断开:长任务对连接稳定性要求高,节点选择可参考 Claude 稳定梯子怎么选。
  3. 公司网络下有自己的代理:把 HTTPS_PROXY 指向公司代理即可,原理相同。

更多 Claude 相关内容可在 Claude 专题 中查看。同样的方法也适用于其他命令行 AI 工具,例如 Codex CLI 网络配置。

本站主推

二猫云

9.4/10

  • 三网优化 IEPL 专线,丢包 0.2%
  • Claude / Codex / ChatGPT 全实测可用
  • 不限设备,年付折合 ¥7.4 / 月

¥20 / 月起不限设备

本站专属 8 折TIZIZHINAN

访问二猫云官网查看二猫云完整评测

推广链接,不影响评分与排名

常见问题

Claude Code 支持 SOCKS5 代理吗?

官方文档说明的代理方式是 HTTPS_PROXY / HTTP_PROXY,不建议使用 SOCKS 地址。大多数代理客户端都提供 HTTP 或混合端口,直接使用该端口即可。

浏览器能打开 claude.ai,为什么 Claude Code 连不上?

浏览器使用系统代理,而终端程序通常不读取系统代理设置。需要为终端设置 HTTPS_PROXY 环境变量,或在客户端中开启 TUN 模式。

settings.json 里的 env 和 shell 里的 export 有什么区别?

export 只对当前终端会话生效,关闭窗口就失效;写在 ~/.claude/settings.json 的 env 字段中,每次启动 Claude Code 都会自动应用。

设置代理后提示 Connection refused 是什么原因?

说明本地端口上没有代理在监听,通常是代理客户端没有运行或端口号填错。打开客户端设置核对端口即可。

下一步阅读