使用教程教程
Claude Code 终端网络配置:代理环境变量与 settings.json 设置
Claude Code 在终端中运行,默认不读取系统代理设置。本文讲解在 macOS、Linux 与 Windows 上如何设置 HTTPS_PROXY 环境变量,如何写入 settings.json 的 env 字段让配置长期生效,以及验证方法和常见报错的排查思路。
简要回答
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 配置文件 |
问题排查
- 地区相关的拒绝:换节点比改配置更有效,详见 Claude 提示地区不可用。
- 使用中途频繁断开:长任务对连接稳定性要求高,节点选择可参考 Claude 稳定梯子怎么选。
- 公司网络下有自己的代理:把 HTTPS_PROXY 指向公司代理即可,原理相同。
更多 Claude 相关内容可在 Claude 专题 中查看。同样的方法也适用于其他命令行 AI 工具,例如 Codex CLI 网络配置。
本站主推
二猫云
9.4/10
- 三网优化 IEPL 专线,丢包 0.2%
- Claude / Codex / ChatGPT 全实测可用
- 不限设备,年付折合 ¥7.4 / 月
常见问题
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 是什么原因?
说明本地端口上没有代理在监听,通常是代理客户端没有运行或端口号填错。打开客户端设置核对端口即可。