解决 Claude Code 无法连接 API 的终极方案

AI摘要
【知识分享】本文针对Windows 11环境下Claude Code命令行工具因网络限制无法连接API的问题,提供了通过编写.bat包装脚本设置局部HTTP代理的解决方案。文章详细说明了创建脚本、设置编码、配置环境变量的步骤,旨在实现精准代理而不影响系统其他网络连接,并提及了其他配置管理工具作为备选方案。

解决 Claude Code 无法连接 API 的终极方案 (Windows 11)

Anthropic 发布的 Claude Code 是一款强大的命令行 AI 助手,但国内开发者在首次使用时,往往会卡在 Unable to connect to Anthropic servicesERR_BAD_REQUEST 这一步。

由于命令行工具(CLI)通常不会自动读取浏览器代理或系统的 PAC 脚本,我们需要一种既能精准代理、又不污染全局网络的方案。本文将为你提供一劳永逸的解决方法。

错误如下:

Welcome to Claude Code v2.0.76
…………………………………………………………………………………………………………………………………………………………

     *                                       █████▓▓░
                                 *         ███▓░     ░░
            ░░░░░░                        ███▓░
    ░░░   ░░░░░░░░░░                      ███▓░
   ░░░░░░░░░░░░░░░░░░░    *                ██▓░░      ▓
                                             ░▓▓███▓▓░
 *                                 ░░░░
                                 ░░░░░░░░
                               ░░░░░░░░░░░░░░░░
       █████████                                        *
      ██▄█████▄██                        *
       █████████      *
…………………█ █   █ █………………………………………………………………………………………………………………

 Unable to connect to Anthropic services

 Failed to connect to api.anthropic.com: ERR_BAD_REQUEST

 Please check your internet connection and network settings.

 Note: Claude Code might not be available in your country. Check supported
 countries at https://anthropic.com/supported-countries

Lenovo@DESKTOP-JNINH81 MINGW64 /d/work/phpstudy/youyi/yygang (ai_search)
$





解决 Claude Code 无法连接 API 的终极方案


核心痛点

  • PAC 模式失效:Shadowrocket 的 PAC 规则仅对 GUI 应用友好,CLI 工具往往视而不见。

  • 全局变量污染:设置系统级的 HTTP_PROXY 会导致 Git、NPM、国内内网服务全部走代理,不仅慢,还可能导致证书错误。

  • 字符编码困扰:在 Windows 11 的 CMD/PowerShell 中,中文字符处理不当会导致脚本运行异常。


终极方案:封装“局部代理”包装器脚本

通过编写一个简单的 .bat 包装脚本,我们可以实现:只有在运行 Claude 时才开启代理,运行结束即刻销毁环境。

第一步:创建包装脚本 cl.bat

在电脑中找一个固定的文件夹(例如 D:\Tools),新建一个文本文件,命名为 cl.bat,并将以下代码粘贴进去:

代码段

@echo off
:: 1. 切换控制台编码为 UTF-8,确保中文显示正常
chcp 65001 >nul

:: 2. 设置局部环境变量 (仅对当前进程及其子进程有效)
:: 请确保 1080 与你的 Shadowrocket 本地代理端口一致
set HTTP_PROXY=http://127.0.0.1:1080
set HTTPS_PROXY=http://127.0.0.1:1080

echo [Claude CLI] 代理隧道已建立 (Port:1080)...

:: 3. 动态寻找并执行原始的 claude 程序
:: %* 允许你传递所有参数,如 cl /doctor 或 cl "explain this code"
for /f "delims=" %%i in ('where claude') do (
    "%%i" %*
    goto :finish
)

:finish
:: 脚本结束,变量自动销毁,不影响系统其他程序

第二步:正确保存编码 (关键点)

为了防止脚本运行时的中文提示乱码:

  1. 在记事本点击 “文件” -> “另存为”

  2. 文件名设为 cl.bat

  3. 编码格式必须选择:ANSI (在中文 Windows 下即 GBK)。

第三步:配置系统路径 (PATH) 可以不做,我就没做。

  1. 点击“开始”菜单,搜索 “编辑系统环境变量” 并打开。

  2. 点击 “环境变量” 按钮。

  3. 在下方的“系统变量”中找到 Path,点击 “编辑”

  4. 点击 “新建”,填入你的脚本所在文件夹路径(如 D:\Tools)。

  5. 一路点击确定。


bat 执行演示截图

解决 Claude Code 无法连接 API 的终极方案

解决 Claude Code 无法连接 API 的终极方案

方案优势

1. 极简唤起

现在,你不再需要输入长长的 set 命令,也不用修改系统全局设置。在任何目录下,只需输入:

  • cl — 启动 Claude Code

  • cl /doctor — 运行网络诊断

  • cl /compact — 清理对话历史

2. 精准分流

该代理仅在 cl 命令执行期间生效。当你运行 git pushping 或其他开发工具时,网络依然走原有的直连或分流逻辑,互不干扰。

3. 环境纯净

脚本使用了 setlocal(在批处理结束时自动执行)的逻辑,确保了你的 CMD 环境永远保持纯净,不会因为一次调试而导致整个窗口的流量偏移。


常见问题排查

  • 执行 cl 提示找不到命令? 请确保你已经通过 npm install -g @anthropic-ai/claude-code 安装了原始程序。

  • 端口报错? 请双击 Shadowrocket 图标,进入 设置 -> 代理 -> 本地代理端口,确认是否为 1080

更牛逼的方案

  1. 改配置文件
    CC出现需要登陆的情况
    方案1:www.cnblogs.com/gordonMlxg/article...

方案2:
修改settings.json文件

{
“apiKeyHelper”: “echo ‘xxx’”,
“env”: {
“ANTHROPIC_BASE_URL”: “”,
“ANTHROPIC_AUTH_TOKEN”: “xxx”
}
}

  1. CC-Switch-v3.9.0-3-Windows-Portable 这个来进行配置管理

github.com/farion1231/cc-switch

点击加号,创建自己的服务商代理(其实就是代理的url 以及 apikey)

解决 Claude Code 无法连接 API 的终极方案

  1. 使用cherry code 配置代理商 跑一下,注意用好点的梯子,比如clash verge,开启tun模式。

www.cherry-ai.com/download

解决 Claude Code 无法连接 API 的终极方案

解决 Claude Code 无法连接 API 的终极方案

clash 要开启tun模式。不会就去百度一下
解决 Claude Code 无法连接 API 的终极方案

  1. 只要解决了 锁区问题即可
本作品采用《CC 协议》,转载必须注明作者和本文链接
• 15年技术深耕:理论扎实 + 实战丰富,教学经验让复杂技术变简单 • 8年企业历练:不仅懂技术,更懂业务落地与项目实操 • 全栈服务力:技术培训 | 软件定制开发 | AI智能化升级 关注「上海PHP自学中心」获取实战干货
wangchunbo
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
啥活都干 @ 一人企业
文章
359
粉丝
372
喜欢
582
收藏
1154
排名:58
访问:12.9 万
私信
所有博文
社区赞助商