OpenClaw 作为一个完全本地运行的个人 AI 助手,最大的亮点之一就是它的安全机制——设备授权。很多用户第一次部署时都会卡在“页面打不开”“设备未授权”上,其实这就是 devices list 和 devices approve 两条命令在发挥作用。它们不仅是解决“首次访问白屏”的钥匙,还能帮助你实现多设备管理、远程安全访问、批量授权,甚至结合其他命令构建更灵活的访问策略。
本文将深入讲解 devices list/approve 的完整用法,从基础操作到进阶场景,再到最常见的故障排除,帮助你彻底掌握 OpenClaw 的设备授权系统。

文章导航
1. 先搞清楚:OpenClaw 的设备授权机制到底在防什么?
OpenClaw 默认不会让任意浏览器直接访问它的 Web 控制台(http://localhost:7860)。每次有新设备(准确地说是新的 User-Agent + IP 组合)尝试连接前端时,OpenClaw 都会先生成一条“pending”状态的设备记录,只有你手动 approve 后,这台设备才能获得完整访问权限。
这个设计的目的非常明确:
- 防止局域网内其他人未经允许就打开你的 AI 控制台
- 避免远程服务器上因端口误暴露导致的陌生访问
- 为多设备、多用户场景提供精细化控制
简单来说:devices list 是“查看谁在敲门”,devices approve 是“你说可以进来”。
2. 基础用法:最常见的“三步走”流程
大多数用户只需要掌握这三条命令就能正常使用 OpenClaw:
# 1. 查看待授权设备
openclaw devices list
# 2. 批准指定设备(替换为实际 ID)
openclaw devices approve a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8
# 3. 获取带 token 的安全访问链接(用于远程或新标签页)
openclaw dashboard
执行顺序必须是:先打开浏览器访问 http://localhost:7860(哪怕显示空白或未授权)→ 执行 devices list → 复制 ID → approve → 刷新页面。
这是 90% 用户的完整授权流程。
3. 进阶用法:devices list/approve 还能这么玩
3.1 多设备批量管理
当你在多台电脑、手机、平板上使用 OpenClaw 时,devices list 会列出所有历史设备(包括已批准和待批准的)。
典型输出字段:
– ID:唯一标识符(UUID)
– Status:pending / approved / revoked
– LastSeen:最后活跃时间
– IPAddress:来源 IP
– UserAgent:浏览器标识
你可以用它做:
– 查看哪些设备正在活跃
– 发现异常访问(比如突然出现陌生的 IP)
– 定期清理不常用的旧设备
3.2 撤销已授权设备(revoke)
虽然没有直接的 devices revoke 命令,但可以通过以下方式实现同等效果:
# 先列出所有设备,找到目标 ID
openclaw devices list --all
# 手动编辑配置文件中的 approved_devices 列表
# 配置文件路径:~/.openclaw/openclaw.json
# 删除对应 ID 条目后保存,重启服务即可
openclaw restart
或者更彻底地清除全部授权(适合换电脑或清理环境):
# 删除整个授权记录文件(会清除所有已批准设备)
rm ~/.openclaw/devices.db
openclaw restart
注意:删除后所有设备都需要重新授权。
3.3 结合 dashboard 实现“一次性安全链接”分发
在远程服务器(如云主机、NAS、树莓派)部署 OpenClaw 时,你通常不会把 7860 端口直接暴露到公网,而是通过 SSH 隧道访问。
推荐做法:
# 在服务器上执行,生成带一次性 token 的链接
openclaw dashboard
输出会包含:
– 带 token 的完整 URL(有效期通常 24 小时)
– 推荐的 SSH 隧道命令
你只需要把带 token 的 URL 发给信任的人,对方在本地执行 SSH 隧道后打开该链接,即可安全访问,无需再次 approve(因为 token 已包含临时授权)。
3.4 自动化授权脚本(适合开发者)
如果你经常重新部署或测试,可以写一个简单的脚本实现自动 approve:
#!/bin/bash
# 等待 10 秒确保浏览器已发起请求
sleep 10
# 获取最新 pending 设备的 ID(假设只有一个)
DEVICE_ID=$(openclaw devices list | grep pending | awk '{print $1}')
if [ -n "$DEVICE_ID" ]; then
echo "正在批准设备: $DEVICE_ID"
openclaw devices approve $DEVICE_ID
echo "批准完成!"
else
echo "未发现待批准设备"
fi
保存为 auto_approve.sh,启动 OpenClaw 后后台运行即可实现“打开浏览器即自动授权”。
4. 常见问题速查表(99% 的故障都在这里)
| 序号 | 问题现象 | 常见原因 | 解决方法 |
|---|---|---|---|
| 1 | devices list 返回空列表 | 浏览器从未真正访问过 http://localhost:7860,或被插件拦截 | 确认已打开网页(哪怕是白屏),关闭广告拦截/uBlock Origin,重新访问 |
| 2 | approve 后页面仍显示“未授权” | 使用了普通刷新(F5),前端缓存未清除 | 强制刷新(Ctrl+Shift+R 或 Cmd+Shift+R) |
| 3 | approve 报错 “device not found” | ID 复制错误,或在容器内执行命令 | 确保在宿主机终端执行,完整复制 UUID(包括横线) |
| 4 | 远程访问时打不开页面 | 只转发了端口,未使用带 token 的链接 | 执行 clawdbot dashboard 获取带 ?token= 的完整链接 |
| 5 | 多次 approve 后仍无效 | 配置文件路径错误,CLI 读不到正确的 clawdbot.json | 使用 CLAWDBOT_CONFIG_PATH=~/.clawdbot/clawdbot.json clawdbot devices list 强制指定路径 |
| 6 | 手机浏览器访问本地局域网 IP 被拒绝 | 手机和电脑不在同一局域网,或 ClawdBot 只监听 127.0.0.1 | 修改 clawdbot.json 中的 web.bind 为 “0.0.0.0”,重启服务 |
| 7 | 旧设备突然无法访问 | 授权记录文件损坏或被意外清除 | 删除 ~/.clawdbot/devices.db 后重新授权 |
| 8 | dashboard 命令提示 “No GUI detected” | 在无图形界面的服务器上执行 | 正常现象,直接复制输出的带 token 链接和 SSH 命令即可 |
5. 与其他命令的配合使用技巧
- openclaw status:先检查服务是否真正运行(Gateway: running, vLLM: ready)
- openclaw logs –tail 50:当授权失败时查看最近日志,常能看到 “Device registration from 127.0.0.1” 等关键信息
- openclaw restart:任何修改配置或怀疑状态异常时的“万能药”
- openclaw models list:确认模型正常后,再去处理设备授权问题(很多用户把模型未加载的卡顿误以为是授权问题)
6. 最佳实践建议
- 本地开发机:直接用 devices list + approve,简单快捷
- 远程服务器/NAS:优先使用 openclaw dashboard 生成带 token 链接 + SSH 隧道,永不暴露端口
- 多成员家庭/小团队:每人首次访问时执行一次 approve,之后记录到配置文件中,避免重复操作
- 树莓派等无屏设备:部署完成后立即执行 openclaw dashboard,把链接保存到手机备忘录,随时 SSH 隧道访问
7. 结语
OpenClaw 的 devices list 和 devices approve 两条命令虽然看似简单,却承载了整个系统最核心的安全理念:你永远知道是谁、在什么时候、以什么身份访问了你的个人 AI 助手。当你熟练掌握它们的各种用法后,就会发现:原来本地 AI 不仅可以跑得快、隐私好,还能管得严、控得细。
从“页面打不开”的焦虑,到“多设备随意切换”的从容,只差这几条命令的深入理解。现在就打开终端,敲下 openclaw devices list,看看你的 AI 助手正在等待谁的批准吧。
延展阅读:
DeepSeek模型的优势和劣势有哪些?DeepSeek模型的深度思考功能怎么样?