跳转到内容

配对设备

本指南介绍如何将手机与 Control Center 配对,让你随时随地读取消息和工单并回复。 同一套流程也能配对第二个浏览器或桌面应用。链路的工作方式及其安全模型,参见 远程控制与移动端。

  • 已有一台连接到服务器的桌面端或 Web 客户端,并已设置好工作区。配对操作需要完整客户端,因此已配对的手机永远无法再配对或吊销另一台设备。
  • 你要配对的设备能访问到该服务器。在同一网络内,这一点自然成立;距离更远时,由经代理中转的中继承载流量。如果面板给出的不是二维码或凭据,而是无法访问,请先发布一条路径 —— 即 设置 → 服务器 → 连接与状态 中的隧道连接开关(共享此服务器),或服务器的 --public-url(参见运行无界面服务器)。
  • 对于手机:无需安装任何东西。二维码会打开 Remote Web 应用(默认是 remote.usectrl.dev)。

自托管。 Remote 与中继代理都是本仓库中的开源项目:手机应用 (apps/cc_remote,一个 Flutter Web PWA,你可以通过它自己的 wrangler.jsonc 部署 到 Cloudflare Pages,部署到 docker/cc_remote 的 nginx 镜像,或部署到任何支持 HTTPS 的静态主机 —— Service Worker 和 IndexedDB 都受安全上下文限制)以及中继 (apps/cc_signaling_server,一个无状态的单一 Dart 二进制文件,它不保存任何 应用数据,也永远看不到配对密钥 —— 只转发端到端密封的帧)。构建和运行步骤参见 它们各自的 README。

打开 设置 → 你 → 你的设备。你的设备 区块列出在本服务器上与你的账号配对的 客户端。(服务器所有者能看到服务器上的每一台设备;其他人只能看到自己的。)

在页面标题栏中点击 配对新客户端,为它取一个标签(例如“我的手机”),选择类型 —— 网页浏览器、桌面应用 或 手机 —— 然后点击 配对。

  • 对于手机,会出现一个二维码。用手机摄像头扫描它,或复制链接并在任意浏览器中打开。它会让 Remote 应用指向你的服务器,并携带该凭据。
  • 对于浏览器或桌面端,改为把显示的链接(或设备 id 与配对密钥)复制到新客户端中。一键式链接只在你从 Web 客户端配对时才会提供,因为桌面二进制没有可用来生成它的 Web 源。

手机二维码与 cc_server pair --client-url 在命令行上打印的链接是两种不同的负载, 二者不可互换:CLI 链接用于填写 Web 客户端的连接表单,而这个二维码为 Remote PWA 携带的是服务器的完整连接描述符和身份指纹。

在手机端,打开配对链接不会静默完成配对。Remote 会显示服务器对外声明的名称,并在 保存任何内容之前请你确认,因此伪造的链接无法把应用劫持到别人的服务器上。

在 设置 → 你 → 你的设备 中,你可以:

  • 重命名设备
  • 吊销一台你不再信任的设备。吊销会销毁它的凭据,并在几秒内断开其实时会话,因此它在重新连接时会失败即关闭

吊销是丢失或更换手机时的正确做法。从设备的角度看,它立竿见影且不可逆。

从本面板签发的凭据都有时限:它们在签发 30 天后过期,此后连接关卡会判定其失败即关闭。 而在命令行上用 cc_server pair 签发的凭据完全没有过期时间 —— 当它所属的机器 退役时,请手动吊销它。

已配对的手机可以独立于桌面端在工作区之间切换。手机在每次调用时都会带上工作区, 服务器也会在每一次调用中检查你在该工作区中的成员身份和角色 —— 因此手机只能触达 你是成员的工作区,在那里切换也绝不会改变桌面端显示的内容。

手机会话还额外受限于一份很小的、以读取为主的工具允许列表:它可以列出和读取工单、 智能体、空间、消息和新闻流中的文章,也可以更新或分配工单、在空间中发送消息, 以及把文章标记为已读或已保存。该集合之外的任何操作,都会在到达服务器的调度器 之前被拒绝。