乐于分享
好东西不私藏

在你的电脑里装OpenClaw才最安全

在你的电脑里装OpenClaw才最安全

系列:JS 的养虾日记 · 第 2 篇


前阵子一条新闻吓坏了很多人:13.5 万台 OpenClaw 设备遭殃。

国家互联网应急中心(CNCERT)发了风险提示,原文只说了一句要害:"由于其默认的安全配置极为脆弱"。

评论区清一色的反应是:

"完了,赶紧找个云平台托管吧,自己搞太危险了。"

我看了差点把咖啡喷出来。

兄弟,恰恰反了。

云端托管,才是最危险的选择。

我的龙虾全是本地部署的,从来不敢用云端。

原因很简单——本地的配置,我每一行都看得见。


云端装?那叫把命交给别人

很多人一听"安全问题",第一反应是找个云平台——省心、有人管、出了事有客服。

听着挺对。

但你想过没有,云端的 OpenClaw 配置文件长什么样?

你不知道。

因为你根本看不见。

厂商的 openclaw.json 里写了什么权限,你看不到。exec-approvals.json 里审批策略是什么,你也看不到。

你的 AI 能调用哪些工具、能执行什么命令、日志存在哪里——全是厂商说了算。

你唯一能操作的,就是一个"开/关"按钮。

你住进了一家酒店。

空调温度、门锁密码、走廊摄像头位置、谁有你房间的备用钥匙——全是酒店定的。

你以为安全了?

你连自己的门能不能反锁都不确定。

出了事——数据泄露了、API Key 被盗了、AI 被注入恶意指令了——你连查哪个日志都找不到。

因为日志也在人家手上。

这不叫安全,这叫把安全外包给一个你无法审计的第三方。


怕?正常。但其实大多数人怕的原因不是"龙虾 危险"

一切的恐惧,来自于不懂。

小孩怕黑,不是怕黑暗本身,是怕"不知道黑暗里有什么"。

开灯就不怕了。因为看懂了。

以前还有新闻老人怕微波炉,不是微波炉真的危险,是不懂原理。知道微波是什么、怎么被屏蔽的,就不怕了。

坐飞机怕颠簸,不懂的人觉得"飞机要掉下去了"。

懂的人知道——这只是气流,飞机设计能承受比这强十倍的力。

OpenClaw 是一样的道理。

CNCERT 说"默认配置脆弱"——你慌了。

13.5 万台设备遭殃——你更慌了。

但这 13.5 万台出事,不是 OpenClaw 本身有毒。

是用户压根不知道怎么配置、怎么审计、怎么控制。

等于给你一把菜刀,你不拿来切菜,闭着眼睛乱挥——当然出事。

那怎么办?

把灯打开,看清楚它到底长什么样。


OpenClaw 装在你电脑里,到底长什么样?

很多人以为 OpenClaw 是一个很复杂的系统。

其实装完之后,翻开来看,核心就这么几个东西:

Gateway——你家大门口的保安。

所有消息进出你的 AI,都要经过 Gateway。它默认只绑定 127.0.0.1:18789

这个保安只认你本机的人。外面的人敲门?不开。

互联网上那些扫描攻击、恶意流量?保安在门口直接拦住了,压根进不来。

Agent——龙虾本虾。

就是你的 AI 助理。它有自己的工作间(Workspace),里面放着人设文件、长期记忆、技能说明书。

你可以养一只专门帮你写文章的,再养一只专门帮你跑数据的。它们之间互相隔离,一只出问题不影响另一只。

Channel——对讲机。

飞书、微信、Discord,这些都是不同的对讲机。

消息从对讲机进来 → 经过保安(Gateway)→ 到达龙虾(Agent)→ 龙虾处理完 → 原路返回。

不接对讲机?龙虾就是个关在家里干活的安静小可爱,谁也找不到它。

两个配置文件——两把钥匙。

第一把:openclaw.json。管的是"龙虾能看见什么"——哪些工具可以用、哪些工具禁止用、谁能跟龙虾说话、群聊要不要@才回复。

第二把:exec-approvals.json。管的是"龙虾能执行什么命令"——哪些命令直接放行、哪些要你手动批准、哪些一律禁止。

两把钥匙,都在你自己手上。

你能看懂每一行配置是什么意思。知道哪里能改,怎么改,改了会怎样。

这就是本地部署和云端的根本区别:住自己家,你知道每个窗户怎么锁、每把钥匙在哪儿。

住酒店?你连房间的 WiFi 密码是不是被人截过都不知道。


五道锁:OpenClaw 的安全架构

第一道锁:谁能敲门?

你的龙虾不是谁都能聊的。默认用 pairing 机制——陌生人发消息过来,龙虾不理,只给对方一个配对码。

你在终端手动批准了,才能聊。

就像快递员到了小区门口,得业主按开门键才能进。

第二道锁:聊天内容隔离。

每段对话都有独立的会话——你的聊天、同事的聊天、不同群的聊天,互相看不到。

就像银行柜台,每个窗口只处理一个客户,后面排队的人看不到你的交易。

第三道锁:工具执行审批。

龙虾想跑一条命令?exec-approvals.json 里配了三档:

  • deny:一律禁止
  • allowlist:白名单内的才能跑
  • full:全部放行——别用这个,除非你知道自己在干啥

就像公司的 OA 审批——你提交报销,领导点"同意"才能走流程。龙虾执行命令也一样,你不点头,它跑不了。

第四道锁:外部内容隔离。

龙虾去网上抓了一段内容回来,系统会自动给这段内容打上标记。

这样即使有人在网页里藏了恶意指令(提示词注入),龙虾也能分清"这是外面捡回来的东西"和"这是主人的命令"。

就像快递到了手上,你会看一眼寄件人再拆。

第五道锁:插件供应链审核。

你给龙虾装新技能(Skill),它不是随便装的。来源要可追溯,版本号要规范,还会做安全扫描。

就像手机装 App——正规应用商店有审核,不是随便一个安装包就往手机里塞。

五道锁,层层递进。

任何一个环节被突破了,后面还有下一道在拦着。

这叫纵深防御。不是一把锁挡住所有人,是五把锁排成一排。

云端?你连第一把锁的钥匙在哪儿都不知道。


怎么配才安全?三件事就够

看到这儿,架构你已经看明白了。

接下来是实操——装完之后,怎么把安全配置拉满?

三件事就够。

第一件:锁死大门——Gateway 不暴露公网。

Gateway 默认只绑定 127.0.0.1,意思是只有你这台电脑能访问。

你不需要做任何额外配置,装完它就是这个状态。

千万不要手贱改成 0.0.0.0

改了等于把你家大门拆了,全世界都能进来。

CNCERT 提到的 13.5 万台设备遭殃,一大半就是因为这个——把不该暴露的端口暴露到了公网。

如果你需要远程访问,用 VPN 组内网,不要直接暴露端口。

第二件:管好谁能说话——pairing + requireMention。

私聊用 pairing 策略——陌生人找你的龙虾聊天,必须你手动批准。

群聊开 requireMention: true——群里 500 人聊天,龙虾只回复 @ 它的消息,其他一律无视。

再加一个群聊白名单 groupAllowFrom——只有你指定的群能用。

三道保险叠一起:谁能聊 + 群里怎么聊 + 哪些群能聊。

第三件:管好龙虾能干啥——双轨权限。

这是最核心的。

openclaw.json 里的 tools.allow 和 tools.deny——控制龙虾能看见哪些工具。

看不见的工具,它压根不知道存在,更不可能调用。

exec-approvals.json 里的 security: allowlist——控制龙虾能执行哪些命令。

不在白名单里的命令,一律拒绝。在白名单里但你开了 ask: on-miss,它还会弹窗问你"这个命令能执行吗?"

两层管控,一层管"能不能看见",一层管"能不能动手"。

像 execute_commandsend_email 这种高风险工具——我的建议是直接关掉,或者加二次确认。

你想想,如果你的 AI 被提示词注入了,它能执行任意命令、能发邮件——后果你自己想。

关掉它的手,它嘴再怎么被人利用,也翻不了天。


上线前过一遍这个 checklist

安全配置做完了,上线之前过这五项,缺一不可:

  • 私聊策略:是 pairing 或 allowlist,不是 all
  • 群聊保险栓:requireMention 已开启
  • 群白名单:只允许必要的群
  • 预算上限openclaw config set budget.monthly 50(防止被刷爆)
  • 高风险工具:execute_command、send_email 关掉或加二次确认

过完这五条再放出去。不过完,别放。


看到这儿你应该发现了——上面这些配置,没有一步需要你是程序员。

本地装一只龙虾,花一个下午。安全配置跟着这篇做,半小时。

不是"本地更难所以更安全",恰恰相反——本地更透明,所以你能掌控,能掌控所以才安全。

后续我会继续拆:怎么装、怎么接飞书、怎么让龙虾真正跑起来干活。

想跟着养的,别走丢了。

以上~谢谢你看我的文章,我们,下次再见。


JS 的养虾日记 · 第 2 篇

2026-03-18