使用指南 · Claude Code 代理

Claude Code 怎么设置代理(Mac)

在 Mac 上让 Claude Code 走代理,通用做法是给它设置代理环境变量,终端、VS Code、桌面版的入口略有不同。也可以让代理客户端用 TUN 接管整机流量,这样 Claude Code 不需要任何配置。下面按你的使用方式分开讲。

简短回答

Claude Code 读取 HTTPS_PROXY 等环境变量,也可以写进 ~/.claude/settings.json 的 env 块。官方文档写明它不支持 SOCKS 代理,要填 HTTP 端口。

出处Claude Code 官方文档:Network configurationClaude Code 官方文档:Settings

先判断你的情况:终端、桌面版、VS Code 还是已装 Clash

按使用方式选入口
你的情况推荐做法要注意
终端里运行 claude(CLI)在启动前 export HTTPS_PROXY,或写进 ~/.claude/settings.json 的 env 块代理地址必须带 http:// 前缀;官方文档写明不支持 SOCKS
Claude 桌面版的 Code 标签(本地会话)写进 ~/.claude/settings.json 的 env 块,或加到桌面版的本地环境桌面版启动环境里已有同名变量时,settings.json 里的值会被忽略
VS Code 扩展写进 ~/.claude/settings.json 的 env 块(扩展与 CLI 共用这个文件)扩展设置里也有 claudeCode.environmentVariables,可给扩展起的 Claude 进程设变量
已经装了 Clash、Surge 之类的代理客户端把它的 HTTP 端口或混合端口填进上面的变量;或让它开启 TUN客户端只开系统代理时,Claude Code 不一定走代理,官方文档没有说它会读取系统代理
不想逐个设置用 TUN 接管整机流量,见下文「TUN」一节TUN 会接管整机,哪些流量走代理由规则决定

终端里怎么设置 Claude Code 代理(CLI 与 env 代理)

小写变量也有效。官方写明 Claude Code 按 https_proxy、HTTPS_PROXY、http_proxy、HTTP_PROXY 的顺序,用第一个已设置的。

代理需要账号密码时,写成 http://用户名:密码@地址:端口,不要把密码硬写进会被提交的脚本。

# 当前终端有效
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"

# 要长期生效,把上面几行写进 ~/.zshrc,然后新开一个终端
claude
  1. 确认代理客户端的 HTTP 端口

    在你的代理客户端里找 HTTP 端口或混合端口,下面以 127.0.0.1:7890 为例,以你自己的为准。官方文档不支持 SOCKS,所以不要填 SOCKS 端口。

  2. 在终端里导出变量

    变量要在启动 claude 之前设置。官方说明 shell 里的变量只在启动时读取一次,运行中的会话不会感知后面的修改。

  3. 启动 claude 并确认

    运行 claude,进入会话后输入 /status,看 Proxy 一行是不是你设置的地址。官方写明地址解析失败时(例如缺少 http://),Claude Code 会在启动时报错并指出是哪个变量。

用 settings.json 的 env 块设置代理配置,所有项目通用

把变量写进 ~/.claude/settings.json 的 env 块,Claude Code 直接从文件读取,不管你从哪里启动它。这个文件对你机器上的每个项目都有效,官方文档说明 VS Code 扩展、桌面版和终端读的是同一组设置文件。

同一个变量在 shell 和 env 块里都设置时,官方写明大多数会话里以 settings.json 的值为准,但桌面版本地会话会保留启动环境里已有的值。文件必须是严格 JSON,不能有注释和多余的逗号。

后续改动在你保存后会同步到运行中的会话。代理变量保险起见建议改完重新启动 claude,再用 /status 核对。

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

Claude Code 全局代理:TUN 模式不需要任何配置

TUN 是在系统里创建一块虚拟网卡,把流量接进代理核心。sing-box 的 TUN 入站在 Linux、Windows 和 macOS 上可用,打开 auto_route 后会把默认路由指向这块虚拟网卡。

因为接管发生在网络层,Claude Code 进程不需要读取任何代理变量,终端、VS Code、桌面版里启动的 claude 都会经过它。代价是它接管整台 Mac 的流量,哪些走代理、哪些直连要靠规则决定。

如果你说的全局代理是让整个 Claude Code 在所有项目里都用同一个代理,上一节的 ~/.claude/settings.json 就够了,不必开 TUN。

用 Pax 怎么做:不设环境变量,让 Claude Code 走代理

Pax Connect 是基于 sing-box 的 Mac 代理客户端,让 Claude Code、Codex 无需环境变量即可走代理,配置中转 API,并在本机统计 Token 用量与费用。App 界面目前只有中文,Pax 不提供线路,需要自己的节点或订阅。

  1. 导入自己的线路

    在「线路管理」里导入你已有的节点或订阅,选定要用的一条。支持的格式见导入节点与订阅文档。

  2. 选择 TUN 并开启代理

    代理模式选 TUN(也可以切换为系统代理),开启时按提示完成管理员授权。TUN 开启后,不需要再设 HTTPS_PROXY。

  3. 运行 claude 并发一条消息

    在终端、VS Code 或桌面版里正常使用 Claude Code,发一条消息,让它产生新连接。

  4. 到「流量监控 → 概览」核对

    Pax 会识别 Claude Code 进程,按应用查看时能看到它的连接、目标域名(例如 api.anthropic.com)、实际线路和最近命中的规则。进程名按安装位置识别,目前覆盖原生安装和 npm 全局安装;识别不到时,用目标域名对照也能判断。

流量监控概览,按应用显示实际连接、最近命中规则、延迟、连接数和传输量。
打开「流量监控 → 概览」,从应用、目标和实际去向核对连接。真实 Pax Demo 界面 · 内存模拟数据 · 中文 UI · 2026-11-11 截图
  1. 选择观察维度

    顶部按应用、域名或系统与进程查看,再选择时间范围。

  2. 对照规则与去向

    「实际连接」与「最近命中规则」分开读,不能只看代理开关。

  3. 查看明细

    从一行继续打开详情;字节、连接数与延迟不等于 HTTPS 对话正文。

只让 Claude Code 的流量走代理:用域名规则

Pax 的应用分流只能选 .app 应用,不能选 claude 这样的命令行程序,所以界面里没有只让 claude 进程走代理这一项。要达到相同效果,用域名规则:把 Claude Code 要访问的域名指向代理线路,其他流量直连。

Claude Code 官方列出的必需域名包括 api.anthropic.com、claude.ai、platform.claude.com。域名规则按域名生效,浏览器里访问 claude.ai 也会命中同一条规则。规则的优先级和匹配范围见「流量监控 → 规则」,保存后新产生的连接才会按新规则走。

流量监控的规则页,左侧为规则包,右侧为应用与域名优先规则、匹配范围和去向。
打开「流量监控 → 规则」,先选规则包,再核对匹配范围、去向与优先级。真实 Pax Demo 界面 · 内存模拟数据 · 中文 UI · 2026-11-11 截图
  1. 左侧选包

    「优先规则」高于其他包;自定义包、订阅包与内置包有不同维护方式。

  2. 右侧看条件

    应用规则与精确域名规则是不同匹配方式,不是应用加域名的组合条件。

  3. 最后验证去向

    保存后产生新连接,再到「概览」核对实际线路和命中规则。

验证与排查:怎么确认 Claude Code 走了代理

最直接的是 Claude Code 里的 /status,Proxy 一行显示生效的代理地址,解析不了的地址会被标为无效并忽略。想看更详细的日志,用 claude --debug 启动,日志写在 ~/.claude/debug/<会话 ID>.txt。

如果用的是 Pax,再对照「流量监控 → 概览」:Claude Code 的连接应出现在你选的线路下。两边结果一致才算数;网络通了不等于账号能用,401、403 之类的错误要从账号和中转地址上排查。

常见症状与处理
症状常见原因怎么处理
启动就报代理地址错误变量值缺少 http:// 前缀写成 http://127.0.0.1:7890,官方说明启动时会指出是哪个变量
/status 里没有 Proxy 一行变量没有传到 claude 进程从 Dock 启动的编辑器看不到终端里 export 的变量,改写进 ~/.claude/settings.json 的 env
填了 socks5:// 没有效果官方文档写明不支持 SOCKS 代理改填客户端的 HTTP 或混合端口,或改用 TUN
改了变量,当前会话没变化shell 变量只在启动时读取一次退出后重新运行 claude
出现证书错误代理做了 TLS 检查(公司网络常见)把代理的根证书路径设给 NODE_EXTRA_CA_CERTS
网络通了,但提示登录或权限问题代理成功不等于账号可用检查登录状态;用的是中转地址时看下面链接的中转配置

常见问题

claude code 代理配置在哪里改?

有两处:终端里 export 的环境变量,和 ~/.claude/settings.json 的 env 块。前者只对当前终端有效,后者对你的所有项目长期有效,VS Code 扩展和桌面版本地会话也读后者。

claude code cli 代理怎么设置?

在运行 claude 之前执行 export HTTPS_PROXY=http://127.0.0.1:7890,再启动 claude,进入后用 /status 核对 Proxy 一行。想永久生效,把这行写进 ~/.zshrc。

claude code env 代理怎么写?

写成 settings.json 里的一个 env 对象,键是 HTTPS_PROXY、HTTP_PROXY、NO_PROXY,值是字符串。值要带 http:// 前缀,不要写成 socks5://。保存后重新启动 claude。

claude code 支持 socks5 代理吗?

不支持。官方文档写明 Claude Code does not support SOCKS proxies。请改用代理客户端提供的 HTTP 端口或混合端口,或者改用 TUN 接管。

claude code 全局代理怎么设置?

一种是在 ~/.claude/settings.json 的 env 里写代理变量,让每个项目都用;另一种是让代理客户端开 TUN,接管整台 Mac 的流量,Claude Code 本身不用配置。Pax 选 TUN 模式就是后一种。

claude code 会读取 macOS 系统代理吗?

官方文档只列出环境变量和 settings.json 这两种配置方式,没有说明会读取 macOS 系统代理,所以不要把系统代理当成可靠方案。要稳定,用环境变量或 TUN。

claude code 需要代理吗?

取决于你的网络能不能直接访问它需要的域名,包括 api.anthropic.com、claude.ai 和 platform.claude.com。能直接访问就不需要;公司网络强制走代理,或这些域名不通时才需要。

让 Pax,来到你的 Mac。

获取 Mac 安装包。安装前请查看系统要求和首次打开说明。

macOS 26+ · Apple Silicon

让 Pax,来到你的 Mac。

获取 Mac 安装包。安装前请查看系统要求和首次打开说明。

下载 Mac 版

macOS 26+ · Apple Silicon

系统要求与安装说明 ↗
真实 Pax Demo 界面 · 内存模拟数据

2026-11-11 截图,App 为中文界面。示例数字不代表实测或账单,点开放大。