OpenClaw 重启后快速恢复连接指南:避免重复配对的技巧
作者:AITechLab 由 AI 助手复盘整理
日期:2026-07-21
环境:Windows 11 + OpenClaw 2026.7.1-2 + LM Studio + Node.js v24.18.0
前置阅读:OpenClaw Windows Companion 连接 LM Studio 完整配置指南
一、前言
技术更新纪实:OpenClaw 与 Hermes AI Agent 现已支持 Windows 桌面客户端部署
OpenClaw Windows Companion 桌面客户端 连接 LM Studio 完整配置指南
在上一篇文章中,我们完成了 OpenClaw Windows Companion 连接 LM Studio 的完整配置。但很多读者(包括我自己)发现一个烦人的问题:每次关闭 Companion 后重新打开,都需要重新执行 device 配对和 node 批准流程。
本文将深入分析原因,并提供多种解决方案,帮助你实现"一次配置,持久连接"。
二、问题现象
2.1 典型场景
- 晚上关闭 Companion 窗口
- 第二天重新打开 Companion
- 显示错误:
unauthorized: device token mismatch (rotate/reissue device token) - 需要重新运行:
openclaw devices approve <新的-device-id> openclaw nodes approve <新的-node-id>
2.2 根本原因
OpenClaw 的安全架构设计:
┌─────────────────────────────────────────────────────────────┐ │ OpenClaw 安全模型 │ ├─────────────────────────────────────────────────────────────┤ │ 1. Device Token 绑定到「设备实例」而非「设备硬件」 │ │ → 每次 Companion 启动 = 新的设备实例 │ │ → 旧的 device token 自动失效 │ │ │ │ 2. Node Token 绑定到「会话」 │ │ → 每次 Companion 重新连接 = 新的 Node 注册 │ │ → 需要重新批准 capabilities │ │ │ │ 3. Shared Token 只验证 Gateway 身份 │ │ → 不替代 device/node 级别的权限控制 │ └─────────────────────────────────────────────────────────────┘核心结论:这是设计如此,不是 bug。但可以通过一些技巧减少麻烦。
三、解决方案对比
| 方案 | 复杂度 | 持久性 | 适用场景 |
|---|---|---|---|
| 方案A:保持 Companion 后台运行 | ⭐ 最简单 | ⭐⭐⭐ 最佳 | 日常使用 |
| 方案B:快速批准命令 | ⭐⭐ 简单 | ⭐⭐ 较好 | 偶尔重启 |
| 方案C:Tailscale 远程连接 | ⭐⭐⭐ 中等 | ⭐⭐⭐ 最佳 | 跨设备/远程 |
| 方案D:修改设备持久化配置 | ⭐⭐⭐⭐ 复杂 | ⭐⭐⭐ 最佳 | 高级用户 |
| 方案E:自动批准脚本 | ⭐⭐⭐ 中等 | ⭐⭐ 较好 | 开发测试 |
四、方案A:保持 Companion 后台运行(推荐)
4.1 原理
Companion 关闭窗口 ≠ 退出程序。点击窗口右上角的X时,Companion 默认会:
- ❌关闭窗口并退出→ 下次需要重新配对
- ✅最小化到系统托盘→ 保持连接,下次直接恢复
4.2 正确操作
关闭 Companion 时:
- 不要点击窗口右上角的X关闭
- 使用Ctrl + W或点击Disconnect断开连接
- 让 Tray 图标继续运行在系统托盘
重新打开 Companion 时:
- 点击系统托盘的 OpenClaw 图标
- 选择Open或双击图标
- 连接自动恢复,无需重新配对!
4.3 验证 Tray 是否运行
# 查看系统托盘进程 Get-Process | Where-Object { $_.ProcessName -like "*openclaw*" -or $_.ProcessName -like "*claw*" }五、方案B:快速批准命令(实用技巧)
如果 Companion 已经关闭并需要重新配对,使用以下快捷命令:
5.1 一键批准最新设备
# 步骤1:查看最新的 pending 设备(预览,不执行) openclaw devices approve --latest # 输出示例: # Selected pending device request d8fcd4f4-137f-4fb5-a2b4-76cfeb4333b2 # Device: OpenClaw Windows Tray # Requested: roles: operator; scopes: operator.admin, operator.pairing, operator.read, operator.write # Approve this exact request with: openclaw devices approve d8fcd4f4-137f-4fb5-a2b4-76cfeb4333b2 # 步骤2:复制 device ID 并批准 openclaw devices approve d8fcd4f4-137f-4fb5-a2b4-76cfeb4333b25.2 在 Companion 中点击 Connect
5.3 一键批准 Node
# Companion 会显示新的 node ID,例如: openclaw nodes approve 3faf0f0b-4c96-4445-a69c-d286f193e6985.4 制作批处理脚本(进阶)
创建approve-openclaw.bat:
@echo off echo 正在批准 OpenClaw Companion... # 获取最新的 device ID 并批准 for /f "tokens=*" %%a in ('openclaw devices approve --latest 2^>^&1 ^| findstr "Selected pending device request"') do ( set "line=%%a" ) # 提取 device ID(需要更精确的解析) # 这里简化处理,实际使用时手动复制 ID echo 请在上方复制 device ID,然后运行: echo openclaw devices approve [device-id] echo openclaw nodes approve [node-id] pause⚠️ 注意:由于
approve --latest只是预览,实际批处理需要更复杂的解析逻辑。建议手动复制 ID。
六、方案C:Tailscale 远程连接(一劳永逸)
不用聊天软件 OpenClaw 手机浏览器远程访问控制:Tailscale 配置、设备配对与常见问题全解
6.1 原理
OpenClaw Gateway 内置 Tailscale 集成,可以:
- 通过 Tailscale 网络暴露 Gateway
- 使用Setup Code一次性配对
- Setup Code 包含持久化的设备身份信息
- 之后 Companion 通过 Tailscale 自动重连
6.2 配置步骤
步骤1:在 Gateway 主机上生成 Setup Code
openclaw qr输出示例:
Pairing QR Scan this with the OpenClaw mobile app (Onboarding -> Scan QR). [QR 码图片] Setup code: eyJ1cmwiOiJ3c3M6Ly9haS50YWlsNGYxZWE5LnRzLm5ldCIsImF1dGgiOiJ0b2tlbiIsInRva2VuIjoi..." Gateway: wss://ai.tail4f1ea9.ts.net Auth: token Source: gateway.tailscale.mode=serve步骤2:在 Companion 中使用 Setup Code
- 打开 Companion →Add gateway
- 切换到“Setup code”标签页
- 粘贴上面生成的 Setup Code
- 点击Apply→Connect
步骤3:批准设备
openclaw devices approve --latest # 或复制具体的 device ID步骤4:之后的使用
- Companion 关闭后再打开,会自动通过 Tailscale 重连
- 不需要重新配对(因为 Setup Code 包含持久化身份)
6.3 优缺点
| 优点 | 缺点 |
|---|---|
| 一次配对,持久有效 | 需要 Tailscale 网络 |
| 支持远程连接 | 依赖 Tailscale 服务 |
| 不受本地 Gateway 重启影响 | 配置稍复杂 |
七、方案D:修改设备持久化配置(高级)
7.1 原理
Companion 在本地存储设备标识。如果能找到并持久化这个标识,就可以避免重新生成 device ID。
7.2 Companion 本地存储位置
# 查找 Companion 配置 Get-ChildItem "$env:APPDATA\OpenClaw" -Recurse -ErrorAction SilentlyContinue Get-ChildItem "$env:LOCALAPPDATA\OpenClaw" -Recurse -ErrorAction SilentlyContinue # 可能的文件: # - device-id # - session-token # - paired-gateways.json7.3 Gateway 端设备持久化
Gateway 的设备信息存储在:
# 查看已配对设备 openclaw devices list # 设备数据存储位置 C:\Users\love\.openclaw\devices\7.4 尝试保留设备身份
目前 OpenClaw 的设计是每次新实例都生成新 ID,暂时无法通过配置修改这一行为。
八、方案E:自动批准脚本(开发测试用)
8.1 PowerShell 自动批准脚本
创建auto-approve.ps1:
# auto-approve.ps1 # 自动批准最新的 OpenClaw Companion 设备和 Node Write-Host "正在获取最新的 pending device..." -ForegroundColor Cyan # 获取最新的 device ID $result = openclaw devices approve --latest 2>&1 Write-Host $result # 提取 device ID(简化版,实际需要正则匹配) if ($result -match "Selected pending device request ([a-f0-9\-]+)") { $deviceId = $matches[1] Write-Host "找到 device ID: $deviceId" -ForegroundColor Green # 批准设备 Write-Host "正在批准设备..." -ForegroundColor Yellow openclaw devices approve $deviceId Write-Host "设备已批准!请在 Companion 中点击 Connect" -ForegroundColor Green Write-Host "然后复制 node ID 并运行: openclaw nodes approve <node-id>" -ForegroundColor Yellow } else { Write-Host "没有找到 pending device,请确认 Companion 已点击 Connect" -ForegroundColor Red }8.2 使用方法
# 以管理员身份运行 PowerShell .\auto-approve.ps1九、最佳实践总结
9.1 日常使用流程
【关机/休息前】 ↓ Companion → Disconnect(不要关闭窗口) ↓ 或最小化到系统托盘 ↓ 【下次使用时】 ↓ 点击托盘图标 → 自动恢复连接 ✅9.2 必须重新配对的场景
如果 Companion 完全退出了,按以下流程:
# 1. 确认 Gateway 运行中 netstat -ano | findstr :18789 # 2. 在 Companion 中点击 Connect # 3. 一键获取并批准 device openclaw devices approve --latest # 复制输出的 device ID openclaw devices approve <device-id> # 4. 在 Companion 中点击 Connect # 5. 批准 Node openclaw nodes approve <node-id> # 6. 点击 "Reconnect after approval"9.3 配置检查清单
| 检查项 | 命令 |
|---|---|
| Gateway 是否运行 | `netstat -ano |
| Node.js 版本 | node -v(应为 v24.x) |
| OpenClaw 版本 | openclaw --version |
| Gateway token | openclaw config get gateway.auth |
| 已配对设备 | openclaw devices list |
| 已批准 Nodes | openclaw nodes list |
十、常见问题 FAQ
Q1: 为什么 Shared Token 不能避免重新配对?
A: Shared Token 只用于验证 Gateway 的身份(“这是正确的 Gateway”),而 Device/Node 配对是验证客户端的身份(“这是被授权的客户端”)。两者是不同的安全层级。
Q2: 可以禁用 device 配对吗?
A: 目前 OpenClaw 没有提供禁用配对的选项。这是核心安全机制。
Q3: Tailscale 方式真的不需要重新配对吗?
A: Tailscale 的 Setup Code 包含了加密的设备身份信息,Companion 可以持久化这个信息。但首次配对仍需批准,之后重连通常不需要。
Q4: Gateway 重启后需要重新配置吗?
A:不需要。只要openclaw.json配置不变,Gateway 重启后:
- 模型配置保留
- Token 保留
- 已配对设备保留(但 Companion 端需要重新连接)
Q5: 如何完全重置所有配对?
A:
# 清除所有设备 openclaw devices clear # 清除所有 nodes openclaw nodes clear # 重启 Gateway十一、参考链接
- OpenClaw 官方文档 - Device Pairing
- OpenClaw GitHub - Issues
- 上一篇:完整配置指南
十二、结语
OpenClaw 的 device/node 配对机制虽然增加了操作步骤,但提供了强大的安全保障。对于日常使用:
💡最佳建议:让 Companion 保持系统托盘运行,避免完全退出。
如果必须频繁重启,使用openclaw devices approve --latest快速获取 device ID,可以大幅减少操作时间。
希望本文能帮助你更高效地使用 OpenClaw!
本文基于实际使用经验整理,如有问题欢迎在评论区交流。