Claude Code 受到开发者关注后,不少新手会遇到一个看似矛盾的现象:浏览器可以打开相关页面,但终端里的安装命令、登录流程或代码请求却一直超时。原因通常不在 Claude Code 本身,而在于浏览器、系统代理和命令行程序使用的代理入口并不完全相同。Clash Verge 即使已经连接了节点,也不代表当前终端会自动读取它的代理设置。
这篇文章以 Clash Verge 和 mihomo 内核为基础,说明如何导入订阅、确认代理端口、为终端设置环境变量,再通过分流规则让 Claude Code 相关请求稳定经过代理。不同版本的 Clash Verge 菜单名称可能略有差异,但核心思路一致:先确认代理链路正常,再让终端显式使用本地代理,最后按日志和请求类型定位问题。
请先确认所使用的 Claude 服务、账号和网络访问方式符合所在地法律法规、服务条款以及组织的安全政策。本文只介绍本地代理客户端与终端环境的配置方法,不提供账号注册限制或服务区域限制的绕过方案。
准备 Clash Verge 与终端环境
在配置 Claude Code 之前,先把问题拆成三个独立层面:Clash Verge 是否正常运行,代理订阅是否包含可用节点,以及终端程序是否真的把请求交给了 Clash。只要其中一层没有配置好,后面的登录或命令测试都会失败。
确认客户端与内核状态
打开 Clash Verge 后,先在配置或订阅页面导入服务商提供的订阅链接。订阅链接包含节点和配置内容,属于敏感凭据,不要粘贴到公开网页、截图或无关工具中。导入完成后执行一次更新,确认配置列表中出现节点,并在代理页面选择一个延迟正常、状态可用的节点或代理组。
随后检查 Clash Verge 的运行状态。需要重点确认内核已经启动,而不是只有客户端窗口打开。通常可以在日志页看到内核启动信息,在设置页看到 HTTP、SOCKS 或 Mixed 监听端口。常见本地地址是 127.0.0.1,端口可能是 7890、7897 或其他自定义值,不能直接照抄示例端口。
| 检查项目 | 应确认的内容 | 异常时的表现 |
|---|---|---|
| 订阅状态 | 更新成功、节点数量正常、未过期 | 列表为空或所有节点同时不可用 |
| 内核状态 | mihomo 已启动且没有配置解析错误 | 界面存在但端口没有监听 |
| 代理端口 | 记录 HTTP 或 Mixed 端口号 | 终端连接 127.0.0.1 时被拒绝 |
| 当前节点 | 代理组已经选定可用节点 | 请求卡在连接或握手阶段 |
先用 curl 验证本地端口
不要一开始就用 Claude Code 排查。先使用最小化命令测试 Clash 的本地 HTTP 代理端口。下面假定端口为 7890,如果 Clash Verge 中显示的是其他端口,请替换为实际值:
curl -x http://127.0.0.1:7890 -I https://api.anthropic.com
这条命令的目的不是验证账号是否可用,而是确认终端能通过本地代理发出 HTTPS 请求。如果返回 HTTP 响应头,或者至少能看到来自远端的响应,说明本地端口、当前节点和基本代理链路大概率正常。如果提示 Connection refused,先检查内核是否启动及端口是否写错;如果提示超时,切换节点并查看 Clash 日志,不要急着修改 Claude Code 配置。
设置终端代理环境变量
系统代理开关主要服务于会主动读取系统设置的桌面应用,终端程序通常更依赖环境变量。Claude Code 的网络请求由命令行进程发起,因此建议在终端中显式设置 HTTP_PROXY、HTTPS_PROXY 和必要的 ALL_PROXY。对于 HTTPS 请求,本地 HTTP 代理也可以通过 CONNECT 方法建立隧道,不必强行把 HTTP 代理地址写成 SOCKS 地址。
macOS 与 Linux 配置方法
在当前终端会话中临时设置变量:
export HTTP_PROXY="http://127.0.0.1:7890"
export HTTPS_PROXY="http://127.0.0.1:7890"
export http_proxy="$HTTP_PROXY"
export https_proxy="$HTTPS_PROXY"
export NO_PROXY="127.0.0.1,localhost"
设置完成后,先查看变量是否生效:
env | grep -i proxy
curl -I https://api.anthropic.com
如果第二条命令没有使用代理参数却能得到响应,说明当前终端环境变量已被 curl 读取。若想让配置在每次打开终端时自动加载,可以把相关 export 行写入正在使用的 shell 启动文件。zsh 通常使用 ~/.zshrc,bash 常见的是 ~/.bashrc 或 ~/.bash_profile。修改后执行对应的 source 命令,或者关闭并重新打开终端。
source ~/.zshrc
# 或
source ~/.bashrc
如果终端通过 SOCKS5 端口连接,可以将 ALL_PROXY 指向 SOCKS5 地址。但要注意,并不是所有命令行工具都完整支持 SOCKS5 环境变量,而且有些工具只识别小写变量。遇到行为不一致时,优先使用 Clash 的 HTTP 或 Mixed 端口,再针对单个工具查阅其代理参数。
Windows 终端配置方法
PowerShell 中可以这样设置当前会话:
$env:HTTP_PROXY="http://127.0.0.1:7890"
$env:HTTPS_PROXY="http://127.0.0.1:7890"
$env:http_proxy=$env:HTTP_PROXY
$env:https_proxy=$env:HTTPS_PROXY
$env:NO_PROXY="127.0.0.1,localhost"
如果使用 CMD,对应写法是:
set HTTP_PROXY=http://127.0.0.1:7890
set HTTPS_PROXY=http://127.0.0.1:7890
set NO_PROXY=127.0.0.1,localhost
这些变量只对当前窗口及其启动的子进程有效。也就是说,在一个 PowerShell 窗口里设置代理后,从该窗口启动的 Claude Code 会继承变量,但已经打开的另一个终端窗口不会自动获得相同设置。使用 Windows Terminal 时,还要确认实际运行的是 PowerShell、Command Prompt 还是 WSL,因为它们拥有不同的环境配置文件。
不要把带有账号密码的代理地址长期写入 shell 历史记录或公开的项目配置文件。本文示例使用本机无认证端口;如果代理端口要求用户名和密码,应优先使用客户端提供的安全配置方式,并避免把凭据提交到 Git 仓库。
为 Claude Code 配置分流规则
终端代理变量解决的是“请求是否进入 Clash”,分流规则解决的是“进入 Clash 后走哪个出口”。如果规则把相关域名错误地送到直连组,即使环境变量设置正确,Claude Code 仍可能出现登录失败、API 请求超时或响应不完整。
在 Clash Verge 的规则模式下,建议先使用服务商配置中已有的规则组,确认目标域名能够匹配到预期的代理组。不要为了测试把所有流量永久设置为代理,这样会增加排查范围和本地网络负担。更稳妥的做法是针对实际使用到的服务域名添加明确规则,并把规则放在宽泛的兜底规则之前。
| 域名类别 | 用途示例 | 建议检查方向 |
|---|---|---|
| Claude 服务域名 | claude.ai 及其相关站点 | 确认网页登录和会话请求没有误走直连 |
| API 域名 | api.anthropic.com | 确认 API 请求匹配代理组,且没有被错误的直连规则覆盖 |
| 账号与控制台域名 | 登录或控制台页面使用的官方域名 | 通过日志查看实际请求域名,按实际结果补充规则 |
| 代码依赖域名 | npm、Git 或项目自身使用的仓库地址 | 根据项目需求单独判断,不要默认全部跟随 Claude 规则 |
规则匹配通常按从上到下的顺序执行。若前面存在宽泛的 DOMAIN-SUFFIX、GEOSITE 或规则集,它可能先于自定义规则命中。添加规则后,应在日志或连接页面中搜索目标域名,确认实际命中的规则名称和代理组,而不是只看界面上的“代理已开启”状态。
rules:
- DOMAIN-SUFFIX,anthropic.com,Claude
- DOMAIN-SUFFIX,claude.ai,Claude
- MATCH,GLOBAL
上面的配置只是规则结构示例,其中 Claude 必须替换为你配置中真实存在的代理组名称。不要直接把这段内容覆盖到订阅配置里,因为订阅更新可能覆盖手动修改,同时代理组名称、规则集格式和客户端支持范围也可能不同。若 Clash Verge 提供自定义规则或脚本功能,应按照当前客户端的配置方式维护,并在修改前保留原配置备份。
安装、登录与首次运行
完成代理测试后,再按 Claude Code 官方当前提供的安装方式安装命令行工具。不同系统和发行渠道的安装命令可能变化,应以官方文档或产品界面显示的命令为准。安装命令本身可能访问包管理器、代码仓库或其他依赖服务,因此“API 域名可访问”并不等于“安装源一定可访问”,安装失败时要在 Clash 日志中查看实际失败的域名。
安装完成后,在同一个已经设置代理变量的终端窗口启动 Claude Code。首次运行通常会进入登录或授权流程,可能同时涉及终端请求和浏览器页面。终端启动的浏览器不一定继承当前 shell 的环境变量,因此要分别确认两件事:一是浏览器能够打开登录页面,二是回到终端后授权结果能够被命令行程序读取。
- 先启动 Clash Verge 并选择可用节点。确认代理组不是空组,也不是自动测速后选中了不可用节点。
- 设置终端环境变量。执行
env | grep -i proxy或 PowerShell 的环境变量查看命令,确保变量存在。 - 测试基础 HTTPS 请求。使用 curl 访问相关官方域名,观察 Clash 日志是否出现对应连接。
- 启动 Claude Code 登录。如果浏览器页面无法打开,单独检查浏览器系统代理;如果页面能打开但终端没有完成授权,查看终端输出和 Clash 日志。
- 执行一个最小任务。先让工具读取一个小型项目目录或回答简单的代码问题,确认请求、响应和本地文件权限都正常后,再运行复杂任务。
首次运行时,不要同时修改节点、DNS、TUN、规则和终端变量。一次只改变一个因素,才能知道问题是在哪一步产生的。如果浏览器登录正常但终端请求超时,重点查看环境变量和命令行进程是否继承变量;如果终端请求能发出但返回鉴权错误,则应检查账号状态、登录会话或产品权限,这不是 Clash 节点连通性问题。
TUN 模式与终端代理的取舍
显式设置环境变量是最容易控制的方式,它只影响当前终端启动的程序,适合希望明确区分直连和代理的开发环境。缺点是部分工具不读取这些变量,子进程或容器也可能拥有独立网络环境。Git、npm、Python 包管理器、Docker 和某些 IDE 终端,都可能有自己的代理配置或进程启动方式,不能因为 Claude Code 能访问就认为整个开发环境都已打通。
TUN 模式通过虚拟网卡和路由接管更多系统流量,不依赖应用是否读取代理环境变量。对于不支持 HTTP 或 SOCKS 代理的程序,TUN 往往更方便。但它也会扩大影响范围,包括系统更新、局域网访问、虚拟机和容器流量都可能受到规则影响。启用 TUN 前,需要在 Clash Verge 中授予系统要求的权限,确认自动路由、DNS 劫持和局域网访问选项不会与现有 VPN、虚拟网卡或安全软件冲突。
| 方式 | 优点 | 限制 | 适合场景 |
|---|---|---|---|
| 环境变量 | 范围清晰,容易临时关闭和定位 | 工具可能不读取,子进程需继承设置 | 普通终端、curl、脚本和单个开发项目 |
| 系统代理 | 浏览器和桌面应用配置简单 | 终端及后台服务可能完全忽略 | 浏览器、GUI 工具和常规桌面应用 |
| TUN 模式 | 覆盖不支持代理设置的应用 | 影响范围大,可能与其他虚拟网络冲突 | 需要统一接管系统或容器流量的场景 |
常见故障的定位顺序
如果 Claude Code 无法使用,建议按照“端口、节点、规则、变量、工具”的顺序排查,不要一上来反复更换配置文件。
- 提示连接被拒绝:检查 Clash Verge 是否启动内核,以及终端变量中的端口是否与客户端实际监听端口一致。
- 提示连接超时:用同一个本地代理端口执行 curl,再切换其他节点。如果所有节点都超时,查看订阅状态、本地网络和 DNS。
- 浏览器能打开,终端不能访问:优先检查大小写环境变量、当前 shell 类型以及 Claude Code 是否从同一个终端窗口启动。
- 部分请求成功,部分请求失败:在 Clash 日志中搜索失败域名,检查规则是否把登录、API 或依赖下载域名分到了不同策略。
- 出现证书或 TLS 错误:先确认系统时间、节点协议和 DNS,不要为了长期使用而直接关闭证书校验。
- 登录成功但任务失败:区分网络错误、账号权限错误和项目本地错误。查看终端输出中的状态码和错误阶段,不要把所有错误都归因于代理。
排查时可以暂时把 Clash 日志级别调到 debug,复现一次问题后恢复为 info。在日志中搜索 anthropic、claude 或实际失败的域名,重点观察 DNS 解析、规则命中、连接建立和 TLS 握手分别是否成功。日志中出现目标域名且命中了预期代理组,只能证明请求进入了 Clash;最终是否成功还要看节点服务端和账号接口返回结果。
一套稳定的配置应当满足:Clash Verge 内核正常运行,订阅中有可用节点,本地 HTTP 或 Mixed 端口能被 curl 使用,终端环境变量已生效,相关域名命中预期规则,并且 TUN、系统代理与其他 VPN 没有重复接管同一流量。
完成以上配置后,日常使用 Claude Code 时只需要保持 Clash Verge 运行、确认代理组状态,并从已加载环境变量的终端启动工具即可。订阅更新、节点切换或规则调整后,重新用最小化 curl 命令验证一次,可以避免把节点失效误判为 Claude Code 安装问题。需要客户端和配置教程时,可前往 Clash 客户端下载页 或查看 配置教程。