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 限流了。解决方案:
- 配置回退模型,一个被限就自动切下一个:
{
"models": {
"default": "anthropic/claude-sonnet-4-5",
"fallbacks": ["openai/gpt-4.1", "google/gemini-3-pro"]
}
}
- 升级 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
三个选择:
- 杀掉占用进程:
# 如果是旧的 OpenClaw 实例
openclaw gateway stop
# 或强制杀
sudo kill $(sudo lsof -t -i :18789)
- 换端口:
{
"gateway": {
"port": 18790
}
}
- 如果是残留锁文件:
openclaw doctor --fix
7. 首次连接渠道失败
Telegram 机器人不响应
症状: 机器人建好了,但 OpenClaw 收不到消息。
排查清单:
# 1. 确认 token 配置了
openclaw config get channels.telegram
# 2. 检查渠道状态
openclaw channels list
# 3. 看实时日志
openclaw logs --follow
常见修复:
- Token 无效: 在 @BotFather 重新创建机器人,更新 token。
- 隐私模式: 在 BotFather 里
/setprivacy→ Disable,否则机器人看不到群消息。 - Webhook 冲突: 如果之前设过 webhook,先清掉:
curl "https://api.telegram.org/bot<YOUR_TOKEN>/deleteWebhook"
- 网络问题: 服务器连不上
api.telegram.org?配代理或检查防火墙。
更多 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 npm | npm | 检查网络/换源 |
| JSON 解析失败 | 配置文件 | 修复 JSON 语法 |
set gateway.mode=local | 配置文件 | 运行 openclaw configure |
| 401 未授权 | API 密钥 | 检查/重新输入 API key |
| 429 限流 | API 密钥 | 配置回退模型 |
| systemd 服务失败 | Systemd | 检查 ExecStart 路径和环境变量 |
| EADDRINUSE | 端口冲突 | 杀进程或换端口 |
| Telegram 没消息 | 渠道连接 | 检查 token + 隐私模式 |
去哪部署?
需要一台服务器 24/7 跑 OpenClaw?这几家实测好用:
- Vultr — $6/月起,全球节点,SSD 快。适合快速上手。
- DigitalOcean — $6/月 droplet,文档非常好。有一键 Node.js 环境。
- 腾讯云 — 国内延迟最低,轻量应用服务器 ¥38/月起。国内用户首选。
2 核 / 2GB 内存的实例就够跑 OpenClaw 了。完整部署流程看 VPS 部署指南,对比价格看 部署方案定价对比。
还是搞不定?
- 跑
openclaw doctor --deep做深度诊断 - 查 OpenClaw 文档 获取最新参考
- 加入 OpenClaw Discord 社区获取实时帮助
- 去 ClawHub 浏览技能和社区方案
延伸阅读(OpenClaw)
- OpenClaw 是什么?一文看懂开源 AI Agent 平台(2026)
- OpenClaw vs ChatGPT vs Claude:2026 年怎么选 AI 助手?
- OpenClaw 模型回退策略:稳定性、成本与质量如何平衡
- OpenClaw Telegram 故障排查全指南
- OpenClaw 日志排查指南:从报错到根因定位