防入侵!OpenClaw 本地部署对接 QQ:从部署到安全权限锁死全流程

前言

折腾 OpenClaw 接 QQ 机器人的过程中,网上教程要么是纯部署,要么是纯安全,很少有把两者串起来的。这篇文章把整个链路走一遍,重点是权限安全 ------这步漏了,你的本地服务就等于裸奔。看下面两张截图就知道它的权限有多大了!!!

权限是双刃剑,带来极大便利、操作空间的同时,也带来了安全隐患。我举一个小例子,看下下图:



上图中的文件就是实际存放在我的电脑里的文件,它就直愣愣的给拿出来了。

接下来就要给它套上缰绳

一、那要怎么做呢?

四件事情要做:

  • OpenClaw(跑在你电脑上的 AI 服务)收消息、出回复
  • QQ 机器人(QQ 开放平台提供)负责在 QQ 端帮你转发消息
  • allowFrom(白名单机制)决定谁能触发机器人
  • 指定bot 指定智能体就是agent来处理,并把这个agent扔到沙箱里,权限最小化处理

交互流程很直觉:你 QQ 发消息 → 机器人转发给本地 OpenClaw → OpenClaw 查白名单 → 通过就处理 → 回复丢回 QQ。

白名单没配好意味着:任何 QQ 号都可以往你电脑上的 OpenClaw 发指令。这不是理论风险,是实打实的安全漏洞。


二、对接 QQ 机器人

基础准备(必做)

  • QQ账号:拥有一个完成实名认证的腾讯QQ账号(用于注册QQ开放平台、创建QQ机器人,建议使用个人常用QQ,避免账号异常)

2.1 注册机器人

  1. 打开 QQ 开放平台,扫码登录

  2. 创建机器人,填名字、头像、简介

    如下图所示:

  3. 记下 AppID 和 AppSecret

⚠️ AppSecret 只显示一次。关了页面就再也找不回来,必须存好。

如下图所示:

这时qq里还不能发消息,需要在小龙虾上配置通道。

2.2 装插件,配 OpenClaw 通道

装插件

bash 复制代码
openclaw plugins install @tencent-connect/openclaw-qqbot@latest

配通道:

bash 复制代码
openclaw channels add --channel qqbot --token "xxxx"

第一根缰绳:限定sessionRouting的agent目标

编辑 ~/.openclaw/openclaw.json,在 channels 里加上:

json 复制代码
"qqbot": {
  "enabled": true,
  "allowFrom": ["*"],
  "appId": "你的AppID",
  "clientSecret": "你的AppSecret",
  "sessionRouting": {
    "target": "main"//或者你想要的agent
  }
}

如下图所示:

我这儿是只允许main这个bot来对接QQ。为了安全起见建议配上

然后重启:

bash 复制代码
openclaw gateway restart

PS:查看agent list:

Bash 复制代码
openclaw agents list
# 正常返回Agent的ID、工作区路径、状态

如下图所示:

限定的这个agent可以扔到沙箱里,只绑定qqbot这一个通道(chennel),权限按照自己的需求最小化,技能(skills)也只给最小的。具体可以参考OpenClaw多个agent一文通

到这一步,QQ 机器人已经能收发消息了。但安全配置还没做完。


三、第二根缰绳:锁死权限(这步千万千万不能省)

3.1 为什么要改 allowFrom

上面配置里 allowFrom: ["*"] 的意思是:任何 QQ 号都能触发你的机器人

后果是什么?如果有人知道你的机器人账号,发一条「读取 /etc/passwd」之类的指令,OpenClaw 如果没有额外防护,可能会照做。这不是危言耸听,是默认配置的现实。

3.2 拿到你的 QQ OpenID

  1. 用自己的 QQ 给机器人发条消息(比如「测试」)
  2. 打开 ~/.openclaw/qqbot/data/known-users.json
  3. 找到 openid 字段,类似 xxx
    如下图所示:

3.3 锁死

编辑 ~/.openclaw/openclaw.json,把 allowFrom 改成:

json 复制代码
"allowFrom": ["xxxx"]

如下图所示:

重启:

bash 复制代码
openclaw gateway restart

现在只有你的 QQ 能触发机器人,其他人都会被忽略。

💡 进阶建议: 如果你有两个设备(手机+电脑)用不同 QQ,把两个 OpenID 都加进去就行。OpenID 是 QQ 账号级别的唯一标识,不随设备变化。


四、验证与日常使用

验证清单

检查项 怎么确认
本地服务运行中 终端没关,或 openclaw gateway status 显示 active
QQ 机器人连通 QQ 发消息,1-3 秒内收到回复
白名单生效 用另一个 QQ 号发消息,机器人不响应
模型正常 回复内容有意义,不是乱码或报错

支持的消息类型

  • ✅ 文本收发(通用)
  • ✅ 图片(需图像识别模型)
  • ✅ 文件(需文件解析模型)
  • ✅ 语音(需 ASR/TTS 模型)
  • ✅ 主动消息(需配定时任务)
  • ❌ 历史消息引用(暂不支持)

如下图所示:

五、小结

  1. 与云上部署不同,本地部署无需依赖云服务器,直接在个人电脑(Windows、Linux、macOS)上安装运行OpenClaw,再通过配置QQ开放平台的机器人参数,即可完成对接,全程可视化操作,无需复杂的服务器运维,适合个人开发者、新手快速上手。
  • 本地OpenClaw:核心"大脑",负责接收消息、调用AI模型处理(如文本对话、图片分析)、生成回复内容,运行在个人电脑本地,不依赖云端服务器。

  • QQ机器人:核心"通信通道",由QQ开放平台提供,负责在QQ端(手机/电脑)接收用户消息,将消息转发给本地OpenClaw,再将OpenClaw生成的回复转发回QQ,相当于"中间人"。

  • QQ开放平台:提供机器人的身份认证(AppID、AppSecret)和消息转发接口,确保本地OpenClaw与QQ机器人之间的通信安全、稳定。

  1. 交互流程:
  • 用户在QQ上给QQ机器人发送消息(如"你好");

  • QQ机器人通过QQ开放平台的API,将该消息转发到本地OpenClaw服务(需确保本地电脑网络正常,且OpenClaw服务处于运行状态);

  • 本地OpenClaw接收消息后,调用已配置的AI模型(如腾讯云TI-ONE、阿里云PAI等)处理消息,生成回复内容;

  • OpenClaw通过QQ开放平台的API,将回复内容发送给QQ机器人;

  • QQ机器人将回复内容展示在QQ对话框中,完成一次交互。

六、常见问题

「该机器人的'灵魂'不在线,请检查它的主机服务部署环境。检查指引」

按这个顺序排查:服务没挂 → AppID/AppSecret 对不对 → allowFrom 是不是自己 → 模型接口能不能通。

其他 QQ 能触发机器人

allowFrom 还是 ["*"],没改。改完重启。


七、后续

  • OpenClaw支持同时接 QQ、飞书、企业微信等通道
  • Token 调用有费用,注意用量
  • AppSecret 和 OpenID 不要外泄

相关推荐
王解2 小时前
OpenClaw 技能深度解析(一):Self-Improving —— 从 SKILL.md 看 AI 的自我进化逻辑
人工智能·ai agent·skill·openclaw
wind5202 小时前
差分包技术
开发语言·node.js·安装·web app·openclaw·龙虾
IMPYLH2 小时前
Linux 的 arch 命令
linux·运维·服务器·bash
代码探秘者2 小时前
【Spring框架】彻底理解 Spring 单例线程安全
java·安全·spring
Azure DevOps2 小时前
Azure DevOps Server:扩充数据库服务器的磁盘
服务器·数据库·microsoft·azure·devops
前端双越老师2 小时前
AI 智能体 Memory 记忆模块
人工智能·node.js·agent
white-persist2 小时前
【Js逆向 python】Web JS 逆向全体系详细解释
运维·服务器·前端·javascript·网络·python·sql
gaoshan123456789102 小时前
springboot 使用zip4j下载压缩包,压缩包内的数据来自oss文件管理服务器
java·服务器·spring boot
常利兵2 小时前
告别SharedPreferences!DataStore+Android Keystore构建安全存储新防线
android·安全