解决 Claude Code 无法连接 API 的终极方案
解决 Claude Code 无法连接 API 的终极方案 (Windows 11)
Anthropic 发布的 Claude Code 是一款强大的命令行 AI 助手,但国内开发者在首次使用时,往往会卡在 Unable to connect to Anthropic services 或 ERR_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)
$

核心痛点
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
:: 脚本结束,变量自动销毁,不影响系统其他程序
第二步:正确保存编码 (关键点)
为了防止脚本运行时的中文提示乱码:
在记事本点击 “文件” -> “另存为”。
文件名设为
cl.bat。编码格式必须选择:
ANSI(在中文 Windows 下即 GBK)。
第三步:配置系统路径 (PATH) 可以不做,我就没做。
点击“开始”菜单,搜索 “编辑系统环境变量” 并打开。
点击 “环境变量” 按钮。
在下方的“系统变量”中找到 Path,点击 “编辑”。
点击 “新建”,填入你的脚本所在文件夹路径(如
D:\Tools)。一路点击确定。
bat 执行演示截图


方案优势
1. 极简唤起
现在,你不再需要输入长长的 set 命令,也不用修改系统全局设置。在任何目录下,只需输入:
cl— 启动 Claude Codecl /doctor— 运行网络诊断cl /compact— 清理对话历史
2. 精准分流
该代理仅在 cl 命令执行期间生效。当你运行 git push、ping 或其他开发工具时,网络依然走原有的直连或分流逻辑,互不干扰。
3. 环境纯净
脚本使用了 setlocal(在批处理结束时自动执行)的逻辑,确保了你的 CMD 环境永远保持纯净,不会因为一次调试而导致整个窗口的流量偏移。
常见问题排查
执行
cl提示找不到命令? 请确保你已经通过npm install -g @anthropic-ai/claude-code安装了原始程序。端口报错? 请双击 Shadowrocket 图标,进入 设置 -> 代理 -> 本地代理端口,确认是否为
1080。
更牛逼的方案
- 改配置文件
CC出现需要登陆的情况
方案1:www.cnblogs.com/gordonMlxg/article...
方案2:
修改settings.json文件
{
“apiKeyHelper”: “echo ‘xxx’”,
“env”: {
“ANTHROPIC_BASE_URL”: “”,
“ANTHROPIC_AUTH_TOKEN”: “xxx”
}
}
- CC-Switch-v3.9.0-3-Windows-Portable 这个来进行配置管理
github.com/farion1231/cc-switch
点击加号,创建自己的服务商代理(其实就是代理的url 以及 apikey)

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


clash 要开启tun模式。不会就去百度一下
- 只要解决了 锁区问题即可
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu