最近在 Windows 上折腾 Claude Code 时,遇到了一个非常迷惑的问题:


claude --version 能正常输出 2.1.141 (Claude Code),说明命令已安装成功、PATH 配置正确
但只要输入 claudeclaude "hello",终端就会一直卡住,没有任何报错输出
更诡异的是:执行几条命令后偶尔能恢复正常,但重新打开终端后问题再次复发。


一开始我怀疑过各种可能:Claude Code 没装好、PowerShell 版本太低、Node.js /nvm 环境有问题、Windows 终端兼容性不好……但最终定位下来,真正的问题其实非常简单:PowerShell 中残留了无效的代理环境变量,导致 Claude Code 的网络请求被阻塞。


关键还在于:我一开始的“修复”只是清掉了当前终端会话里的变量,并没有删除用户级的全局环境变量,所以每次重开终端,这些代理变量又会自动回来,Claude 就再次卡住。

一、问题现象

执行以下命令:

claude --version

输出正常:

2.1.141 (Claude Code)

这说明:

  • Claude Code 已经安装成功
  • 命令已经注册到 PATH
  • npm 全局安装没有问题
  • 可执行文件本身没有损坏

但是执行:

claude

终端就会一直卡住,没有输出,也没有报错,看起来“死掉了一样”。
这种问题很容易被误判成安装问题,但它实际上已经不是“安装阶段”的问题,而是“运行阶段”的问题。

永久解决方案:删除用户级环境变量

方案一:使用 PowerShell 命令删除

[Environment]::SetEnvironmentVariable("HTTP_PROXY", $null, "User")
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", $null, "User")
[Environment]::SetEnvironmentVariable("ALL_PROXY", $null, "User")

方案二:使用图形界面删除
如果你不想用 PowerShell,也可以用 Windows 图形界面操作:

  1. 打开“开始菜单”,搜索 “环境变量”
  2. 点击 “编辑系统环境变量”
  3. 点击 “环境变量” 按钮
  4. 在 “用户变量” 列表里查找:
    • HTTP_PROXY
    • HTTPS_PROXY
    • ALL_PROXY
  5. 选中它们,点击 删除
    如果你怀疑系统级环境变量里也有相同的值,也可以顺便检查 “系统变量” 区域

解决方案来自网络。