🚀 龙虾新手指南

Windows 10部署OpenClaw-CN龙虾机器人避坑指南:飞书鉴权、UAC权限与Docker日志驱动三步解决

发布时间:2026-07-21 分类: 龙虾新手指南
摘要:Windows 10 部署 OpenClaw-CN(龙虾)避坑指南问题:在 Windows 10 上直接 docker-compose up 启动 OpenClaw-CN,机器人不响应飞书消息,控制台无报错,网页管理页空白——90% 是飞书鉴权失败 + UAC 权限拦截 + 日志被 Docker 默认驱动丢弃。 方案:三步闭环——填对飞书 OAuth2 凭据 → 放行 Windows 安全...

封面

Windows 10 部署 OpenClaw-CN(龙虾)避坑指南

问题:在 Windows 10 上直接 docker-compose up 启动 OpenClaw-CN,机器人不响应飞书消息,控制台无报错,网页管理页空白——90% 是飞书鉴权失败 + UAC 权限拦截 + 日志被 Docker 默认驱动丢弃。

方案:三步闭环——填对飞书 OAuth2 凭据 → 放行 Windows 安全策略 → 切换日志驱动定位真实错误。不装 WSL2、不改注册表、不碰 PowerShell 策略组,纯 Docker Desktop 原生支持。


步骤 1:飞书 App ID / Secret 配置(OAuth2 鉴权原理)

OpenClaw-CN 启动时用 APP_IDAPP_SECRET 向飞书申请 tenant_access_token,这是调用飞书 API 的临时凭证。填错、多空格、混入中文标点,服务会静默退出——因为鉴权失败发生在启动流程早期,根本来不及输出错误。

✅ 操作:

# 进入项目根目录,编辑 .env 文件(用记事本或 VS Code 打开)
notepad .env

确保这三行严格无空格、无引号、无中文标点

FEISHU_APP_ID=cli_XXXXXX  # 复制飞书开放平台「应用凭证」里的 App ID(不是 App Key!)
FEISHU_APP_SECRET=XXX...  # 复制「应用凭证」里的 App Secret(32位字母数字)
FEISHU_ENCRYPT_KEY=       # 留空(未开启消息加密时必须为空,填了反而出错)

⚠️ 注意:飞书 OAuth2 对 client_id(即 APP_ID)和 client_secret 敏感。ENCRYPT_KEY 若留空但飞书后台启用了消息加密,会返回 400 错误,而 Docker 默认不打印这类前置失败日志。


步骤 2:修复 Windows 系统安全权限(UAC 干预原理)

Docker Desktop 在 Win10 默认以低完整性级别运行。如果 .envconfig/ 下的文件是从浏览器下载解压的,Windows 会自动打上“来自互联网”标记并设为只读——Docker 进程读取失败,.env 变量全为空,APP_ID 缺失 → 鉴权跳过 → 服务卡在初始化阶段,看起来像“假死”。

✅ 操作:

# 以管理员身份打开 PowerShell(右键开始菜单 → Windows PowerShell(管理员))
cd C:\openclaw-cn
# 清除只读属性并赋予当前用户完全控制权
attrib -R config\*.*
icacls config\*.* /grant "%USERNAME%:(F)" /T

⚠️ 注意:icacls 直接修改 ACL,比右键属性里手动勾选“完全控制”更可靠,尤其对批量文件。UAC 拦截的是文件访问权限,不是 Docker 本身。


步骤 3:切换日志驱动排错(Docker 日志定位逻辑)

默认 json-file 驱动在 Windows 上容易丢失启动瞬间的日志(比如鉴权失败崩溃)。换成 local 驱动能稳定捕获,并支持实时过滤关键线索。

✅ 操作:


![配图](https://yitb.com/usr/uploads/covers/cover_guides_20260720_201215.jpg)

# 编辑 docker-compose.yml,在 services.openclaw.cn 下添加日志配置
notepad docker-compose.yml

openclaw-cn 服务块末尾加入:

    logging:
      driver: "local"
      options:
        max-size: "10m"
        max-file: "3"

然后重启并实时看日志:

docker-compose down && docker-compose up -d
docker-compose logs -f openclaw-cn | findstr "error\|token\|401\|failed"

✅ 典型报错与对策对照表:

日志关键词原因解决
invalid app_id.envAPP_ID 多空格或复制了换行符用 Notepad++ 显示所有字符,删空格和不可见符
permission denied: config/.envUAC 拦截读取执行步骤 2 的 icacls 命令
tenant_access_token expired飞书后台未开启「机器人」权限进飞书开放平台 → 应用 → 功能 → 开启「机器人」并保存

验证

部署后:

  1. 打开飞书 → 搜索机器人名字 → 发送 /help
  2. 看 Docker 日志是否出现 Bot started, listening on port 8000
  3. 访问 http://localhost:8000/admin(默认账号 admin/admin)

常见问题

  • Qdocker-compose up 报错 port already in use
    A:关闭飞书客户端(它占 8000 端口),或改 docker-compose.ymlports: ["8080:8000"]
  • Q:网页管理页显示 502 Bad Gateway
    A:执行 docker-compose logs nginx,90% 是 openclaw-cn 服务没起来——回看步骤 3 的日志输出。

下一步建议:
《OpenClaw-CN 接入自定义知识库(CSV/Markdown)实战》
《用 MCP 协议让龙虾调用本地 Python 脚本》
→ 遇到具体报错?截图发到 龙虾 Discord #windows-help 频道,附 docker-compose logs -t openclaw-cn | head -n 50 输出。

返回首页