凌晨一点,我盯着PowerShell窗口里那行红色的报错信息,心想这世界上怎么会有这么多看不懂的英文错误提示。想当年装个QQ只需要一路"下一步"就能搞定,现在装个AI工具,感觉像在破解核弹密码。但转念一想,能在中国大陆用上Claude Code,这点困难算什么呢?
第一章:Node.js的温柔陷阱
打开Node.js安装包的那一刻,我以为这会是个简单的旅程。毕竟这年头,哪个软件安装不是"欢迎→同意→下一步→完成"的套路?
但当我看到"Tools for Native Modules"这个选项时,我愣住了。翻译成中文就是"原生模块工具",听起来像是某种高科技武器的名字。💭
这个选项到底是什么?
说实话,大部分人第一次看到这个选项都会懵。它的真实身份是:
一个会自动帮你安装Python、Visual Studio构建工具、Chocolatey以及一堆Windows更新的"贴心小棉袄"
听起来很美好对吧?但问题是:
- 它需要大约7GB的磁盘空间
- 安装过程可能需要10-30分钟
- 期间会弹出新窗口,显示一堆像黑客帝国一样的命令行文字
那到底要不要勾选?
如果你是个正常人类(不是计算机专业毕业的那种),我建议勾选。因为将来你安装某些npm包时,它们可能包含C/C++代码,需要在你电脑上现场编译。没有这些工具,你就会看到满屏的报错,然后在百度上搜索到一百种解决方案,每一种都不管用。🤦
安装后的黑色窗口
点击"Next"后,如果你勾选了那个选项,会弹出一个黑色的PowerShell窗口,上面写着中文"请按任意键继续…"
这时候不要慌。这不是电脑中毒,也不是被黑客攻击。这只是Node.js在礼貌地询问你:"我要开始装一堆东西了,你确定吗?"
按下空格键,然后去泡杯咖啡。或者像我一样,打开手机刷二十分钟短视频。
第二章:PowerShell的权力游戏
Node.js装好了,我迫不及待地打开PowerShell,输入npm -v
想看看版本号。
然后电脑给了我一记响亮的耳光:
PS E:\cat99\desktop> npm -v
npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsof
t.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ npm -v
+ ~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
这是什么鬼?🤨
Windows的过度保护
原来Windows的PowerShell有个叫"执行策略"的东西,默认设置是不让你运行任何脚本。这就像你买了把菜刀,但厂家担心你用它做坏事,所以出厂时就把刀刃磨钝了。
解决方法有三种:
方法 | 适用场景 | 持久性 | 难度 |
---|---|---|---|
修改执行策略 | 经常用PowerShell | 永久有效 | ⭐⭐ |
使用CMD | 偶尔用npm | 不需要设置 | ⭐ |
临时绕过 | 单次使用 | 关闭窗口失效 | ⭐⭐ |
我的选择是第一种,因为我不想每次都重复这个过程:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
以管理员身份运行PowerShell,输入这行命令,按Y确认。从此以后,你的PowerShell就不再是个胆小鬼了。💪
那条烦人的npm更新提示
当你终于成功运行npm -v
后,可能会看到:
npm notice New major version of npm available! 10.9.3 -> 11.6.1
每次看到这个提示,我都想问:这到底是在提醒我还是在催促我?
真相是:你完全可以无视它。npm 10.9.3和11.6.1的区别,对于普通用户来说,就像可乐和百事可乐的区别——都能喝,味道差不多,选哪个都行。
当然,如果你是个追求完美的人,可以运行:
npm install -g [email protected]
然后等待几分钟,让npm把自己升级一遍。这个过程就像给跑车换机油,换不换都能开,但换了心里踏实。🚗
第三章:Claude Code与中国大陆的距离
安装Claude Code本身很简单:
npm install -g @anthropic-ai/claude-code
8秒钟,2个包,搞定。我看着屏幕上的成功提示,心想这也太容易了吧?
然后我输入claude
,按下回车。
屏幕上出现了那只可爱的像素小动物,还有星星点点的ASCII艺术。我还没来得及欣赏,就看到了红色的错误信息:
Unable to connect to Anthropic services
Failed to connect to api.anthropic.com: ERR_BAD_REQUEST
墙的问题
在中国大陆使用国外服务,永远绕不开这个话题。Claude的API服务器在美国,而我们和美国之间,隔着一堵看不见的墙。
不是技术问题,是物理距离+网络政策的问题。
所以,你需要一个代理。VPN、V2Ray、Xray、Clash、Shadowsocks——名字一个比一个玄幻,但本质都是同一件事:帮你绕过那堵墙。🧱➡️🚪
找到你的代理端口
我用的是v2rayN,一个Windows上常见的代理工具。大部分人电脑上应该都有类似的软件,不然你现在也看不到这篇文章。
关键是找到本地代理端口。这个端口通常是:
- HTTP代理:10809
- SOCKS代理:10808
- 混合模式(Mixed):10808
打开v2rayN的主界面,看底部状态栏。我的显示是:
本地:[mixed:10808]
这就是我的代理端口:10808
设置环境变量
在PowerShell中输入:
$env:HTTP_PROXY="http://127.0.0.1:10808"
$env:HTTPS_PROXY="http://127.0.0.1:10808"
注意几个关键点:
- 必须是
http://
协议,不是socks5://
- IP地址是
127.0.0.1
,这是本地回环地址 - 端口号要对,不要瞎猜
我第一次就栽在了第一点上。我以为SOCKS代理就该用socks5://
,结果Claude Code直接给我报错:
Invalid URL protocol: the URL must start with 'http:' or 'https:'
后来我才明白,Claude Code的HTTP客户端只认HTTP协议。虽然v2rayN的10808端口是"mixed"模式,同时支持HTTP和SOCKS,但你访问它时必须用HTTP协议。
就像一个会说中英双语的人,你得先说中文他才知道你要用中文交流。🗣️
验证代理是否工作
设置完代理后,先别急着运行claude
。测试一下代理是否真的工作:
curl https://www.google.com
如果看到一堆HTML代码,恭喜你,代理成功了。
如果看到错误信息,那可能是:
- 代理软件没运行
- 端口号不对
- 代理服务器没连接成功
这时候需要回到v2rayN,检查:
- 托盘图标是否存在?
- 图标是彩色的还是灰色的?(彩色表示已连接)
- 底部日志是否显示连接成功?
- 延迟是否正常?(我的是223ms)
再次尝试
确认代理工作后,输入:
claude
这次,屏幕上不再是错误信息,而是欢迎界面:
Welcome to Claude Code v2.0.5
那只橙色的像素小章鱼向我眨了眨眼睛(虽然它没有眼睛),仿佛在说:"小伙子,你可算来了。"🐙
第四章:登录与选择
Claude Code启动后,会问你要用哪种方式登录:
- Claude account with subscription(Claude订阅账号)
- Anthropic Console account(API账号)
这是个重要的选择题。
订阅账号 vs API账号
Claude订阅账号适合:
- 你已经在claude.ai购买了Pro、Max或Team订阅
- 你不想按使用量付费
- 你只是想在命令行里用Claude
API账号适合:
- 你没有Claude订阅
- 你愿意按API调用次数付费
- 你需要更精确的使用控制
两种方式的计费差异:
方式 | 费用模式 | 每月成本 | 使用限制 |
---|---|---|---|
订阅账号 | 固定月费 | $20-100+ | 有消息条数限制 |
API账号 | 按token计费 | 看使用量 | 无条数限制 |
如果你只是想尝鲜,或者已经有Claude Pro订阅,选第一个。
如果你是开发者,需要大量调用,可能API更划算——前提是你能控制住使用量,不然账单可能比订阅费还高。💸
关于代理设置的持久性
有人问我:这样设置代理后,是不是我的PowerShell以后都会用代理?
答案是:不会。
$env:
方式设置的环境变量只在当前窗口有效。你关闭PowerShell窗口,设置就消失了。
这既是好事也是坏事:
好处:
- 不影响其他程序
- 不会不小心让所有流量都走代理
- 想取消代理时直接关窗口就行
坏处:
- 每次用Claude Code都要重新设置
- 如果忘记设置就会连接失败
如果你经常用Claude Code,可以把这两行命令保存成一个.ps1
脚本文件,每次双击运行就行。或者更简单点,写个批处理文件:
@echo off
powershell -Command "$env:HTTP_PROXY='http://127.0.0.1:10808'; $env:HTTPS_PROXY='http://127.0.0.1:10808'; claude"
保存为claude.bat
,以后直接运行这个文件就行了。
第五章:写在最后的一些思考
从开始安装Node.js到最终启动Claude Code,整个过程花了我两个小时。
两个小时,大部分时间都花在Google各种报错信息上。有些错误提示看起来很专业,实际上就是"你没联网"或者"端口号不对"的花哨说法。
但我还是觉得值得。
因为这个过程让我重新理解了一些东西:
关于工具:好的工具应该降低使用门槛,而不是设置更多障碍。Node.js的安装程序已经比几年前进步太多了,至少它会问你要不要装那些编译工具,而不是让你遇到问题时自己去stackoverflow找答案。
关于代理:在2025年的中国,使用代理已经成为一种基本技能。不是因为我们想干什么坏事,只是想正常使用互联网上的工具和服务。这种现状多少有点荒诞,但我们也只能接受。🌐
关于AI工具:Claude Code这类命令行AI工具代表了一个趋势——AI不再只是网页上的聊天窗口,它开始进入开发者的日常工作流程。未来可能我们写代码时,旁边一直有个AI助手在帮忙,就像现在我们写文档时旁边开着词典一样自然。
关于折腾:有人可能觉得这些步骤太复杂了,为什么不用简单点的工具?但我觉得,正是这种"折腾"让我们保持学习的状态。你每解决一个技术问题,就多掌握了一个技能。下次遇到类似问题时,你会知道从哪里下手。
现在,当我在命令行里输入claude
,看到那个欢迎界面时,我会觉得这两个小时的折腾都是值得的。
不是因为Claude Code有多么强大,而是因为我又征服了一个技术小难题。
这种感觉,大概就是程序员的简单快乐吧。😊
最后的最后,如果你按照这篇文章的步骤,成功装上了Claude Code,记得关掉v2rayN的全局代理模式,只在需要时手动设置环境变量。
毕竟我们都不想让所有流量都走代理,那样既浪费流量,也会让某些国内服务变慢。
做个聪明的用户,知道什么时候需要梯子,什么时候不需要。
祝你和AI相处愉快。🤖