跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / BashAI

OpenClaw 树莓派部署:Gateway 仪表盘登录与网络配置排查

在树莓派部署 OpenClaw Gateway 时,常遇到局域网无法访问、跨域报错、HTTPS 安全上下文限制及设备配对验证失败等问题。按排查顺序梳理了四个核心关卡:修改监听地址为 0.0.0.0 解决网络连通性,配置 allowedOrigins 白名单处理跨域,生成自签名证书启用 HTTPS 满足浏览器安全策略,以及通过命令行审批设备身份。最终提供完整的配置文件参考与排错路线图,帮助开发者快速搭建可用的 AI 代理网关环境。

道系青年发布于 2026/3/25更新于 2026/10/989 浏览
OpenClaw 树莓派部署:Gateway 仪表盘登录与网络配置排查

OpenClaw 树莓派部署:Gateway 仪表盘登录与网络配置排查

在树莓派上部署 OpenClaw 时,不少开发者会碰上一连串'拦路虎':从局域网无法访问,到跨域报错,再到 HTTPS 安全上下文限制,最后是设备配对验证。

这里复盘了我遇到的四个核心问题及其解决方案,按发生顺序排列,助您一次性打通所有关卡,顺利运行 AI 代理网关。

第一关:局域网无法访问(端口监听问题)

现象描述

树莓派上的 OpenClaw Gateway 服务已启动,日志显示正常监听 18789 端口。但在同一局域网的其他电脑浏览器中输入 http://<树莓派 IP>:18789,却显示无法连接或连接超时。

原因分析

默认情况下,某些服务可能只绑定在 localhost (127.0.0.1) 上,这意味着它只接受来自树莓派内部的请求,拒绝外部局域网设备的访问。

解决方案:修改 Bind 模式

需要修改网关配置文件,将其监听地址改为 0.0.0.0(允许所有网卡接口访问)。

编辑配置文件(通常位于 ~/.openclaw/openclaw.json):

sudo vi ~/.openclaw/openclaw.json

找到 gateway 的 bind 部分,将 mode 设为 local,bind 设为 lan:

"gateway":{"port":18789,"mode":"local","bind":"lan"}

保存并重启服务:

sudo openclaw gateway restart

现在应该可以在局域网其他设备上通过 http://:18789 访问了(虽然接下来可能会报跨域错误,但这证明网络通了)。

第二关:跨域错误 CORS(白名单配置)

现象描述

网页能打开了,但会话界面显示错误信息,页面功能异常,提示类似:

origin not allowed (open the Control UI from the gateway host or allow it in gateway.controlUi.allowedOrigins)

原因分析

浏览器的同源策略 (Same-Origin Policy) 阻止了网页向不同源(即使只是 IP 不同)发起请求。OpenClaw 默认可能只允许特定的域名访问,或者未配置允许的 Origin 列表。

解决方案:配置 Gateway 白名单

在配置文件中明确添加您的局域网 IP 或允许所有来源(测试环境)。

再次编辑配置文件:

sudo vi ~/.openclaw/openclaw.json

找到 controlUi 部分,添加树莓派的访问地址:

"controlUi":{"allowedOrigins":["http://localhost:18789","http://127.0.0.1:18789","https://192.168.5.5:18789"]}

重启服务:

sudo openclaw gateway restart

跨域报错消失后,页面可能会提示新的错误。

第三关:安全上下文限制(必须启用 HTTPS)

现象描述

跨域问题解决后,页面弹出红色警告或无法建立 WebSocket 连接,提示:

Control UI requires device identity (use HTTPS or localhost secure context)

或者浏览器控制台报错:WebSocket connection failed: Mixed Content / Secure Context required。

原因分析

现代浏览器(Chrome, Edge, Safari 等)出于安全考虑,禁止在非安全上下文(即非 HTTPS 且非 localhost)中使用某些敏感 API(如麦克风、摄像头、剪贴板,以及 OpenClaw 所需的某些身份验证机制)。由于您是通过局域网 IP (http://192.168.x.x) 访问,不属于 localhost,因此必须启用 HTTPS。

解决方案:生成自签名证书并启用 HTTPS
1. 生成自签名证书

在树莓派上运行以下命令(注意国家代码必须是 2 位,Common Name 必须是您的 IP):

openssl req -x509 -newkey rsa:4096 -keyout ~/.openclaw/certs/key.pem -out ~/.openclaw/certs/cert.pem -days 365 -nodes -subj "/C=CN/ST=Beijing/L=Haidian/O=HomeLab/CN=192.168.5.5"

(请将 CN=192.168.5.5 替换为您的实际 IP)

2. 配置 Gateway 使用证书

编辑配置文件,启用 SSL 并指向证书路径:

"server":{"tls":{"enabled":true,"certFile":"/home/pi/.openclaw/certs/cert.pem","keyFile":"/home/pi/.openclaw/certs/key.pem"}}
3. 重启服务并信任证书
sudo openclaw gateway restart

注意:浏览器会提示'连接不安全',因为是自签名证书。请点击'高级' -> '继续访问'即可。此时,访问地址变为 https://:18789。安全上下文问题解决,但你会遇到最后一个关卡:配对。

第四关:Pairing Required(设备身份验证)

现象描述

一切配置就绪,HTTPS 也通了,但页面显示:

disconnected (1008): pairing required 或者 Pairing required

原因分析

这是 OpenClaw 的零信任安全机制。即使通过了 HTTPS 验证,网关仍不认识这台浏览器设备。首次连接必须经过管理员显式批准,防止未授权控制。

解决方案:命令行审批法

这是最标准、最安全的解决方式。

1. 查看待审批设备

保持浏览器页面打开(触发请求),在终端执行:

openclaw devices list

输出示例:

┌──────────────────────────────────────┬──────────────┬─────────────────────┐
│ Request ID                           │ Role         │ Created At          │
├──────────────────────────────────────┼──────────────┼─────────────────────┤
│ 4f9db1bd-a1cc-4d3f-b643-2c195262464e │ browser      │ 2026-03-10 22:22:01 │
└──────────────────────────────────────┴──────────────┴─────────────────────┘
2. 批准设备

复制 Request ID 并执行:

openclaw devices approve 4f9db1bd-a1cc-4d3f-b643-2c195262464e

看到 ✓ Approved 后,刷新浏览器页面,即可正常进入控制界面!

总结:完整配置清单

为了方便大家对照检查,以下是解决所有问题后的 openclaw.json 核心配置参考:

{
  "gateway": {
    "port": 18789,
    "mode": "local",
    "bind": "lan",
    "tls": {
      "enabled": true,
      "certFile": "/home/pi/.openclaw/certs/cert.pem",
      "keyFile": "/home/pi/.openclaw/certs/key.pem"
    },
    "controlUi": {
      "allowedOrigins": [
        "http://localhost:18789",
        "http://127.0.0.1:18789",
        "https://192.168.5.5:18789"
      ]
    },
    "auth": {
      "mode": "token",
      "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    },
    "tailscale": {
      "mode": "off",
      "resetOnExit": false
    }
  }
}
排错路线图
  1. 连不上?查 host: 0.0.0.0
  2. 跨域报错?查 allowedOrigins
  3. 安全上下文报错?配置 TLS/HTTPS
  4. 配对报错?运行 openclaw devices approve

希望这篇完整的指南能帮您少走弯路,顺利搭建属于自己的 AI 机器人网关。

目录

  1. OpenClaw 树莓派部署:Gateway 仪表盘登录与网络配置排查
  2. 第一关:局域网无法访问(端口监听问题)
  3. 现象描述
  4. 原因分析
  5. 解决方案:修改 Bind 模式
  6. 第二关:跨域错误 CORS(白名单配置)
  7. 现象描述
  8. 原因分析
  9. 解决方案:配置 Gateway 白名单
  10. 第三关:安全上下文限制(必须启用 HTTPS)
  11. 现象描述
  12. 原因分析
  13. 解决方案:生成自签名证书并启用 HTTPS
  14. 1. 生成自签名证书
  15. 2. 配置 Gateway 使用证书
  16. 3. 重启服务并信任证书
  17. 第四关:Pairing Required(设备身份验证)
  18. 现象描述
  19. 原因分析
  20. 解决方案:命令行审批法
  21. 1. 查看待审批设备
  22. 2. 批准设备
  23. 总结:完整配置清单
  24. 排错路线图

更多推荐文章

查看全部
  • C++ 继承机制详解:栈实现、名称隐藏与默认成员函数
  • C++ 模板的两大特性:typename 与分离编译
  • Python 调用大模型 API 接口开发指南
  • CSS 文字与段落排版详解
  • Whisper-large-v3 常见问题解析与语音识别避坑指南
  • 豆包 Seedream 4.0 多图融合评测:主体一致性与 4K 生成能力解析
  • Java 开发者转型网络安全渗透测试:入门指南与实战路径
  • 91n 边缘计算设备部署轻量 TensorFlow 模型实战
  • 再探 GraphRAG:如何提升 LLM 总结能力
  • 免费 Trae 编辑器体验:i18n 任务排队千名及 AI 编程思考
  • AI 智能体驾驭工程(Harness Engineering)全解析
  • 6 款免费 AI 写作软件测评及去 AI 味方案
  • C++ 事件总线(EventBus)实现嵌入式系统解耦
  • 程序员职场进阶:除代码外需掌握的关键技能
  • 昇腾平台上的 Llama-2-7b 部署与测评记录
  • Python Web 自动化测试实战:以博客系统为例,从用例到报告全流程解析
  • 剑指 Offer 第 2 版:二叉树算法解析
  • 前缀和算法详解与实战应用
  • Better Exceptions 完全指南:Python 调试进阶
  • GitHub Pages 制作个人主页教程

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online