☰
Windows 上跑 Claude Code 全攻略:WSL2 安装、配置调优与避坑指南
2026/10/9 8:44:19 网站建设 项目流程

1. 为什么 Windows 上跑 Claude Code 值得单独写一篇落地指南

Claude Code 是 Anthropic 推出的终端 AI 编程助手,它直接跑在命令行里,能读写项目文件、执行 shell 命令、跑测试、做重构,本质上是一个"住在你终端里的结对程序员"。它在 macOS 和 Linux 上的体验相对顺滑,但到了 Windows,情况就复杂了——路径分隔符、权限模型、终端环境、Node 版本管理、代理配置,每一环都可能让你卡在"装完了但用不了"的状态。

我在三台不同配置的 Windows 机器上反复折腾过这套东西:一台是公司配的 Win11 笔记本(有域控、有安全软件),一台是家里的 Win10 台式(纯净系统),还有一台是 WSL2 里跑的 Ubuntu 子系统。踩过的坑从"命令找不到"到"权限被拒"再到"响应慢得像蜗牛",基本把能遇到的都遇了一遍。这篇就把整个落地过程拆开讲清楚,从环境准备、安装方式选择、配置调优,到最常见的几类报错怎么排查,尽量让你少走弯路。

这篇文章适合三类人:一是刚听说 Claude Code、想在 Windows 上试试的开发者;二是已经装了但总出问题、想搞明白底层逻辑的人;三是团队里要给别人做环境标准化、需要一份可复现配置清单的人。不管你是前端、后端还是全栈,只要你的日常是在终端里敲命令,这套东西都能用得上。

需要先说明一点:Claude Code 本身是一个需要联网调用云端模型的工具,所以你的网络环境必须能正常访问它的服务端点。这一点在后面的"网络与代理"章节会专门讲,这里先埋个伏笔。

2. 装之前先想清楚:Windows 上跑 Claude Code 的三条技术路线

很多人一上来就问"怎么装",但更该先问的是"装在哪"。Windows 上跑 Claude Code 不是只有一条路,选错了路线,后面所有配置都会别扭。我把三条主流路线列出来,你可以对照自己的情况选。

2.1 路线一:原生 Windows + PowerShell/CMD

这是最直接的方式,直接在 Windows 的 PowerShell 或 Windows Terminal 里装 Node.js,然后用 npm 全局安装 Claude Code。优点是简单、不涉及虚拟化、文件系统是原生的,IDE 集成也最顺。缺点是 Windows 的 shell 环境和 Unix 差异大,某些依赖 Unix 工具链的功能会受限,路径处理偶尔出幺蛾子。

适合人群:日常就在 PowerShell 里工作、项目本身是 Windows 原生开发(比如 .NET、Unity、部分游戏开发)的人。

2.2 路线二:WSL2 + Linux 环境

WSL2 是 Windows 的 Linux 子系统,跑的是真正的 Linux 内核。在 WSL2 里装 Claude Code,体验和原生 Linux 几乎一致,Unix 工具链齐全,路径问题基本消失。缺点是文件系统跨边界访问(Windows 盘符挂载到 /mnt/c)时性能会下降,IDE 集成需要额外配置。

适合人群:做 Web 开发、Python、Node 后端,或者本来就习惯 Linux 命令行的开发者。这也是我个人最推荐的路线。

2.3 路线三:远程开发容器 / SSH 到 Linux 主机

如果你有一台常开的 Linux 服务器或者用 Dev Container,可以把 Claude Code 装在远端,本地只做终端连接。这种方式环境最干净、最可复现,团队协作时尤其香。缺点是需要额外的服务器资源和网络配置。

三条路线的对比如下:

维度原生 WindowsWSL2远程 Linux
安装难度低中中高
Unix 工具兼容性差好最好
文件系统性能好跨盘时差取决于网络
IDE 集成好需配置需配置
团队可复现性差中好
推荐指数三星五星四星

我的建议很明确:如果你没有特殊理由必须用原生 Windows,直接上 WSL2。后面章节的安装步骤我会以 WSL2 为主线,同时把原生 Windows 的差异点标出来,这样两条路线的读者都能用。

注意:不管你选哪条路线,都别把 Claude Code 装在需要管理员权限才能写入的系统目录里,否则后面升级、改配置会一直弹权限窗口,非常烦。

3. 环境准备:Node、包管理器与终端这三样必须先理顺

Claude Code 是基于 Node.js 的工具,所以 Node 环境是地基。地基没打好,后面全是玄学问题。这一章把准备工作拆成三块:Node 版本管理、包管理器选择、终端环境。

3.1 Node 版本:别用系统自带的老版本

Claude Code 对 Node 版本有要求,太老的版本会直接报错或者行为异常。我实测下来,Node 18 LTS 是底线,Node 20 LTS 最稳。很多人 Windows 上装 Node 是直接去官网下个 msi 一路下一步,装完是啥版本全看运气,而且想换版本就得卸载重装,非常痛苦。

正确做法是用版本管理器。Windows 原生环境下推荐nvm-windows,WSL2 里推荐nvm(注意这俩不是一个东西,命令也不完全一样)。用版本管理器的好处是:一条命令切换 Node 版本,项目之间互不干扰,出问题可以随时回退。

WSL2 里安装 nvm 的步骤:

# 下载安装脚本 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # 让配置生效(或者重开终端) source ~/.bashrc # 验证安装 command -v nvm # 装 Node 20 LTS nvm install 20 nvm use 20 nvm alias default 20 # 确认版本 node -v npm -v

Windows 原生环境用 nvm-windows,去它的 release 页面下载安装包,装完后在 PowerShell 里:

nvm install 20 nvm use 20 node -v

提示:nvm-windows 安装时如果提示已存在 Node,先手动卸载干净再装,否则会出现"nvm 说切换了但 node -v 还是老版本"的经典问题。这个坑我踩过,排查了半小时才发现是残留的 Node 目录还在 PATH 里。

3.2 包管理器:npm 够用,但 pnpm 更省心

Claude Code 官方推荐用 npm 全局安装。npm 是 Node 自带的,不用额外装,最省事。但如果你机器上全局包很多,npm 的扁平化 node_modules 偶尔会有版本冲突。pnpm 用硬链接,磁盘占用小、安装快,全局包管理也更干净。

不过对于 Claude Code 这个场景,我建议就用 npm,别折腾。因为 Claude Code 的安装脚本和升级逻辑默认就是围绕 npm 设计的,用 pnpm 全局装虽然能跑,但升级时偶尔会找不到包。除非你本来就是 pnpm 重度用户,否则没必要给自己加变量。

3.3 终端:Windows Terminal 是标配

原生 Windows 上,别用老掉牙的 cmd.exe,也别用默认的 PowerShell 窗口(那个字体和配色能看瞎眼)。装Windows Terminal,它是微软官方的现代终端,支持多标签、分屏、自定义配色、GPU 渲染,体验接近 iTerm2。

装完之后做两件事:一是把默认 profile 设成 PowerShell 7(不是 Windows PowerShell 5.1,那个太老),二是装个 Nerd Font 字体(比如 JetBrainsMono Nerd Font),因为 Claude Code 的输出里会有一些特殊符号,普通字体显示会乱码。

WSL2 用户直接在 Windows Terminal 里加一个 WSL profile 就行,字体同样建议用 Nerd Font。

3.4 一个容易被忽略的前置:Git

Claude Code 很多功能依赖 Git,比如它要读你的仓库状态、看 diff、做提交。所以 Git 必须装好,而且要配置好用户名和邮箱,否则它执行 git 操作时会报错。

git config --global user.name "你的名字" git config --global user.email "你的邮箱"

Windows 上装 Git 时,有个选项叫"Adjusting your PATH environment",建议选"Git from the command line and also from 3rd-party software",这样 PowerShell 和 WSL 里都能直接调 git。

4. 安装 Claude Code:npm 全局安装与在线升级的正确姿势

环境理顺了,安装本身其实就一条命令。但"装完"和"装对"是两回事,这一章把安装、验证、升级三件事讲透。

4.1 安装命令与背后的逻辑

WSL2 或原生 Windows 的终端里执行:

npm install -g @anthropic-ai/claude-code

这条命令做的是:从 npm registry 拉取 Claude Code 的包,装到全局 node_modules 目录,并在 PATH 里注册一个claude可执行文件。-g是全局安装的意思,不加的话只装在当前项目里,命令行调不到。

装完之后验证:

claude --version

能打印出版本号就说明装成功了。如果提示command not found或者不是内部或外部命令,八成是全局 bin 目录没在 PATH 里。WSL2 里全局 bin 一般在~/.nvm/versions/node/v20.x.x/bin,nvm 会自动加进 PATH;Windows 原生环境在%APPDATA%\npm,这个目录有时不会自动加,需要手动加进系统环境变量。

4.2 首次启动与登录

第一次运行claude,它会引导你做认证。这个过程需要联网访问 Anthropic 的服务。认证方式通常是浏览器授权或者 API Key,按提示走就行。

这里有个 Windows 特有的坑:如果你的默认浏览器和终端不在同一个用户会话里(比如你在 WSL2 里跑 claude,它想调 Windows 的浏览器),授权回调可能会失败。解决办法是手动复制终端里打印的 URL 到浏览器打开,完成授权后再把 code 粘回终端。

4.3 在线升级:别用 npm update,用官方命令

Claude Code 迭代很快,隔三差五就有新版本。升级方式有两种:

第一种是重新跑一遍安装命令:

npm install -g @anthropic-ai/claude-code@latest

第二种是 Claude Code 内置的升级命令,在交互界面里输入/update或者用claude update。官方更推荐后者,因为它会处理一些版本兼容和配置迁移的事情。

注意:升级前最好确认一下当前有没有正在跑的任务,升级过程中如果 Claude Code 正在执行命令,可能会中断。我一般习惯在升级前先退出所有会话。

4.4 版本回退:出问题了怎么退回去

新版本偶尔会引入 bug,如果你升级后发现某个功能不好用了,可以装回指定版本:

npm install -g @anthropic-ai/claude-code@1.0.xx

把1.0.xx换成你要的版本号。查历史版本用npm view @anthropic-ai/claude-code versions。

5. 配置调优:让 Claude Code 在 Windows 上跑得又快又稳

装好只是开始,配置才是决定体验的关键。这一章讲三块:权限配置、性能相关配置、以及和 IDE 的集成。

5.1 权限配置:别一上来就全放开

Claude Code 执行命令、读写文件都需要权限。默认情况下它会每次询问你,这在探索阶段是好事,但用久了会烦。你可以通过配置文件设置白名单,让某些安全操作免询问。

配置文件一般在用户目录下的.claude文件夹里。你可以配置允许自动执行的命令前缀,比如git status、ls、cat这类只读命令。但千万不要把rm、del、format这类破坏性命令加进白名单,这是底线。

我的做法是分阶段:头一周全部手动确认,观察它到底会执行哪些命令;一周后把高频的只读命令加白名单;写操作和网络操作永远保持手动确认。

5.2 性能优化:Windows 上慢的根因在哪

很多人反馈 Claude Code 在 Windows 上"反应慢",其实慢的往往不是模型本身,而是本地文件扫描和命令执行。几个优化点:

第一,项目别放在跨文件系统的路径下。如果你用 WSL2,项目放在/mnt/c/...下,每次文件读写都要跨 Windows 和 Linux 的文件系统边界,性能能差好几倍。正确做法是把项目放在 WSL2 的原生文件系统里,比如~/projects/。

第二,排除大目录。如果你的项目里有node_modules、.git、dist这种大目录,Claude Code 扫描时会很慢。可以在配置里加忽略规则,把这些目录排除掉。

第三,关掉不必要的文件监听。有些编辑器插件会监听整个项目目录,和 Claude Code 的文件扫描叠加,CPU 直接拉满。用的时候把其他重型工具先关掉。

5.3 IDE 集成:VS Code 里怎么用

Claude Code 是终端工具,但可以在 VS Code 的集成终端里跑,体验很顺。装好 VS Code 后,打开集成终端(Ctrl+),直接敲claude` 就行。

如果你想让 Claude Code 感知到当前打开的文件和光标位置,需要装对应的扩展或者用它的 IDE 集成功能。具体做法是在 VS Code 里装 Claude Code 的官方扩展,装完后它会自动和终端里的 Claude Code 建立连接。

提示:VS Code 的集成终端默认可能是 PowerShell 5.1,记得在设置里改成 PowerShell 7 或者 WSL,否则会有编码和字体问题。

6. 网络与代理:国内环境下的连通性处理

这一块是很多人卡住的地方。Claude Code 需要访问云端服务,如果你的网络环境不能直连,就得配置代理。这里只讲通用的代理配置方法,不涉及任何具体工具推荐。

6.1 终端代理的环境变量

大多数命令行工具认HTTP_PROXY和HTTPS_PROXY这两个环境变量。在 WSL2 的~/.bashrc或~/.zshrc里加:

export HTTP_PROXY=http://127.0.0.1:端口 export HTTPS_PROXY=http://127.0.0.1:端口 export NO_PROXY=localhost,127.0.0.1

Windows 原生 PowerShell 里:

$env:HTTP_PROXY="http://127.0.0.1:端口" $env:HTTPS_PROXY="http://127.0.0.1:端口"

端口换成你本地代理服务监听的端口。NO_PROXY是排除列表,本地地址不走代理,避免自己绕自己。

6.2 WSL2 访问 Windows 宿主代理的特殊处理

WSL2 是独立虚拟机,它的127.0.0.1指向的是 WSL2 自己,不是 Windows 宿主。所以如果你在 Windows 上跑代理服务,WSL2 里不能直接用127.0.0.1。

解决办法有两个:一是让代理服务监听0.0.0.0(所有网卡),然后在 WSL2 里用 Windows 宿主 IP 访问;二是用 WSL2 的镜像网络模式(较新版本支持),这样127.0.0.1就能直接通到宿主。

查 Windows 宿主 IP 的命令:

cat /etc/resolv.conf | grep nameserver

拿到的 IP 就是宿主地址,把代理地址换成http://那个IP:端口。

6.3 验证连通性

配完代理后,别急着跑 Claude Code,先用 curl 测一下:

curl -I https://api.anthropic.com

能返回 HTTP 状态码(哪怕是 401)就说明网络通了。如果卡住不动或者报连接超时,说明代理没配好,回去检查环境变量和端口。

7. 避坑实录:Windows 上最常见的六类报错与排查链路

这一章是全文最值钱的部分。下面这些报错我都真实遇到过,每个都给出完整的排查思路,你可以照着复现。

7.1 "command not found" 或 "不是内部或外部命令"

现象:装完了,敲claude提示找不到命令。

排查链路:

  1. 先确认装没装上:npm list -g --depth=0,看列表里有没有@anthropic-ai/claude-code。
  2. 有的话,查全局 bin 目录:npm config get prefix,这个目录下的bin(WSL)或根目录(Windows)应该在 PATH 里。
  3. Windows 原生环境重点查%APPDATA%\npm在不在 PATH。
  4. 改完 PATH 一定要重开终端,环境变量不会热更新。

7.2 权限被拒:EACCES 或 EPERM

现象:安装或升级时报权限错误。

根因:全局 node_modules 目录权限不对,或者你用了系统级 Node 而不是版本管理器装的 Node。

解决:别用sudo npm install -g(WSL 下),这会把文件属主改成 root,后面普通用户改不了。正确做法是用 nvm 装的 Node,全局目录在用户空间,不需要 sudo。Windows 原生环境如果报 EPERM,通常是杀毒软件锁了文件,临时关掉或者加白名单。

7.3 终端中文乱码

现象:Claude Code 输出里中文变成方块或问号。

根因:终端字体不支持中文,或者编码不是 UTF-8。

解决:Windows Terminal 里换一个支持中文的字体(比如等距更纱黑体),编码设成 UTF-8。WSL2 里确认locale输出是zh_CN.UTF-8或en_US.UTF-8,不是的话在~/.bashrc里设export LANG=en_US.UTF-8。

7.4 启动卡住或响应极慢

现象:敲了claude之后半天没反应,或者对话响应要等很久。

排查链路:

  1. 先测网络:curl -I https://api.anthropic.com,看是不是网络问题。
  2. 网络没问题的话,看是不是项目目录太大,扫描卡住了。换个空目录试试。
  3. 还慢的话,看 CPU 和内存占用,是不是被其他工具拖累了。
  4. WSL2 用户重点检查项目是不是在/mnt/c下,挪到原生文件系统再试。

7.5 升级后功能异常

现象:升级到新版本后,某个之前好用的功能报错或者行为变了。

解决:先看官方 changelog 有没有 breaking change。没有的话,回退到上一个稳定版本,等下一个版本再升。回退命令前面讲过。

7.6 配置文件不生效

现象:改了配置,但 Claude Code 行为没变。

排查:确认配置文件路径对不对。Claude Code 会读多个位置的配置,优先级不同。用户级配置在~/.claude/,项目级配置在项目根目录的.claude/。项目级优先级更高。改完配置要重启 Claude Code 会话才生效。

8. 我踩过的那些坑和几条压箱底的经验

最后分享几条文档里不会写、但实际用起来很关键的经验。

第一条,别在系统盘根目录或者桌面跑 Claude Code。这些位置文件多、权限杂,扫描慢还容易触发权限问题。专门建一个~/projects/目录放项目,干净利落。

第二条,养成用 Git 的习惯。Claude Code 会改你的文件,改之前先 commit,改完不满意直接git checkout回滚。这是最省心的"后悔药"。我现在的习惯是每次让 Claude Code 做较大改动前,先手动 commit 一次。

第三条,权限白名单要克制。我见过有人图省事把*加进白名单,结果 Claude Code 执行了一条删除命令,项目文件没了。白名单只加只读命令,写操作永远手动确认,这条没有例外。

第四条,WSL2 的内存要限制。WSL2 默认会吃掉大量内存,跑久了 Windows 会卡。在用户目录建一个.wslconfig文件,限制内存和 CPU:

[wsl2] memory=8GB processors=4

数字按你机器配置调,一般给一半物理内存就行。

第五条,定期清理 npm 缓存。全局包装多了,npm 缓存会膨胀到几个 G。偶尔跑一下npm cache clean --force,能省不少磁盘。

这套东西我从零折腾到顺手,前后大概花了两周。现在它已经是我日常开发离不开的工具了,尤其是做重构和写测试的时候,效率提升非常明显。Windows 上的体验虽然比 macOS 多几个坎,但只要环境理顺了,用起来一样顺。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询