OpenClaw 安装与首次启动报错排查完全指南(2026)

照着教程装完了,一运行就报错?这篇指南覆盖从 npm install 到 gateway 首次成功启动的所有常见报错,每个问题都附带可直接执行的排查命令。

已经装好但 gateway 起不来?Gateway 与浏览器 Relay 排查。本文专注解决从零到能用的问题。

第 0 步:诊断命令速查

出问题先跑这几条,定位到底卡在哪:

node -v                          # 需要 v22+
npm -v                           # Node 装好就有
which openclaw                   # 装上了吗?
openclaw --version               # 什么版本?
openclaw doctor                  # 自动诊断常见问题
openclaw status                  # 完整系统状态

如果 openclaw doctor 直接修好了——恭喜,下面不用看了。没修好就找对应错误往下看。


1. Node.js 版本不兼容

报错特征

npm warn EBADENGINE Unsupported engine {
  required: { node: '>=22' },
  current:  { node: 'v18.19.0' }
}

或者出现语法错误:

SyntaxError: Unexpected token '??='

解决:升级 Node.js 到 v22+

OpenClaw 要求 Node.js 22 或更高版本。先看当前版本:

node -v

低于 v22?升级:

# 方法一:nvm(推荐)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.bashrc
nvm install 22
nvm use 22
nvm alias default 22

# 方法二:NodeSource(Ubuntu/Debian)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs

安装后验证:

node -v   # 应显示 v22.x.x 或更高

坑:系统里有多个 Node

如果 node -v 显示对了但 OpenClaw 还是报错,可能有多个 Node 共存:

which node
which -a node

如果 /usr/bin/node 有个旧版本在干扰 nvm 的版本,确保 shell 配置文件正确加载了 nvm,systemd 服务用的也是正确路径(见第 5 节)。


2. npm 安装失败

报错:权限不足(EACCES)

npm ERR! Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/openclaw'

解决:修复全局 npm 权限问题

别用 sudo npm install -g。改 npm 的全局目录:

mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

然后重装:

npm install -g openclaw

报错:网络超时

npm ERR! code ETIMEDOUT
npm ERR! network request to https://registry.npmjs.org/openclaw failed

解决:处理 npm 网络/源超时

# 测试连通性
curl -I https://registry.npmjs.org/

# 如果在公司网络或需要代理
npm config set proxy http://your-proxy:port
npm config set https-proxy http://your-proxy:port

# 国内用户:切换镜像源
npm config set registry https://registry.npmmirror.com

报错:原生模块编译失败

gyp ERR! build error
npm ERR! code 1

安装编译工具:

# Ubuntu/Debian
sudo apt-get install -y build-essential python3

# CentOS/RHEL
sudo yum groupinstall 'Development Tools'
sudo yum install python3

3. 配置文件报错

报错:JSON 解析失败

SyntaxError: Unexpected token } in JSON at position 423

openclaw.json 有语法错误,通常是多了逗号或少了引号。

解决:修复 JSON 语法与配置校验

验证 JSON 格式:

# 用 Python
python3 -m json.tool ~/.openclaw/openclaw.json

# 或用 jq
jq . ~/.openclaw/openclaw.json

常见错误:

{
  "gateway": {
    "mode": "local",
    "port": 18789,     // ← 最后一个属性不能有逗号
  }
}

JSON 不允许尾逗号和注释,删掉就好。

报错:配置校验失败

Config validation failed: "gateway.mode" must be one of [local, remote]

解决:显式设置 gateway.mode

跑配置向导:

openclaw configure

或手动编辑配置文件:

openclaw config get gateway
nano ~/.openclaw/openclaw.json

报错:“set gateway.mode=local”

Gateway start blocked: set gateway.mode=local

OpenClaw 要求显式声明 gateway 模式:

openclaw configure
# 或手动在 openclaw.json 里加:
# "gateway": { "mode": "local" }

4. API 密钥和 Provider 连接问题

报错:401 未授权

Error: 401 Unauthorized — invalid x-api-key

解决:重配 API Key 与 Provider

检查 API key:

# 查看当前配置(密钥会打码)
openclaw config get providers

# 重新输入密钥
openclaw configure

确认密钥在正确的配置位置。以 Anthropic 为例:

{
  "providers": {
    "anthropic": {
      "apiKey": "sk-ant-api03-..."
    }
  }
}

报错:429 限流

Error: 429 — rate limit exceeded

被 provider 限流了。解决方案:

  1. 配置回退模型,一个被限就自动切下一个:
{
  "models": {
    "default": "anthropic/claude-sonnet-4-5",
    "fallbacks": ["openai/gpt-4.1", "google/gemini-3-pro"]
  }
}
  1. 升级 API 套餐,解除调用频率限制。

详见 模型回退策略指南

报错:连接 Provider 超时

Error: ETIMEDOUT connecting to api.anthropic.com

如果在国内直连不了 API:

# 测试连通性
curl -I https://api.anthropic.com/v1/messages

# 连不上的话需要配代理
# 详见:/blog/openclaw-proxy-config-troubleshooting

国内用户访问 Anthropic 和 OpenAI API 基本都需要代理,参考 代理配置排查指南Claude API 国内接入策略


5. Systemd 服务启动失败

报错:服务状态 failed

sudo systemctl status openclaw-gateway
# 显示:Active: failed (Result: exit-code)

排查:先看日志

journalctl -u openclaw-gateway -n 50 --no-pager

常见原因:ExecStart 路径错误

服务文件必须指向正确的 openclaw 二进制路径:

# 找到实际路径
which openclaw

# 看服务用的是什么
cat /etc/systemd/system/openclaw-gateway.service | grep ExecStart

如果不一致(nvm 安装常见),改服务文件:

sudo nano /etc/systemd/system/openclaw-gateway.service

写入正确路径:

[Service]
ExecStart=/home/youruser/.nvm/versions/node/v22.22.0/bin/openclaw gateway start --foreground

然后重载:

sudo systemctl daemon-reload
sudo systemctl restart openclaw-gateway

常见原因:环境变量没加载

Systemd 不加载你的 shell profile,nvm、PATH、环境变量全都没有。

在服务文件里显式添加环境变量:

[Service]
Environment=PATH=/home/youruser/.nvm/versions/node/v22.22.0/bin:/usr/local/bin:/usr/bin:/bin
Environment=HOME=/home/youruser
Environment=NODE_ENV=production

常见原因:用户不对

如果你用专用用户(比如 openclaw)运行,确保服务也是这个用户:

[Service]
User=openclaw
Group=openclaw
WorkingDirectory=/home/openclaw

配置文件也要在对应路径:

ls -la ~openclaw/.openclaw/openclaw.json

终极方案:重新安装服务

搞不定就让 OpenClaw 自己装:

openclaw gateway install
sudo systemctl daemon-reload
sudo systemctl enable openclaw-gateway
sudo systemctl start openclaw-gateway

6. 端口冲突(EADDRINUSE)

报错

Error: listen EADDRINUSE: address already in use :::18789

解决:清理端口占用

找出谁占了端口:

sudo lsof -i :18789
# 或
sudo ss -tlnp | grep 18789

三个选择:

  1. 杀掉占用进程:
# 如果是旧的 OpenClaw 实例
openclaw gateway stop
# 或强制杀
sudo kill $(sudo lsof -t -i :18789)
  1. 换端口:
{
  "gateway": {
    "port": 18790
  }
}
  1. 如果是残留锁文件:
openclaw doctor --fix

7. 首次连接渠道失败

Telegram 机器人不响应

症状: 机器人建好了,但 OpenClaw 收不到消息。

排查清单:

# 1. 确认 token 配置了
openclaw config get channels.telegram

# 2. 检查渠道状态
openclaw channels list

# 3. 看实时日志
openclaw logs --follow

常见修复:

curl "https://api.telegram.org/bot<YOUR_TOKEN>/deleteWebhook"

更多 Telegram 排查细节参考 Telegram 排查指南


8. 终极方案:全新重装

实在搞不定,重来:

# 1. 停掉一切
openclaw gateway stop

# 2. 备份配置
cp ~/.openclaw/openclaw.json ~/openclaw-config-backup.json

# 3. 卸载
npm uninstall -g openclaw

# 4. 全新安装
npm install -g openclaw

# 5. 跑诊断
openclaw doctor

# 6. 恢复配置
cp ~/openclaw-config-backup.json ~/.openclaw/openclaw.json

# 7. 启动
openclaw gateway start

报错速查表

报错章节快速修复
EBADENGINE / 语法错误Node.js安装 Node 22+
EACCES npm 安装npm修改 npm 全局目录
ETIMEDOUT npmnpm检查网络/换源
JSON 解析失败配置文件修复 JSON 语法
set gateway.mode=local配置文件运行 openclaw configure
401 未授权API 密钥检查/重新输入 API key
429 限流API 密钥配置回退模型
systemd 服务失败Systemd检查 ExecStart 路径和环境变量
EADDRINUSE端口冲突杀进程或换端口
Telegram 没消息渠道连接检查 token + 隐私模式

去哪部署?

需要一台服务器 24/7 跑 OpenClaw?这几家实测好用:

2 核 / 2GB 内存的实例就够跑 OpenClaw 了。完整部署流程看 VPS 部署指南,对比价格看 部署方案定价对比


还是搞不定?

延伸阅读(OpenClaw)

这篇文章有帮助吗?

💬 评论