Skip to content
🚀 快速起步第 6 / 16 节

装不上跑不通怎么办:安装与启动排错 ​

OpenClaw 装不上、跑不通,八成卡在三处:Node 环境不达标、CLI 不在 PATH、Gateway 配置起不来。这一页把官方排错文档里的常见报错按「报错原文」逐个给原因和解法——先 60 秒速检,再对号入座。报错原文全部摘自官方文档与 CLI 诊断输出,基于 v2026.10.9。

学完你能做什么 ​

  • 用 5 条官方诊断命令在 60 秒内定位:环境、CLI、Gateway、配置哪一层出了问题
  • 把 21 个常见报错对号入座:报错原文 → 原因 → 修复命令
  • 分清四层排错边界:环境 → Gateway 进程 → 配置与认证 → 客户端连接
  • 更新失败后知道先跑哪三条命令恢复,以及去哪里求助
  • 用 openclaw doctor 和 openclaw triage 两个官方工具做体检和脱敏诊断

你现在的困境 ​

  • npm 装完了,一敲 openclaw 就 command not found;换 sudo 装,又报权限错误
  • Gateway 好不容易装上,openclaw gateway status 一查是 stopped,日志刷一串没见过的报错
  • 更新完反而起不来:渠道空白、模型调用 401,不知道是更新坏了还是自己配坏了

什么时候用这一招 ​

当你需要:

而且不想:

  • 一报错就去论坛发帖干等——60 秒速检能省掉大部分等待
  • 分不清「环境坏了」和「配置坏了」,两边乱改一通

🎒 开始前的准备 ​

  • 走过 安装 主路径或 备用安装方式——卡在哪一步都没关系,本页就是解卡的
  • 终端能跑命令:macOS / Linux / WSL2 用 Bash,Windows 用 PowerShell
  • 习惯把报错原文完整复制下来——本页按报错原文分组,逐字才好对号

核心思路 ​

先定位层,再看报错。 从敲命令到收到 AI 回复要过四层,每层的报错长得不一样:

层出什么事快速检查典型报错
1. 环境Node 太旧或没装;CLI 不在 PATHnode -v / openclaw --versioncommand not found、node:sqlite truncates TEXT
2. Gateway 进程起不来、端口被占、装好的服务不跑openclaw gateway statusEADDRINUSE、Gateway start blocked
3. 配置与认证配置写坏、token 不对openclaw doctorInvalid config at ...、AUTH_TOKEN_MISSING
4. 客户端连接Control UI 连不上curl http://127.0.0.1:18789gateway connect failed:

两个官方诊断工具最省事。 openclaw doctor 体检并修复常见配置/服务问题;openclaw triage 生成一份脱敏的诊断(secrets、token、原始聊天内容、原始日志都不在内),可以直接交给你机器上的编码 agent 接着修;确认提示出现时不在 30 秒内答 Yes,就跳过启动、只打印那条手动命令。

💡 国内网络

官方文档没有提供 npm 镜像或下载加速方案,本文不猜测镜像地址。下载安装脚本或依赖超时,先检查网络环境再重试;别轻信来路不明的「国内镜像」脚本。

首次排查:60 秒速检 ​

五条命令按顺序跑,依次验证 Node、CLI、Gateway、配置,哪条断了就从哪层修。

bash
# 1. Node 在支持范围吗?——要 24.16.0+(24.x)或 26.1.0+,建议 24.22.1+/26.12.1+
node -v

# 2. CLI 装上了吗?——应打印版本号(本页基准 v2026.10.9)
openclaw --version

# 3. Gateway 起来了吗?——应看到 Runtime: running、监听 18789
openclaw gateway status

# 4. 配置/服务有内伤吗?——应无 blocking 错误
openclaw doctor

# 5. 还是一头雾水?——一键生成脱敏诊断
openclaw triage

你应该看到:第 1 条打印 v24.16.0+ 或 v26.1.0+;第 2 条打印版本号;第 3 条 Runtime: running;第 4 条无阻塞错误。哪条断了,就跳到下面对应的分组。

常见问题排查 ​

安装与环境:装不上 ​

"openclaw: command not found" ​

原因:官方文档原话「几乎总是 PATH 问题」——npm 的全局 bin 目录不在你 shell 的 PATH 里。用 nvm / fnm 等版本管理器但没把它写进 shell 启动文件,同样中招。Windows 上的变体是 openclaw is not recognized。

解决:

  1. 三行定位:
bash
node -v           # Node 装了吗
npm prefix -g     # 全局包装在哪
echo "$PATH"      # 全局 bin 目录在 PATH 里吗
  1. macOS / Linux:把全局 bin 加进 PATH,写进 shell 启动文件(zsh 是 ${ZDOTDIR:-$HOME}/.zshrc,bash 是 ~/.bashrc):
bash
export PATH="$(npm prefix -g)/bin:$PATH"

然后新开终端,或 zsh 里 rehash、bash 里 hash -r。

  1. Windows:把 npm config get prefix 的输出目录(多数系统是 %AppData%\npm,不用加 \bin 后缀)加进用户 PATH,重开 PowerShell。

你应该看到:新终端里 openclaw --version 打印出版本号。

"npm error spawn git / git not found" ​

原因:Windows 安装器走 git 安装路线时找不到 Git——Git for Windows 没装,或装了但不在 PATH。

解决:装 Git for Windows(官方 FAQ 的建议),确认 git 在 PATH → 完全关闭并重开 PowerShell → 重跑安装器。

"EACCES"(npm install -g 权限被拒) ​

原因:Linux 上全局 npm 目录归 root,当前用户写不进去。

解决:把 npm 全局 prefix 换到用户可写目录:

bash
mkdir -p "$HOME/.npm-global"
npm config set prefix "$HOME/.npm-global"
export PATH="$HOME/.npm-global/bin:$PATH"

把 export PATH=... 那行写进 ~/.bashrc 或 ${ZDOTDIR:-$HOME}/.zshrc,再重装 OpenClaw。

"blocked because they are not covered by allowScripts" ​

原因:npm 12 默认拦截未批准的包生命周期脚本,OpenClaw 的 preinstall / postinstall 被拦。npm 11.16 只警告但仍放行;npm 11.15 及更早没有这个策略。注意坑:npm 11.16 提示的 npm approve-scripts openclaw 对全局安装无效——会报 ENOMATCH No installed packages match: openclaw。

解决:装的时候带对参数:

bash
# npm 12 或 11.16+
npm install -g openclaw@latest --allow-scripts=openclaw
# npm 11.15 及更早:同命令去掉 --allow-scripts=openclaw

Node <v>: node:sqlite truncates TEXT at embedded NUL (nodejs/node#61954); use 24.16+/26.1+ or a build with the fix ​

原因:OpenClaw 的硬门槛:Node 24.16.0+(24.x)或 26.1.0+(engines 表达式 >=24.16.0 <25 || >=26.1.0),且加载的 SQLite 库要过 WAL 安全校验(SQLite 3.51.3+,或 3.50.x 里 ≥ 3.50.7、3.44.x 里 ≥ 3.44.6)。Node 22、23、25 一律不支持;官方强烈建议 24.22.1+ / 26.12.1+(安全修复)。

解决:

  1. node -v 看版本,太旧就升级(Node 26 是推荐版本)。交互终端里 CLI 会提示 Update NodeJS: Y/N [N]:——按 Y 让它下载一个校验过的私有运行时到 ~/.openclaw/tools/cli-node,不动系统 Node。
  2. 官方安装器缺 Node 时会自动补:macOS 装 Node 26,Linux 装 Node 24 LTS。
  3. 平台边界:官方 Node 24+ 的 macOS 二进制按 macOS 13.5+ 构建,11–13.4 不测试不支持;Linux ARMv7 没有官方构建,必须用 64 位系统。
  4. RPM 系发行版(Fedora / RHEL):发行版 Node 链接不安全的系统 SQLite,官方安装器会自动改用用户态运行时,不用你动手。

你应该看到:node -v 打印 v24.16.0+ 或 v26.1.0+,报错消失。官方还提醒:先升 Node 再更新 OpenClaw,避免 SQLite TEXT 截断。

"blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)" ​

原因:Docker 镜像以 node 用户(uid 1000)运行,宿主机挂载目录的属主对不上,插件被安全策略拦下,后面常跟一句 plugin present but blocked。

解决:把挂载目录的属主改成 1000:

bash
sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspace
openclaw doctor --fix

只有长期以 root 跑 OpenClaw 才把 /path/to/openclaw-config/npm 改成 root:root。Docker 部署细节见 服务器部署。

💡 安装器卡住没反馈?

重跑一遍加 --verbose:

bash
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --verbose

install.ps1 没有对应开关,用 Set-PSDebug -Trace 1 / -Trace 0 包一层。

Gateway:起不来 ​

先跑 openclaw gateway status(加 --deep 连系统级服务一起扫)和 openclaw logs --follow 看日志,再对照下面的报错。

"Gateway start blocked: set gateway.mode=local" ​

原因:配置里缺 gateway.mode 的本机模式标记——本机模式没启用,或配置文件被改坏丢了字段(日志也可能写 existing config is missing gateway.mode)。Podman 部署注意默认配置路径是 ~/.openclaw/openclaw.json。

解决(两个官方修法):

  1. 在配置里设 gateway.mode="local";
  2. 或重跑 openclaw onboard --mode local / openclaw setup,重新盖一份本机模式配置。

"another gateway instance is already listening" / EADDRINUSE ​

原因:默认端口 18789 被占——常见是装出了重复的 Gateway 服务,或别的进程占了口。

解决:

  1. openclaw gateway status --deep 扫重复的 launchd / systemd / 计划任务服务,留意 Other gateway-like services detected (best effort) 的清理提示。
  2. 官方建议多数安装一机一个 Gateway;真要跑多个,必须隔离端口 + 配置 + 状态 + 工作区。
  3. macOS 特例:ai.openclaw.gateway 和 ai.openclaw.node 两个 LaunchAgent 同时活跃会打成 EADDRINUSE/respawn 快循环——不需要 node 功能就 openclaw node uninstall。
  4. 清理完 openclaw gateway restart,status 应显示 Runtime: running。

"refusing to bind gateway ... without auth" ​

原因:Gateway 默认只监听本机回环地址(loopback)+ 端口 18789。你想绑非 loopback 地址但没配认证——OpenClaw 拒绝启动(fail closed,这是有意的安全设计)。

解决:二选一:

  1. 继续只听 loopback,远程访问走 SSH 隧道(ssh -N -L 18789:127.0.0.1:18789 user@gateway-host)或 Tailscale;
  2. 给 Gateway 配认证(token / password,或 trusted-proxy),规则见 安全加固(一)。还没配过 shared secret?openclaw doctor --generate-gateway-token 生成一个。

"Invalid config at ..." ​

原因:配置文件没过校验——手改坏了、结构不对、或混进了不认识的键。Gateway 拒绝启动;运行中的 Gateway 热加载也会跳过坏编辑(日志写 config reload skipped (invalid config): ...)。

解决:

  1. 定位与验证:
bash
openclaw config file       # 配置文件在哪
openclaw config validate   # 哪一条不过
  1. 让 doctor 修:openclaw doctor --fix 能修复被改坏的配置或恢复 last-known-good;被拒绝的坏内容会保留在旁边的 .rejected.* / .clobbered.* 文件里(.clobbered.* 每个配置路径保留最新 32 份),要找回只改过的键就从那里拷。
  2. 手修的话:保留完整 JSON5 结构,只改目标键,改完 openclaw config validate 通过再重启。

"Gateway service port does not match current gateway config" ​

原因:装好的后台服务还别着旧的 --port——常见于改过端口配置之后。

解决:

bash
openclaw doctor --fix      # 或 openclaw gateway install --force
openclaw gateway restart

Control UI:连不上 ​

Gateway 活着但浏览器连不上?这一组的报错都出在「客户端 → Gateway」最后一截。

"gateway connect failed:" ​

原因:Control UI 指的 URL / 端口不对,或 Gateway 根本没在跑。

解决:本机三连验证:

bash
openclaw gateway restart
lsof -i :18789
curl http://127.0.0.1:18789

curl 拉回 OpenClaw 的 HTML → Gateway 是好的,问题在浏览器侧:直接开 http://127.0.0.1:18789、清缓存、别用旧深链。restart 后服务还是没起来,就 openclaw gateway start 再查 openclaw gateway status。

"AUTH_TOKEN_MISSING" ​

原因:Gateway 配了 token / password 认证,但客户端没带上 shared token。

解决:

  1. 在 Gateway 主机的交互终端里拿 token:
bash
openclaw gateway auth-token --show
  1. 把输出粘贴进 Control UI 设置,重试。还没配过 token?openclaw doctor --generate-gateway-token 生成;token 来源是 gateway.auth.token(或环境变量 OPENCLAW_GATEWAY_TOKEN)。
  2. 还连不上,对照官方 auth 错误码表:
错误码意思下一步
AUTH_TOKEN_MISMATCHshared token 对不上允许一次设备 token 可信重试;仍失败按官方 token 漂移清单处理
AUTH_DEVICE_TOKEN_MISMATCH设备 token 太旧或被吊销用 devices CLI 轮换/重新批准
AUTH_SCOPE_MISMATCH设备 token 权限不够重新配对或批准申请的 scope,别去转 shared token
PAIRING_REQUIRED设备身份待批准openclaw devices approve <requestId>

"device identity required" 和 "origin not allowed" ​

原因:前者——客户端没带设备身份(token / password 模式下也不能省,shared secret 不替代它);后者——浏览器的 Origin 不在白名单,公网或跨源部署需要在 gateway.controlUi.allowedOrigins 里加条目(私有局域网与 Tailscale 地址不需要白名单)。

解决:前者重新完成设备配对;后者把部署的 Origin 加进 gateway.controlUi.allowedOrigins 后重连。

"too many failed authentication attempts (retry later)" ​

原因:同一个浏览器 Origin 反复认证失败,被临时锁出。其他 localhost origin 用独立计数桶,不受影响。

解决:停手别继续撞锁;先按 AUTH_TOKEN_MISSING 那条确认凭据没错,稍后再试。

卡在 "Wake up, my friend!" 没有回复 ​

原因:onboarding 的孵化屏依赖 Gateway 可达且已认证。如果跳过了模型 / auth 设置,向导会提示 Model auth missing,直接打开 TUI 不发消息;看到唤醒语但 tokens 停在 0,说明 agent 根本没跑。

解决:

bash
openclaw gateway restart
openclaw status
openclaw models status
openclaw logs --follow

还不行就 openclaw doctor。模型 provider 或凭据没配好,跑 openclaw onboard 重配——这是官方指定的「改模型 provider 与认证」的唯一命令。

更新失败 ​

更新失败的恢复入口固定三条:openclaw update status --json(看记录的失败步骤与原因码)、openclaw triage(脱敏诊断)、openclaw doctor --fix。Control UI 的 Settings → Updates 里能看到最近一次尝试的时间、前后版本、失败步骤和 reason code。

"managed-service-handoff-failed" ​

原因:console 日志级别是 debug 时,受影响版本的更新交接会被拒。受影响 stable 版本:2026.9.6–2026.9.9 与 2026.10.1–2026.10.5。

解决:把 logging.consoleLevel 设成 "info"、从 Gateway 和更新命令的环境里去掉 OPENCLAW_LOG_LEVEL=debug(文件日志可以保持 debug),跑 openclaw update,完成后恢复原日志设置。

"global-install-permission-denied" ​

原因:全局 npm prefix 不可写——常见于 Homebrew 的 Node、系统 prefix、或版本管理器切换后指向了别的 prefix。

解决:看报错里点名的目录和属主:

  1. 目录归你 → 按报错里给的 chmod u+rwx 命令修;
  2. 目录归管理员 → 让有权限的账号执行更新,或给你授权;
  3. 个人安装可以改用用户可写 prefix(见上文 EACCES 那招)。

⚠️ 别用 sudo 跑整个更新器

官方明确警告:整个更新器用 sudo 跑可能选中不同的 home 和服务账号。也不要递归改共享系统 prefix 的属主。

"ETARGET" / "E404" / "EINTEGRITY" ​

原因:npm 解析或下载包失败——目标版本在 registry 找不到、缓存陈旧、或 registry / 镜像配置有问题。

解决:

bash
npm cache verify
npm view <spec> version   # 用报错里给出的 spec 验证

检查你配置的 registry 或镜像,再重试。现役更新器会自动重试一次命名依赖失败(npm 用 --prefer-online,Bun 用 --no-cache)。

"protocol mismatch"(回滚后一直刷) ​

原因:回滚到旧版 Gateway 后,还有更新的客户端进程在用旧 Gateway 听不懂的协议范围重连。日志形如 protocol mismatch ... client=... v<version> min=<n> max=<n> expected=<n>。

解决:

  1. openclaw gateway status --deep(或 openclaw doctor --deep)找到 stale 客户端 PID,停掉它;
  2. 重启嵌着 OpenClaw 的东西:本地 dashboard、编辑器、app-server helper、挂着 openclaw logs --follow 的长驻 shell;
  3. 再跑一次 --deep 确认旧 PID 消失。别让旧 Gateway 强行接受新协议——协议版本是保护通信契约的。

"plugin load failed: dependency tree corrupted; run openclaw doctor --fix" ​

原因:更新刚跑完,渠道列表空白或模型调用报 401——两种都指向更新收尾没做完:渠道插件注册失败(渠道配置还在,插件没加载);或 provider 401 来自陈旧的 per-agent OAuth 凭据影子。

解决:更新后的通用恢复五连:

bash
openclaw status --all
openclaw update status --json
openclaw gateway status --deep
openclaw doctor --fix
openclaw gateway restart

doctor --fix 会清理陈旧的 OAuth 影子并修复损坏的依赖树。官方还提醒:更新失败后不要第一时间回滚状态——先保留当前状态重装已知良好的代码,只有旧代码读不了新配置/数据库时才恢复更新前的备份。

还是不行? ​

先收集证据再提问。 官方「I am stuck」指南给的诊断命令表,跑一遍把输出(脱敏后)附上:

命令能看到什么
openclaw statusGateway / agent 健康 + 基础配置快照
openclaw status --all完整只读诊断,可直接粘贴
openclaw models statusprovider 认证 + 模型可用性
openclaw doctor校验并修复常见配置 / 状态问题
openclaw logs --follow实时日志尾巴
openclaw gateway status --deep深度 Gateway / 配置 / 插件体检
openclaw health --verbose详细健康报告

更新类失败额外带上 openclaw update status --json 的输出。一条 openclaw triage 就能生成脱敏诊断——发出去之前检查一遍,不要附带凭据、原始配置或未脱敏的进程输出。

去哪里问:

渠道适合什么
community.openclaw.ai官方支持站:配置、环境类问题先来这里
GitHub issue chooser能复现的产品缺陷 / 文档 bug,带复现步骤和证据
官方排错文档症状优先的官方排错入口,本页很多报错的出处

检查点 ✅ ​

  • 60 秒速检五条命令跑过,知道卡在哪一层
  • openclaw --version 能打印版本号,command not found 已经修掉
  • node -v 在 24.16.0+(24.x)或 26.1.0+ 范围内
  • openclaw gateway status 显示 Runtime: running、监听 18789
  • 提问时会附上 openclaw status --all 等脱敏诊断输出

本课小结 ​

✅ 排错先定层:环境(Node / CLI)→ Gateway 进程 → 配置与认证 → 客户端连接,每层有固定的检查命令。

✅ OpenClaw 装不上的三大源头(PATH、npm 权限、Node 版本)都有固定修法:补 PATH、换用户可写 prefix、升到 24.16.0+/26.1.0+。

✅ 两个官方工具记住了:openclaw doctor 体检修复,openclaw triage 出脱敏诊断、可直交编码 agent。

✅ 更新失败先进恢复入口:openclaw update status --json → openclaw triage → openclaw doctor --fix,别急着回滚状态。

关键报错速查:

报错信号层第一步
openclaw: command not found环境npm prefix -g → 补 PATH
node:sqlite truncates TEXT ...环境升级 Node 24.16+/26.1+
blocked ... allowScripts环境--allow-scripts=openclaw 重装
Gateway start blocked: set gateway.mode=localGateway重盖 gateway.mode=local
EADDRINUSEGatewaystatus --deep 找重复服务
Invalid config at ...配置doctor --fix + config validate
AUTH_TOKEN_MISSING认证gateway auth-token --show
managed-service-handoff-failed更新consoleLevel 设 info
protocol mismatch更新--deep 找旧客户端进程停掉

命令与配置的完整速查见 CLI 命令与配置速查。

下一课预告 ​

环境稳了、Gateway 常驻了,下一步把「大脑」接上。下一课 连接模型总览:provider 体系与模型切换。

你会学到:

  • provider/model 模型引用怎么读、官方 provider 插件为什么不用写配置条目
  • openclaw models 命令族:list / set / status
  • 国产模型全矩阵:DeepSeek、千问、GLM、Kimi、MiniMax、豆包……每家一页

相关教程 ​

搞懂AI关于我们怎么写隐私说明

独立的第三方教程,与文中提到的任何产品及其公司没有隶属或合作关系;产品名称和商标归各自所有者。价格和政策以官方页面为准。