💡 前言: 刚装好 OpenClaw,兴致勃勃想让它干活,结果终端一片红字
Error: Configuration failed? 或者服务启动了,一调用大模型就提示Missing API Key? 别慌!根据 2026 年社区统计,90% 的启动故障都源于环境变量配置错误。 本文整理了最新版(v2026.3+)最常见的 5 个“致命”配置坑,并附上一键复制的正确模板和排查命令,助你 5 分钟内满血复活!
报错日志关键词:Permission denied, Config validation failed, Secret key missing
2026 新版安全策略升级,如果未设置 OPENCLAW_SECRET_KEY 或配置文件权限不对,程序会主动拒绝启动以保护数据安全。
必须生成随机密钥: 不要随便填个 "123456"!在终端运行:
# Mac/Linux
export MY_KEY=$(openssl rand -hex 32)
# Windows PowerShell
$env:MY_KEY = -join ((48..57) + (65..90) + (97..122) | Get-Random -Count 64 | ForEach-Object {[char]$_})检查 .env 文件:
确保你的 .env 文件里有这一行(替换为你刚才生成的值):
OPENCLAW_SECRET_KEY=你生成的那串长字符修复权限(Linux/Docker常见):
chmod 600 .env
chmod -R 777 ~/openclaw-data报错日志关键词:LLM Provider not configured, Connection timeout, 401 Unauthorized
这是最典型的**“变量名写错”或“代理没配对”**。
DEEPSEEK_KEY 而不是 DEEPSEEK_API_KEY)。.env 但忘记重启容器。请对照以下2026 标准模板检查你的 .env 文件:
# --- 必填:大模型配置 (二选一,不要同时开启多个Provider除非你懂高级配置) ---
# 选项 A: DeepSeek (推荐)
LLM_PROVIDER=deepseek
DEEPSEEK_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
# 选项 B: 阿里云百炼
# LLM_PROVIDER=aliyun
# ALIYUN_DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
# --- 必填:国内网络代理 (没有代理软件请删除这两行!) ---
# 注意:必须是 HTTPS_PROXY,只配 HTTP_PROXY 没用!
HTTPS_PROXY=http://127.0.0.1:7890
HTTP_PROXY=http://127.0.0.1:7890
NO_PROXY=localhost,127.0.0.1,host.docker.internal
# --- 必填:管理员密码 ---
OPENCLAW_ADMIN_PASSWORD=你的强密码
OPENCLAW_SECRET_KEY=你的64位随机密钥🔥 关键动作:修改后务必执行重启!
docker-compose down
docker-compose up -d
# 或者
docker restart openclaw现象:明明设置了密码,登录时却提示 Invalid credentials。
密码中包含 , !, ', " 等特殊字符,在 Shell 或 Docker 解析时被转义或截断了。例如:PASSWORD=My
在 .env 文件中,用双引号包裹包含特殊字符的值:
# ❌ 错误写法
OPENCLAW_ADMIN_PASSWORD=My$SuperPass!
# ✅ 正确写法 (加引号)
OPENCLAW_ADMIN_PASSWORD="My$SuperPass!"注意:Docker Compose 通常能自动处理 .env 中的引号,但为了保险起见,建议密码尽量使用“字母+数字”组合,避免特殊符号。
现象:docker exec 进去看环境变量是空的,或者还是旧值。
.env 文件名错了(比如存成了 .env.txt,Windows 用户高发)。docker-compose.yml 中没有引用 env_file。docker run 命令但忘了加 --env-file .env 参数。自查三步走:
看文件名:在终端输入 ls -a,确认文件名叫 .env 且前面有点。
看配置:
env_file: - .env。--env-file .env。验证注入: 运行以下命令,如果看不到你的 Key,说明根本没注入成功:
docker exec -it openclaw env | grep DEEPSEEK
如果有输出 DEEPSEEK_API_KEY=sk... 则成功;无输出则失败。
现象:日志里全是网络错误,技能完全不可用。
Docker 容器内部的 DNS 解析挂了,或者代理地址写错了(比如代理软件没开,或者端口不是 7890)。
指定容器 DNS:
在 docker-compose.yml 的 services.openclaw 下添加:
dns:
- 8.8.8.8
- 114.114.114.114检查代理端口:
确认你的代理软件(***/Surge等)监听端口确实是 7890。如果是 7893 或其他,请修改 .env 中的端口号。
临时关闭代理测试:
如果你确定网络直连没问题,先注释掉 .env 中的 HTTP_PROXY 和 HTTPS_PROXY 行,重启试试。
如果不确定哪里错了,复制这段命令到终端,它会自动帮你检查常见错误:
echo "🔍 开始诊断 OpenClaw 配置..."
# 1. 检查容器状态
if [ "$(docker ps -q -f name=openclaw)" ]; then
echo "✅ 容器正在运行"
else
echo "❌ 容器未运行!请检查启动命令或日志。"
docker logs openclaw --tail 20
exit 1
fi
# 2. 检查关键变量是否注入
echo "🔎 检查环境变量注入情况..."
if docker exec openclaw env | grep -q "OPENCLAW_SECRET_KEY"; then
echo "✅ 密钥已注入"
else
echo "❌ 密钥未注入!请检查 .env 文件或 docker 启动参数。"
fi
if docker exec openclaw env | grep -q "DEEPSEEK_API_KEY\|ALIYUN_DASHSCOPE_API_KEY"; then
echo "✅ 大模型 Key 已注入"
else
echo "⚠️ 未检测到大模型 Key,请确认你是否配置了对应 Provider。"
fi
# 3. 检查代理配置
if docker exec openclaw env | grep -q "HTTPS_PROXY"; then
echo "⚠️ 检测到代理配置,请确保代理软件正常运行且端口正确。"
else
echo "ℹ️ 未配置代理,如果是国内环境访问海外 API 可能会失败。"
fi
echo "🏁 诊断完成。如果以上都正常但仍报错,请查看完整日志:docker logs -f openclaw".env:别碰 openclaw.json 里的密码字段。deepseek 就必须配 DEEPSEEK_API_KEY。KEY= Value (错) vs KEY=Value (对)。照着这份清单检查一遍,你的 OpenClaw 一定能稳稳跑起来!如果还有问题,欢迎把 docker logs 的最后 20 行贴出来,大家帮你一起看! 🦞