Claude Code这两个月热度很高,很多人第一次上手就卡在Windows上:官方一键脚本报一屏红字、npm装不上、装上了敲claude直接403。我周末花了一晚上把这条路走通,中间踩了6个坑,每个都留了截图。
先说清楚这篇能给你什么:一份按顺序排的踩坑清单,每个坑一句话讲清是什么、怎么判断、怎么绕过去,最后附上我实际用的接入配置。不是评测,也不吹性能,就是把弯路记下来让你少走。
环境:Windows 10 / PowerShell 5.1 / Node.js v24.21.0 / npm 11.19.0 / Claude Code 2.1.278。
折腾完的样子,Claude Code主界面:

下面按时间顺序说我是怎么走到这一步的。
按文档在PowerShell里执行:
irm https://claude.ai/install.ps1 | iex
结果是这样:

报错里全是不支持var关键字、标记&&不是有效语句分隔符——这些都是JavaScript语法。PowerShell在解析一个网页,不是脚本。 也就是说irm拿回来的不是安装脚本,是一个HTML页面。
这跟PowerShell版本无关,升级没用。直接换npm装就行,别在这纠结。

第一眼以为是npm源挂了。仔细看报错URL里的包名:@anthropic-ai/claude-codenpm——末尾多了个npm。回头看命令行,两条命令粘成了一条。
经验:npm报E404先逐字读包名,九成是拼错,不是源的问题。
换国内镜像重新装:
npm config set registry https://registry.npmmirror.com
npm install -g @anthropic-ai/claude-code

13秒装完。会有几行npm warn install-scripts,是新版npm默认不跑第三方包的安装脚本,是warn不是error,不影响使用。
claude --version

能出版本号,说明安装、PATH、Node都没问题。记住这个结论,后面不管报什么错,都不用再怀疑"是不是没装好"。 排查最怕同时怀疑三件事。

Failed to connect to api.anthropic.com: Status 403
Note: Claude Code might not be available in your country.
这段话要拆开看:
403是服务端明确拒绝,说明请求发出去了、也收到回应了,不是网络不通(网络不通会是超时或DNS错误,不会有HTTP状态码)api.anthropic.com,官方直连这一步很多人开始挂代理。我也挂了,下一个坑就是它。
真正可行的思路是:Claude Code本身支持把请求指向兼容Anthropic协议的端点,不是写死只能连官方的。我用的是Crazyrouter,原因后面说。

从文档抄了一段settings.json的内容,直接糊进终端回车,报UnexpectedToken。低级错误,但值得说一句:JSON是配置文件的内容,不是命令,它该待在%USERPROFILE%\.claude\settings.json里。
Win+R输入%USERPROFILE%\.claude可以直接打开这个目录:


ConnectionRefused的意思很具体:本机那个代理端口上没有程序在监听,是我代理软件端口填错了,跟Claude Code无关。改成对的端口之后,报错照旧。
这一轮是白折腾的。用国内可直连的端点本来就不需要代理,是我自己往链路里塞了个多余的东西。排查阶段建议先清掉:
Remove-Item Env:HTTP_PROXY, Env:HTTPS_PROXY -ErrorAction SilentlyContinue
配置文件确认内容没问题:

再启动,还是403,而且报错里的主机名仍然是api.anthropic.com:

这里有个值得记的判断:报错里的主机名比状态码更有用。 403只告诉你"被拒了",主机名告诉你"请求根本没打到你以为的地方"。
之后我同时调整了端点、鉴权变量和代理设置,CLI进了首次运行流程——选主题、信任目录、主界面:


说句实话:因为几项配置是一起改的,我没法从截图上断定是哪一项单独起了作用。所以下面给的是按当前Crazyrouter文档写的配置,不是我那次的历史配置。
%USERPROFILE%\.claude\settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.crazyrouter.com",
"ANTHROPIC_API_KEY": "替换为你自己生成的密钥"
}
}
两个变量,不装插件、不改代码。三个注意点:
ANTHROPIC_BASE_URL填到域名根,别照搬OpenAI SDK那套带/v1的写法,路径拼接以Claude Code和服务文档为准。
我筛端点主要看三件事:
可用模型和条款会变,发布前我又核了一遍当前模型页面,你用的时候以那个为准。变量和模型名对着接入指南核一下,需要接入就生成自己的凭据。
| 报错 | 真正原因 | 怎么办 |
|---|---|---|
不支持var关键字 |
irm拿到的是网页不是脚本 |
换npm装 |
E404 + claude-codenpm |
命令粘连、包名多字符 | 重新逐条输入 |
npm warn install-scripts |
npm默认不跑安装脚本 | 忽略,是warn |
api.anthropic.com: 403 |
官方端点拒绝 | 改用兼容端点 |
ParserError / UnexpectedToken |
JSON被当命令执行 | 写进settings.json |
ConnectionRefused |
本地代理端口没监听 | 清掉代理变量 |
| 配了Base URL仍连官方 | 配置组合没被接受 | 按当前文档核对两个变量 |
Q:claude --version正常就说明能用了吗?
只说明CLI装好了,不说明API可用。后面要看请求目标和响应。
Q:403一定是Key错了吗?
不一定。先看报错里的主机名,再确认走的是官方登录还是第三方兼容端点。
Q:一定要开代理吗?
用国内可直连的端点不需要。排查阶段先清掉代理变量,避免ConnectionRefused这种干扰项。
Q:ConnectionRefused先查什么?
查代理端口是不是真的有程序在监听。它发生在请求到达远端之前。
Q:能直接发原始截图吗?
先遮掉Key、账号和私人路径。Key一旦暴露过就作废重生成,打码只能防后续传播。
Q:进了主界面就代表接入成功了吗?
代表初始化完成。要说"模型可用",还得跑一次有完整回答的请求。
你装Claude Code卡在哪一步了?评论区说下报错,我看到会回。
环境:Windows 10 / PowerShell 5.1 / Node.js v24.21.0 / npm 11.19.0 / Claude Code 2.1.278,2026年9月实测。工具迭代快,提示文案可能变化,以你本机输出为准。