目录

一、环境说明

二、错误一:Host Claude Code binary not available

1. 先确认命令行版本是否可用

2. 查看 Desktop 下载日志

3. 推荐修复方法

三、错误二:同时打开桌面端后,CLI 思考明显变慢

1. 检查 Claude Desktop 是否在后台下载

2. 其他可能原因

3. 处理办法

四、如何查看 Cowork 虚拟机镜像下载进度

五、错误三:VM service not running

1. 查看相关服务

2. 查看服务退出码

3. 查看详细服务日志

4. 启动 Cowork 服务

六、常用的一键诊断命令

七、最终排障顺序

最近我在 Windows 上折腾 Claude Code、Claude Desktop、DeepSeek 和 Cowork,连续遇到了几个看起来毫无关系的问题:

  • Claude Desktop 提示 Host Claude Code binary not available

  • 同时打开 CLI 和桌面端后,CLI 一直处于思考状态

  • Cowork 后台下载了一个 2GB 多的虚拟机镜像

  • 镜像下载完成后,又提示 VM service not running

这些问题容易被混在一起,但实际上分别属于四层:

 DeepSeek API
     ↑
 Claude Code CLI
     ↑
 Claude Desktop
     ↑
 Cowork Windows VM 服务

本文记录完整的诊断和修复过程。相关版本、路径会随安装方式变化,执行命令时请以自己的环境为准。

一、环境说明

本次排查环境:

 操作系统:Windows
 Claude Code:2.1.x
 Claude Desktop:Microsoft Store/MSIX 版本
 模型服务:DeepSeek Anthropic 兼容接口
 终端:PowerShell

Claude Code 的用户配置通常位于:

%USERPROFILE%\.claude\settings.json

配置示例:

 {
   "env": {
     "ANTHROPIC_AUTH_TOKEN": "<你的 API Key>",
     "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
     "ANTHROPIC_MODEL": "<你的模型名称>",
     "API_TIMEOUT_MS": "300000"
   }
 }

注意:

  1. 不要把真实 API Key 发到论坛、截图或提交到 Git。

  2. 模型名称取决于你的 DeepSeek 服务或中转平台,不要照抄别人的名称。

  3. API_TIMEOUT_MS 建议先设置为 5 分钟,即 300000。设置成几十分钟会让连接故障表现为一直思考。

二、错误一:Host Claude Code binary not available

Claude Desktop 中出现:

 Host Claude Code binary not available.
 Check that the download completed.

这个提示很容易让人误以为是 DeepSeek 接口出错。实际上,消息还没有发送到 DeepSeek,Claude Desktop 自己需要的 Claude Code 二进制文件没有准备完成。

1. 先确认命令行版本是否可用

 Get-Command claude
 where.exe claude
 claude --version

如果 PowerShell 因执行策略拦截 claude.ps1,可以直接运行:

 claude.cmd --version

或者使用完整路径:

& "你的 Claude Code 安装目录\claude.cmd" --version

需要注意,终端中的 Claude Code 能运行,并不代表 Claude Desktop 的组件已经就绪。Desktop 会维护自己的版本和缓存,不一定直接使用 PATH 中的 CLI。

2. 查看 Desktop 下载日志

Claude Desktop 第三方模式的日志通常位于:

%LOCALAPPDATA%\Claude-3p\logs\main.log

搜索关键错误:

 Select-String `
   -Path "$env:LOCALAPPDATA\Claude-3p\logs\main.log" `
   -Pattern "Claude Code binary|Downloading|checksum|ERR_NETWORK|All download attempts failed"

本次遇到的真实错误包括:

 net::ERR_NETWORK_CHANGED
 net::ERR_CONNECTION_CLOSED
 Checksum mismatch
 All download attempts failed

根因不是 DeepSeek,而是 Claude Desktop 从 downloads.claude.ai 下载组件时,代理节点切换、连接中断或文件只下载了一部分,最终导致校验失败。

3. 推荐修复方法

先彻底退出 Claude Desktop,包括系统托盘中的后台进程,然后:

  1. 确保 downloads.claude.ai 能通过稳定网络访问。

  2. 使用代理时固定节点,暂时关闭自动选择和自动切换。

  3. 重新打开 Claude Desktop,让它重新下载。

  4. 不要在下载过程中反复退出或切换网络。

如果对应版本目录是空的,可以在完全退出 Claude Desktop 后删除这个空目录,再让 Desktop 重建:

 $root = "$env:LOCALAPPDATA\Claude-3p\claude-code"
 Get-ChildItem $root

确认目标版本后再删除,避免误删其他文件:

Remove-Item "$root\<版本号>" -Recurse -Force

不要直接复制别人的 claude.exe。版本、签名和校验标记不一致时,Desktop 仍可能拒绝启动。

三、错误二:同时打开桌面端后,CLI 思考明显变慢

当时 CLI 的表现是:

 Misting... (2m 9s)
 输入 Token:0
 输出 Token:0

这里有个很重要的判断方法:

如果等待了很久,但输入、输出 Token 仍然都是 0,通常不是模型已经开始深度推理,而是请求还在以下某一层等待:

 DNS / 网络连接
 代理队列
 TLS 建连
 服务端限流
 等待首个响应

1. 检查 Claude Desktop 是否在后台下载

本次问题的主要原因是 Claude Desktop 正在下载 Cowork 虚拟机镜像:

 总大小约 2233.9 MB
 平均速度约 1.2 MB/s

它占用了网络带宽和代理连接,CLI 同时访问 DeepSeek 时,首个响应时间就会明显变长。

可以用下面的命令查看实时日志:

 Get-Content "$env:LOCALAPPDATA\Claude-3p\logs\main.log" -Tail 20 -Wait |
   Select-String "download.*%"

如果看到持续增长的百分比、下载速度和 ETA,就说明桌面端仍在下载。

2. 其他可能原因

如果没有后台下载,还要检查:

  • CLI 和 Desktop 是否共用同一个 API Key

  • 服务商是否限制同一 Key 的并发数

  • 代理软件是否限制单连接或总带宽

  • 是否频繁切换代理节点

  • API_TIMEOUT_MS 是否设置得过大

  • 当前模型是否本来就有较长的推理时间

3. 处理办法

最简单的验证方法是:

  1. 完全退出 Claude Desktop。

  2. 重新启动 Claude Code CLI。

  3. 用相同问题测试首字响应速度。

如果速度立即恢复,基本可以确认是 Desktop 下载或并发占用造成的。

不希望关闭 Desktop 时,可以等待镜像下载完成,或者给 downloads.claude.ai 和 DeepSeek API 分配不同代理策略。

四、如何查看 Cowork 虚拟机镜像下载进度

实时查看:

 Get-Content "$env:LOCALAPPDATA\Claude-3p\logs\main.log" -Tail 20 -Wait |
   Select-String "download.*%"

只查看最近一次进度:

 Select-String "download.*%" `
   "$env:LOCALAPPDATA\Claude-3p\logs\main.log" |
   Select-Object -Last 1

查看 Cowork 专用日志:

 Get-Content "$env:LOCALAPPDATA\Claude-3p\logs\cowork_vm_node.log" -Tail 100

镜像目录通常是:

%LOCALAPPDATA%\Claude-3p\vm_bundles\claudevm.bundle

查看文件大小:

 Get-ChildItem `
   "$env:LOCALAPPDATA\Claude-3p\vm_bundles\claudevm.bundle" `
   -Force |
   Select-Object Name,
     @{Name="SizeMB";Expression={[math]::Round($_.Length / 1MB, 1)}},
     LastWriteTime

本次完整下载后能看到类似文件:

 rootfs.vhdx.zst    约 2233.9 MB
 rootfs.vhdx        约 9016 MB
 initrd.zst         约 165.7 MB
 initrd             约 169.1 MB
 vmlinuz.zst        约 14.1 MB
 vmlinuz            约 14.3 MB
 smol-bin.vhdx      约 36 MB

压缩文件存在不代表整个流程已完成。还要确认:

  1. rootfs.vhdx 已经解压生成。

  2. 日志出现 All files ready

  3. 日志出现 download_and_sdk_prepare completed

如果命令行停留在日志监听界面,可以按:

Ctrl + C

这只会停止 Get-Content -Wait,不会停止 Claude Desktop、虚拟机服务,也不会删除已经下载的镜像。

五、错误三:VM service not running

镜像下载完成后,Claude Desktop 又提示:

 无法启动 Claude 的工作区
 VM service not running. The service failed to start.

此时问题已经不在下载层,而在 Windows 服务层。

1. 查看相关服务

 Get-Service CoworkVMService,vmcompute,hns,WslService `
   -ErrorAction SilentlyContinue |
   Select-Object Name,Status,StartType

主要服务:

 CoworkVMService  Claude 自己的 Cowork VM 服务
 vmcompute        Hyper-V 主机计算服务
 hns              主机网络服务
 WslService       WSL 服务

本次排查时,vmcomputehnsWslService 都正常,只有:

 CoworkVMService  Stopped

因此无需重新下载 2GB 镜像,也不用一上来就重装 Hyper-V。

2. 查看服务退出码

 sc.exe queryex CoworkVMService
 sc.exe qc CoworkVMService

当时服务状态为:

 STATE             : STOPPED
 WIN32_EXIT_CODE   : 1067

错误码 1067 表示服务进程意外终止。

3. 查看详细服务日志

Claude VM 服务的详细日志在:

 C:\ProgramData\Claude\Logs\cowork-service.log

查看最后 100 行:

 Get-Content "C:\ProgramData\Claude\Logs\cowork-service.log" -Tail 100

Claude Desktop 侧还可能持续出现:

 connect ENOENT \\.\pipe\cowork-vm-service

这里的 ENOENT 不是普通文件丢失,而是 Claude Desktop 找不到 Cowork VM 服务创建的 Windows 命名管道。服务没运行,自然不会存在这个管道。

4. 启动 Cowork 服务

使用 PowerShell:

 Start-Service CoworkVMService
 Start-Sleep -Seconds 3
 Get-Service CoworkVMService

成功时应看到:

 Status : Running

再检查是否会立即退出:

 Start-Sleep -Seconds 5
 sc.exe queryex CoworkVMService

确认命名管道:

 [System.IO.Directory]::GetFiles("\\.\pipe\") |
   Where-Object { $_ -match "cowork-vm-service" }

正常输出:

 \\.\pipe\cowork-vm-service

服务日志中也应出现:

 Service ready. Listening on \\.\pipe\cowork-vm-service
 Client signature verified
 Persistent RPC: entering loop

此时回到 Claude Desktop,点击重试或重新打开 Cowork 工作区即可。

如果 Start-Service 提示权限不足,请以管理员身份打开 PowerShell。若服务启动后仍立即停止,再检查:

  • Windows 事件查看器中的 Service Control Manager

  • C:\ProgramData\Claude\Logs\cowork-service.log

  • BIOS 中是否启用 CPU 虚拟化

  • vmcomputehns 是否能正常启动

  • 安全软件是否拦截 cowork-svc.exe

  • Claude Desktop 是否需要更新或重新安装

六、常用的一键诊断命令

查看 Claude CLI:

 Get-Command claude -ErrorAction SilentlyContinue
 where.exe claude
 claude.cmd --version

查看最近的下载和 VM 错误:

 Select-String `
   -Path "$env:LOCALAPPDATA\Claude-3p\logs\main.log" `
   -Pattern "download|checksum|ERR_NETWORK|VM service|binary not available" |
   Select-Object -Last 30

查看 Cowork 服务:

 Get-Service CoworkVMService,vmcompute,hns,WslService `
   -ErrorAction SilentlyContinue

查看详细 VM 日志:

 Get-Content "C:\ProgramData\Claude\Logs\cowork-service.log" -Tail 100

启动 Cowork 服务:

 Start-Service CoworkVMService

查看镜像是否完整:

 Get-ChildItem `
   "$env:LOCALAPPDATA\Claude-3p\vm_bundles\claudevm.bundle" `
   -Force

七、最终排障顺序

以后再遇到类似问题,建议按下面的顺序处理:

 1. claude.cmd --version
 2. 检查 DeepSeek 配置,但不要泄露 API Key
 3. 查看 Claude-3p\logs\main.log
 4. 判断二进制文件或镜像是否仍在下载
 5. 检查网络切换、代理中断和 checksum mismatch
 6. 检查 CoworkVMService、vmcompute、hns
 7. 查看 C:\ProgramData\Claude\Logs\cowork-service.log
 8. 启动 CoworkVMService 并验证命名管道
 9. 最后才考虑删除缓存或重新安装

这次最容易踩的坑,是把所有故障都归结为 DeepSeek。

实际上:

  • Host Claude Code binary not available 是 Desktop 组件下载问题。

  • CLI 长时间 0 Token 通常是网络或队列等待。

  • VM service not running 是 Windows 服务问题。

  • 日志监听窗口不退出,并不代表下载还没完成。

把问题分层,再顺着日志逐层检查,比反复卸载重装有效得多。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐