• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
思想人生从关注生活开始
博客园    首页    新随笔    联系   管理    订阅  订阅

OpenClaw启动就报错?90%的人都是环境变量配错了!附2026最新避坑清单

💡 前言:
刚装好 OpenClaw,兴致勃勃想让它干活,结果终端一片红字 Error: Configuration failed?
或者服务启动了,一调用大模型就提示 Missing API Key?
别慌!根据 2026 年社区统计,90% 的启动故障都源于环境变量配置错误。
本文整理了最新版(v2026.3+)最常见的 5 个“致命”配置坑,并附上一键复制的正确模板和排查命令,助你 5 分钟内满血复活!

🚨 症状一:容器启动即退出 (Exit Code 1)

报错日志关键词:Permission denied, Config validation failed, Secret key missing

❌ 错误原因

2026 新版安全策略升级,如果未设置 OPENCLAW_SECRET_KEY 或配置文件权限不对,程序会主动拒绝启动以保护数据安全。

✅ 解决方案

  1. 必须生成随机密钥:
    不要随便填个 "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]$_})
    
  2. 检查 .env 文件:
    确保你的 .env 文件里有这一行(替换为你刚才生成的值):
    OPENCLAW_SECRET_KEY=你生成的那串长字符
    
  3. 修复权限(Linux/Docker常见):
    chmod 600 .env
    chmod -R 777 ~/openclaw-data

🚨 症状二:能登录后台,但所有技能都报错“无API Key”

报错日志关键词:LLM Provider not configured, Connection timeout, 401 Unauthorized

❌ 错误原因

这是最典型的**“变量名写错”或“代理没配对”**。

  1. 变量名拼写错误(如写成 DEEPSEEK_KEY 而不是 DEEPSEEK_API_KEY)。
  2. 国内网络未配置 HTTPS 代理,导致无法连接海外/国内公有云 API。
  3. 修改了 .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$Pass! 可能被解析为 My (因为 $P 被当成变量)。

✅ 解决方案

在 .env 文件中,用双引号包裹包含特殊字符的值:

# ❌ 错误写法
OPENCLAW_ADMIN_PASSWORD=My$SuperPass!

# ✅ 正确写法 (加引号)
OPENCLAW_ADMIN_PASSWORD="My$SuperPass!"

注意:Docker Compose 通常能自动处理 .env 中的引号,但为了保险起见,建议密码尽量使用“字母+数字”组合,避免特殊符号。

🚨 症状四:变量写了却没生效 (幽灵变量)

现象:docker exec 进去看环境变量是空的,或者还是旧值。

❌ 错误原因

  1. .env 文件名错了(比如存成了 .env.txt,Windows 用户高发)。
  2. docker-compose.yml 中没有引用 env_file。
  3. 使用了 docker run 命令但忘了加 --env-file .env 参数。

✅ 解决方案

自查三步走:

  1. 看文件名:在终端输入 ls -a,确认文件名叫 .env 且前面有点。
  2. 看配置:
    • Compose 用户:检查 yaml 里是否有 env_file: - .env。
    • Run 用户:检查命令里是否有 --env-file .env。
  3. 验证注入:
    运行以下命令,如果看不到你的 Key,说明根本没注入成功:
    docker exec -it openclaw env | grep DEEPSEEK
    
    如果有输出 DEEPSEEK_API_KEY=sk... 则成功;无输出则失败。

🚨 症状五:日志狂刷 "DNS resolution failed"

现象:日志里全是网络错误,技能完全不可用。

❌ 错误原因

Docker 容器内部的 DNS 解析挂了,或者代理地址写错了(比如代理软件没开,或者端口不是 7890)。

✅ 解决方案

  1. 指定容器 DNS:
    在 docker-compose.yml 的 services.openclaw 下添加:
    dns:
      - 8.8.8.8
      - 114.114.114.114
    
  2. 检查代理端口:
    确认你的代理软件(***/Surge等)监听端口确实是 7890。如果是 7893 或其他,请修改 .env 中的端口号。
  3. 临时关闭代理测试:
    如果你确定网络直连没问题,先注释掉 .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"

📝 总结:2026 配置黄金法则

  1. 敏感信息进 .env:别碰 openclaw.json 里的密码字段。
  2. Key 要对应 Provider:选了 deepseek 就必须配 DEEPSEEK_API_KEY。
  3. 代理要配 HTTPS:只配 HTTP 是没用的。
  4. 改完必重启:环境变量不热加载!
  5. 空格是大敌:KEY= Value (错) vs KEY=Value (对)。

照着这份清单检查一遍,你的 OpenClaw 一定能稳稳跑起来!如果还有问题,欢迎把 docker logs 的最后 20 行贴出来,大家帮你一起看! 🦞

posted @ 2026-03-17 11:23  JackYang  阅读(1)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3