Claude 专题 · 子页
Claude Code 走代理:环境变量、TUN 模式、npm 安装与报错对照
Claude Code 在终端里运行,不会自动使用浏览器代理。本文介绍 zsh、bash、PowerShell 下设置 HTTPS_PROXY 的方法、TUN 模式、npm 通过代理安装、用 curl 验证连通性以及常见报错处理。
简短回答
Claude Code 需要终端本身能访问 api.anthropic.com。最直接的做法是在终端设置 HTTPS_PROXY 和 HTTP_PROXY 指向本地代理端口,或在代理客户端开启 TUN 模式,并确保出口节点位于 Anthropic 支持地区。
快速步骤 · 5 步
- 01确认代理端口
在代理客户端设置中查看本地 HTTP 或混合端口,Clash 系客户端常见默认值为 7890。
- 02设置环境变量
在终端中设置 HTTPS_PROXY 与 HTTP_PROXY 指向 http://127.0.0.1:端口,或写入 shell 配置文件长期生效。
- 03验证连通性
运行 curl -I https://api.anthropic.com,能返回 HTTP 状态行即说明网络可达。
- 04安装 Claude Code
按官方文档安装;若 npm 安装卡住,为 npm 配置代理后重试。
- 05登录并测试
在同一终端运行 claude 完成登录,执行一个简单任务确认连接稳定。
为什么 Claude Code 需要单独配置网络
Claude Code 是运行在终端里的编程代理,它通过 HTTPS 持续与 Anthropic 的 API 通信。和浏览器不同,终端程序通常不会读取系统代理设置,所以“网页版能用、Claude Code 连不上”是最常见的情况。解决方法只有两类:给终端设置代理环境变量,或在代理客户端开启 TUN 模式接管全部流量。无论哪种方式,出口节点都必须位于 Anthropic 支持地区,截至 2026 年 10 月,中国大陆和香港不在列表内,以官方列表为准。Claude 整体的地区与节点建议见 Claude 网络环境与使用完整指南。
Claude Code 会访问哪些服务
了解 Claude Code 的网络去向,有助于写分流规则和排查问题。常见的访问对象包括:
| 用途 | 常见域名 | 说明 |
|---|---|---|
| 模型调用 | api.anthropic.com | 每次对话和工具调用都依赖它,是最核心的连接 |
| 账号登录与授权 | claude.ai、claude.com、anthropic.com 等 | 首次登录或重新授权时使用 |
| 安装与更新 | npm 仓库或官方安装源 | 取决于你使用的安装方式 |
完整且最新的域名清单请以官方网络配置文档为准。使用分流规则时,把 anthropic.com、claude.ai、claude.com 三个域名后缀统一指向同一个支持地区的策略组即可覆盖主要请求。
两种方式怎么选
| 方式 | 优点 | 缺点 | 适合 |
|---|---|---|---|
| 环境变量 | 精确可控,只影响当前终端 | 每个终端或 shell 都要配置;部分工具不读取 | 熟悉命令行的开发者 |
| TUN 模式 | 一次开启,所有程序生效 | 需要管理员权限;可能影响局域网或其他 VPN | 新手、多工具同时使用 |
两种方式不必同时使用。建议先用环境变量把问题定位清楚,再决定是否长期开启 TUN。
第一步:确认本地代理端口
打开代理客户端的设置页,找到 HTTP 端口或混合端口(Mixed Port)。Clash 系客户端常见的默认混合端口是 7890,下文均以此为例,请替换为你自己客户端里的实际端口。
第二步:设置代理环境变量
macOS / Linux(zsh 或 bash)
临时生效,只对当前终端窗口有效:
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
长期生效,写入 shell 配置文件(macOS 默认 zsh 使用 ~/.zshrc,bash 使用 ~/.bashrc):
echo 'export HTTPS_PROXY=http://127.0.0.1:7890' >> ~/.zshrc
echo 'export HTTP_PROXY=http://127.0.0.1:7890' >> ~/.zshrc
source ~/.zshrc
Windows PowerShell
临时生效:
$env:HTTPS_PROXY="http://127.0.0.1:7890"
$env:HTTP_PROXY="http://127.0.0.1:7890"
为当前用户长期设置(设置后需重新打开终端):
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://127.0.0.1:7890", "User")
[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://127.0.0.1:7890", "User")
写入 Claude Code 的配置文件
Claude Code 的 settings.json 支持 env 字段,可以只对 Claude Code 生效,而不影响其他命令。用户级配置文件通常位于 ~/.claude/settings.json:
{
"env": {
"HTTPS_PROXY": "http://127.0.0.1:7890",
"HTTP_PROXY": "http://127.0.0.1:7890"
}
}
更多终端代理写法(包括 git、npm 等工具)可参考 终端代理设置。
第三步:用 curl 验证连通性
在设置了环境变量的同一个终端里运行:
curl -I https://api.anthropic.com
只要返回 HTTP/2 404 之类的状态行,就说明网络已经可达(直接访问 API 根路径返回 4xx 状态码属于正常现象)。如果长时间无响应或提示 Could not resolve host、Connection timed out,说明请求没有经过代理,或者节点本身不可用。
提示
运行 echo $HTTPS_PROXY(PowerShell 为 echo $env:HTTPS_PROXY)可以确认变量是否在当前终端生效。新开的终端窗口不会继承旧窗口里临时设置的变量。
检查终端的实际出口地区
能连上不等于地区正确。在同一终端中运行:
curl -s https://claude.ai/cdn-cgi/trace | grep loc
输出 loc=US、loc=JP 等说明出口在支持地区;如果是 loc=HK 或 loc=CN,说明终端流量走到了不支持地区的节点,或者根本没有走代理,需要检查分流规则或策略组当前选中的节点。
第四步:通过代理安装 Claude Code
Claude Code 可以通过 npm 安装,官方也提供原生安装方式,具体命令以官方文档为准。npm 安装命令如下:
npm install -g @anthropic-ai/claude-code
如果安装长时间卡住,可以为 npm 单独配置代理:
npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890
不再需要时用 npm config delete proxy 和 npm config delete https-proxy 移除。
第五步:开启 TUN 模式(可选)
如果你不想逐个配置环境变量,或者使用的 IDE、插件不读取环境变量,可以在客户端中开启 TUN 模式。以 Clash Verge Rev 为例,在设置中打开“虚拟网卡模式”,首次开启通常需要授予管理员权限或安装服务组件,详细步骤见 Clash Verge Rev 完整使用教程。开启后,仍需确认 Anthropic 相关域名的分流规则指向受支持地区的节点。
WSL 与 IDE 中的特殊情况
WSL2:在 Windows 的 WSL2 默认网络模式下,Linux 子系统里的 127.0.0.1 指向的是子系统自身,而不是 Windows 主机,因此直接填 http://127.0.0.1:7890 往往连不上。常见的解决方法有两种:一是在 WSL 的网络设置中启用镜像网络模式(mirrored),让子系统与主机共享本地地址;二是把代理地址改为 Windows 主机在虚拟网络中的 IP,并在代理客户端中开启“允许局域网连接”。具体选项以微软 WSL 官方文档为准。
IDE 集成:Claude Code 也可以在 VS Code、JetBrains 等编辑器中使用。编辑器内置终端通常会继承编辑器进程的环境变量;而在 macOS 上从程序坞或启动台打开的编辑器,一般不会读取 ~/.zshrc。遇到“外部终端能用、编辑器里不能用”时,可以从已设置代理的终端里启动编辑器,或改用 settings.json 的 env 字段、TUN 模式。
取消代理:不再需要时,可在终端执行:
unset HTTPS_PROXY HTTP_PROXY NO_PROXY
PowerShell 中使用 Remove-Item Env:HTTPS_PROXY 和 Remove-Item Env:HTTP_PROXY。如果写进了 shell 配置文件或用户环境变量,还需要删除对应的行或条目。
第六步:登录与运行
在已配置代理的终端中进入项目目录,运行 claude。首次使用会引导你登录,通常会打开浏览器完成授权;也可以使用 Anthropic Console 中创建的 API Key。登录完成后,先让它执行一个简单任务(例如解释某个文件),确认连接稳定,再开始大型任务。
常见报错与处理
| 报错或现象 | 可能原因 | 处理方法 |
|---|---|---|
连接超时、ETIMEDOUT | 终端未走代理,或节点不可用 | 检查环境变量,用 curl 验证;换节点 |
ECONNREFUSED 127.0.0.1:7890 | 端口写错或代理客户端未运行 | 核对客户端端口,确认客户端已启动 |
| 403 或提示地区不支持 | 出口在不支持地区,如香港 | 切换到美国、日本、新加坡或英国节点 |
| 证书相关错误 | 公司网络或安全软件做了 HTTPS 解密 | 按官方文档配置自定义 CA,或换网络环境 |
| 长任务中途中断 | 节点切换或晚高峰拥堵 | 固定节点,关闭自动测速切换 |
| npm 安装卡住 | npm 未走代理 | 为 npm 配置 proxy 与 https-proxy |
更完整的排查顺序见 Claude Code 网络连接失败怎么办。
注意
不要把 API Key 写进会提交到代码仓库的文件,也不要把包含代理订阅地址或密钥的配置文件分享给他人。
请在遵守所在地法律法规与 Anthropic 服务条款的前提下使用以上配置。
常见问题
Q浏览器能打开 Claude,为什么 Claude Code 还是连不上?
浏览器读取的是系统代理,而终端程序通常只读取环境变量。没有设置 HTTPS_PROXY 或开启 TUN 模式时,Claude Code 的请求会直接发出,从而超时或被拒绝。
Q环境变量写哪个端口?
写你本地代理客户端监听的 HTTP 或混合端口。Clash 系客户端常见默认是 7890,但不同客户端和配置可能不同,请在客户端设置中确认。
Q可以用 socks5 地址吗?
官方文档描述的是 HTTP/HTTPS 代理配置。为了减少兼容问题,建议填写 http:// 开头的地址;Clash 的混合端口同时支持 HTTP 与 SOCKS5,可以直接使用。
Q开了 TUN 模式还需要设置环境变量吗?
一般不需要。TUN 模式在系统层面接管流量,终端程序也会经过代理。如果同时设置了环境变量,请确保两者指向同一个客户端,避免重复代理。
Q长任务做到一半断开怎么办?
多数是节点切换或线路波动导致。为 Claude 相关域名固定一个节点,关闭自动测速切换,并尽量避开晚高峰时段运行大型任务。