配置好 Bot 之后,有一个问题必须考虑:如果别人知道了你的 Bot 用户名,他们能用你的 Bot 吗? 默认情况下,OpenClaw 已经有基础保护,但理解这些设置并根据自己的需求调整,是用好 OpenClaw 的重要一步。
一、OpenClaw 的安全模型
OpenClaw 的设计理念是个人助理模型:一个 Gateway 服务一个主人,访问控制的核心问题就是”谁有权限跟你的 Agent 对话”。
所有访问控制配置都在 ~/.openclaw/openclaw.json 里,每个 Channel 可以独立设置。
二、DM 策略(dmPolicy)
dmPolicy 控制私聊的访问权限,是最重要的设置。支持四种模式:
| 值 | 说明 | 适用场景 |
|---|---|---|
pairing(默认) | 新用户首次发消息需要配对码验证 | 个人使用,偶尔分享给信任的人 |
allowlist | 只有白名单里的用户才能私聊 | 严格控制,只允许指定用户 |
open | 任何人都能直接聊,无需验证 | 仅在完全信任的环境使用 |
disabled | 关闭私聊功能 | 只用于群组场景 |
默认的 pairing 模式怎么工作
- 陌生用户给 Bot 发消息
- Bot 回复一个一次性配对码(1小时内有效)
- 你在终端里批准这个配对码
- 该用户以后可以直接聊,不再需要配对
# 查看待批准的配对请求
openclaw pairing list
# 批准(把 CODE 换成实际的配对码)
openclaw pairing approve telegram CODE
# 拒绝
openclaw pairing reject telegram CODE
设置 allowlist(推荐个人使用)
如果你只想让自己用,切换到白名单模式是最干净的方案。
首先获取你的用户 ID(每个平台不同):
- Telegram:给 @userinfobot 发消息,它会告诉你你的 user ID
- 飞书:在飞书开放平台的应用管理里可以查到
然后在 openclaw.json 里配置:
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "你的 token",
"dmPolicy": "allowlist",
"dmAllowlist": ["123456789"]
},
"feishu": {
"enabled": true,
"accounts": {
"main": {
"appId": "cli_xxx",
"appSecret": "xxx",
"dmPolicy": "allowlist",
"dmAllowlist": ["your_feishu_user_id"]
}
}
}
}
}
dmAllowlist 是用户 ID 的数组,可以填多个。
三、群组策略(groupPolicy)
如果你在群里使用 Bot,groupPolicy 控制哪些群可以使用:
| 值 | 说明 |
|---|---|
open | 所有群都可以使用 |
allowlist | 只有白名单里的群 ID 可以使用 |
disabled(默认) | 关闭群组功能 |
{
"channels": {
"telegram": {
"dmPolicy": "allowlist",
"dmAllowlist": ["你的user_id"],
"groupPolicy": "allowlist",
"groupAllowlist": ["-100xxxxxxxxxx"],
"requireMention": true
}
}
}
requireMention: true 表示群里必须 @ Bot 才会响应,避免 Bot 被所有群消息触发。
四、安全审计
OpenClaw 内置了一个安全检查命令:
openclaw security audit
它会扫描你的配置,检查常见安全问题,比如:
- Gateway 是否在没有认证的情况下暴露到网络
- 工具权限是否过于宽松
- 配置文件权限是否正确
如果有问题,它会列出来并给出修复建议。也可以用:
openclaw doctor
openclaw doctor --fix
--fix 会自动修复能修复的问题。
五、不同场景的推荐配置
场景一:只有我自己用
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "xxx",
"dmPolicy": "allowlist",
"dmAllowlist": ["你的telegram_user_id"],
"groupPolicy": "disabled"
}
}
}
场景二:自己用,偶尔让家人用
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "xxx",
"dmPolicy": "pairing"
}
}
}
保持默认的 pairing 模式,家人第一次用时你来批准就好。
场景三:小团队共用
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "xxx",
"dmPolicy": "allowlist",
"dmAllowlist": ["user_id_1", "user_id_2", "user_id_3"]
}
}
}
把所有团队成员的 ID 填进白名单。
六、配置修改后生效
修改 openclaw.json 后 Gateway 会自动热重载,不需要重启。如果用 Control UI 修改,保存后立即生效。
也可以用命令行快速修改单个值:
# 查看当前 dmPolicy
openclaw config get channels.telegram.dmPolicy
# 修改
openclaw config set channels.telegram.dmPolicy allowlist