在部署 OpenClaw (原 Clawdbot) 的过程中,安装失败或启动报错是最常见的问题。这些问题通常集中在 环境依赖、配置错误、网络连通性 和 端口冲突 四个方面。
以下是 2026 年最新版 的常见问题排查指南(Troubleshooting Guide),按出现频率排序:
❌ 问题一:Docker 容器启动后立即退出 (Exited)
现象:运行 docker ps 看不到容器,或者看到状态为 Exited (1)。
原因:配置文件缺失、关键环境变量未填、或程序内部报错导致崩溃。
✅ 解决方案:
查看报错日志(最关键步骤):
docker logs --tail 50 openclaw-bot # 或者如果容器名不同,用 docker ps -a 找到 ID 后查看
常见日志错误及对策:
对策:如果是挂载卷模式,检查宿主机路径下是否有
config.yaml或.env文件。对策:如果你配置了本地数据库,检查数据库是否启动。建议新手先用 SQLite 或云数据库。
对策:镜像构建问题。尝试重新拉取最新镜像:
docker pull registry.cn-hangzhou.aliyuncs.com/openclaw/openclaw:latest。对策:启动命令中
-e DASHSCOPE_API_KEY=sk-...没填或填错了。检查是否有空格。Error: DASHSCOPE_API_KEY is missingModuleNotFoundError: No module named 'xxx'Connection refused(连接数据库失败)Config file not found
❌ 问题二:钉钉/飞书回调验证失败 (Verification Failed)
现象:在钉钉/飞书后台保存配置时,提示“回调地址验证失败”或“超时”。
原因:服务器端口未开放、防火墙拦截、或回调 URL 填写错误。
✅ 解决方案:
检查阿里云安全组/防火墙:
ECS:确保安全组 入方向 放行了 8080 端口 (TCP)。
轻量服务器:确保 防火墙 和 安全组 两处 都放行了 8080 端口。
验证端口连通性:
在本地电脑终端执行:telnet <你的服务器公网IP> 8080 # 如果显示 Connected 则网络通;如果超时,说明阿里云没开端口。
检查回调 URL 格式:
必须是
http://(除非你配了 HTTPS 证书)。必须包含端口号
:8080。路径必须正确(通常是
/dingtalk/callback或/feishu/callback,具体看版本文档)。错误示例:
http://1.2.3.4/callback(漏了端口)正确示例:
http://1.2.3.4:8080/dingtalk/callback检查程序是否监听 0.0.0.0:
日志中应显示
Running on http://0.0.0.0:8080。如果显示
127.0.0.1,则外网无法访问。需在.env中设置HOST=0.0.0.0。
❌ 问题三:端口被占用 (Address already in use)
现象:启动报错 OSError: [Errno 98] Address already in use 或 Bind for 0.0.0.0:8080 failed: port is already allocated。
原因:服务器上已有其他程序(如 Java, Nginx, 或其他 Python 服务)占用了 8080 端口。
✅ 解决方案:
查找占用进程:
netstat -tunlp | grep 8080 # 或 lsof -i :8080
处理方式:
修改
.env文件:PORT=9000(或其他未占用端口)。重启容器:
docker restart openclaw-bot。重要:记得去阿里云安全组开放新的端口 (如 9000),并在钉钉后台修改回调地址为新端口。
方案 A (杀掉占用进程):如果占用的是无用进程,
kill -9 <PID>。方案 B (修改 OpenClaw 端口):
❌ 问题四:API Key 无效或鉴权失败
现象:日志显示 InvalidApiKey, Authentication failed, 或机器人收不到消息/不回复。
原因:百炼 API Key 错误、欠费、或未开通服务。
✅ 解决方案:
检查 Key 格式:确保没有多余的空格、换行符。以
sk-开头。检查服务开通:登录 阿里云百炼控制台,确认已开通“模型服务”,且账号未欠费。
检查模型名称:
.env中的MODEL_NAME必须存在。推荐用qwen-plus或qwen-turbo。如果写了不存在的模型名(如qwen-100),也会报错。测试 API:
在服务器上用curl测试 Key 是否有效:curl https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation \ -H "Authorization: Bearer sk-YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"model": "qwen-turbo", "input": {"messages": [{"role": "user", "content": "hi"}]}}'如果返回正常 JSON 则 Key 没问题;如果返回 error,则 Key 有误。
❌ 问题五:源码部署依赖安装失败
现象:使用 pip install -r requirements.txt 时报错,如 Command errored out with exit status 1。
原因:Python 版本不匹配、缺少系统级编译库 (gcc, python3-dev)、或网络超时。
✅ 解决方案:
检查 Python 版本:OpenClaw 通常需要 Python 3.8 - 3.10。
python3 --version
如果是 Python 3.12+,部分旧库可能不兼容,建议用 Docker 或降级 Python。
安装系统依赖 (Ubuntu/Debian):
apt update && apt install -y python3-pip python3-dev build-essential libssl-dev libffi-dev
使用国内镜像源:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
终极方案:放弃源码部署,直接使用 Docker,避免所有环境依赖问题。
❌ 问题六:机器人收到消息但不回复
现象:钉钉/飞书显示消息发送成功,服务器日志也显示收到了请求,但机器人没反应。
原因:大模型调用超时、Prompt 配置错误、或逻辑判断过滤了消息。
✅ 解决方案:
查看详细日志:
docker logs -f openclaw-bot
搜索
Error或Exception。检查 Prompt 配置:
如果系统 Prompt 设置了过于严格的过滤规则(例如“只回答技术问题”),日常闲聊会被忽略。尝试重置 Prompt 为默认值。检查 Token 限额:
确认百炼账号是否有额度限制或并发限制。网络延迟:
如果服务器在海外,调用国内百炼 API 可能超时。确保服务器在国内地域,或使用加速链路。
🚀 快速自救清单 (Checklist)
遇到任何问题,按此顺序操作:
看日志:
docker logs -f openclaw-bot(90% 的问题答案在这里)。查端口:阿里云安全组/防火墙开了吗?本地
telnet IP 8080通吗?对配置:
.env里的 Key 有没有空格?模型名对不对?试网络:服务器能 ping 通
dashscope.aliyuncs.com吗?换 Docker:如果是源码部署报错,果断换 Docker 部署。
如果以上步骤都无法解决,请将 日志的最后 20 行报错信息 复制下来,这通常是定位问题的关键。