隔空剪贴板适合在两台独立电脑之间临时传送文字、段落和富文本。两台设备打开同一个部署地址,输入相同的站点口令,再使用随机生成的 10 位配对码连接。连接完成后可以连续发送、复制和删除内容,无需为普通消息反复输入提取码。
- 办公电脑与个人电脑之间快速传送文本。
- 不方便登录聊天软件或云盘时临时中转内容。
- 跨网络复制带段落、列表或表格的资料。
- 自己管理入口口令、保存时间和服务器位置。
本项目面向临时文本传输,不是长期笔记库、多人协作文档或文件存储服务。
| 能力 | 说明 |
|---|---|
| 无需账号 | 使用者不用注册个人账号;部署者设置一个固定站点口令,由后端 API 校验读取和写入请求。 |
| 两机跨网 | 两台设备只要能访问同一个部署地址,就可以在不同网络中配对。 |
| 临时配对 | 一台设备生成 10 位随机配对码,另一台输入一次即可加入。 |
| 自动清理 | 配对创建 12 小时后自动失效,也可随时手动取消配对并删除房间内容。 |
| 随时删除 | 每条消息都可以单独删除,不需要等房间到期。 |
| 三种格式 | 可选择纯文字、结构化纯文字或富文本,按内容决定保留多少格式。 |
| 可选加密 | 敏感消息可在浏览器内使用 PBKDF2 + AES-256-GCM 加密后再发送。 |
| 使用限制明确 | 每个配对最多保留 30 条消息,每条最多 5 万字符。 |
| 双版本部署 | 同时支持 Vercel + Cloudflare 云端版,以及阿里云等 Linux 服务器自托管版。 |
- 验证访问:两台电脑访问同一个剪贴板网址,输入部署者设置的站点口令并由后端 API 验证。
- 创建配对:第一台电脑点击“创建新配对”,获得 10 位随机配对码。
- 加入配对:第二台电脑输入该配对码并加入,连接状态会保留在当前浏览器。
- 发送内容:选择传输模式,粘贴并发送;另一台电脑会自动刷新,也可以复制或删除收到的消息。
配对满 12 小时会自动失效。任意一台设备都可以点击“取消配对”并提交整个房间的删除请求。自托管版会立即把删除写入 SQLite;云端版由 Cloudflare KV 处理,跨地区副本可能在短时间内仍读到旧数据。
| 模式 | 保留内容 | 不保留内容 | 适合 |
|---|---|---|---|
| 纯文字 | 文字本身 | 段落结构、换行、制表符、连续空格和视觉样式 | 短句、命令、验证码等只关心内容的文本 |
| 结构化纯文字 | 段落、换行、连续空格、缩进和制表符 | 粗体、斜体、颜色、字号和对齐等视觉样式 | 代码片段、分段资料、需要保持空白结构的内容 |
| 富文本 | 标题、粗体、斜体、颜色、对齐、列表、链接和表格等常用格式 | 脚本、表单及其他危险内容会被过滤 | 从网页或文档复制并希望尽量保留排版的内容 |
富文本能否完整保留,还取决于来源应用提供的剪贴板数据,以及目标应用支持的粘贴格式。
加密是每条消息的可选项。勾选“加密这条内容”后,浏览器使用 PBKDF2 从该消息的内容密码派生密钥,并使用 AES-256-GCM 加密。内容密码不会发送给后端,接收方需要输入相同密码才能解密。
未勾选加密时,消息会以原文存入所选后端:
- 云端版存入 Cloudflare KV。
- 自托管版存入服务器上的 SQLite。
因此,本项目不应被描述为“所有消息都端到端加密”。云端版的静态网页资源可以公开加载;站点口令由后端 API 校验,用于阻止未授权读取和写入。10 位配对码用于进入临时房间;单条内容密码只在用户主动开启加密时使用,三者用途不同。
建议对敏感消息开启单条加密,并在传送完成后提交消息删除或取消配对。自托管版对公网开放时应配置 HTTPS。
| 云端版 | 自托管版 | |
|---|---|---|
| 目录 | cloud/ |
self-hosted/ |
| 组成 | Vercel 静态前端 + Cloudflare Worker + KV | Node.js 服务 + 静态前端 + SQLite |
| 维护成本 | 无需维护 Linux 服务器 | 需要管理服务器、Docker、端口和 HTTPS |
| 数据位置 | Cloudflare KV | 自己的服务器磁盘 |
| 国内访问 | 取决于当地网络环境 | 使用国内云服务器时通常更直接 |
| 并发写入 | KV 最终一致性,极短时间同时发送可能覆盖更新 | SQLite 事务处理并发写入 |
| 推荐场景 | 希望快速上线、少维护 | 希望国内直连并自行掌握数据 |
两个版本可以同时在线,使用彼此独立的地址、站点口令和数据存储,互不覆盖。两台设备必须进入同一个版本的网址,才能加入同一个配对房间。
- 创建 Cloudflare KV namespace。
- 部署 Worker,并绑定
CLIPS、SITE_ACCESS_KEY和ALLOWED_ORIGINS。 - 在
cloud/frontend/config.js填入自己的 Worker 地址。 - 将
cloud/frontend部署到 Vercel。
cd self-hosted
cp .env.example .env
# 编辑 .env,设置至少 12 位的 SITE_ACCESS_KEY
docker compose up -d --buildprivate-clipboard/
├─ cloud/
│ ├─ frontend/ # 部署到 Vercel 的静态网页
│ ├─ cloudflare-worker/ # Worker 接口与 Wrangler 示例
│ ├─ tests/ # 云端 Worker 流程测试
│ └─ README.md # 云端部署说明
├─ self-hosted/
│ ├─ public/ # 自托管网页
│ ├─ server/ # Node.js + SQLite 接口
│ ├─ tests/ # 自托管流程测试
│ ├─ compose.yaml # Docker Compose 配置
│ ├─ Dockerfile
│ └─ DEPLOY_ALIYUN.md # 阿里云部署说明
├─ docs/images/ # README 截图
└─ package.json # 统一检查与测试命令
Node.js 22.5 或更高版本可在仓库根目录运行:
npm run verify该命令会检查两套前后端 JavaScript 语法,并运行 Cloudflare Worker 与自托管服务器的配对流程测试。生产自托管 Docker 镜像使用 Node.js 24。
当前限制:
- 每个配对最多保留 30 条消息;超出后清理较早的内容。
- 每条消息最多 5 万字符。
- 配对有效期从创建时计算,为 12 小时,暂不提供延期。
- 当前产品用于文字和富文本,不提供通用文件传输。
- Cloudflare KV 采用最终一致性,两台设备在极短时间内同时发送时可能覆盖其中一次更新;删除消息或取消配对后,变更传播到其他地区也可能短暂延迟。高并发或要求删除立即落库时建议使用自托管版。
- 浏览器剪贴板和 Web Crypto 能力在 HTTPS 下最可靠;公网自托管部署应启用 HTTPS。
使用者需要注册账号吗?
不需要。使用者只需知道部署地址和站点口令。部署云端版的人仍需拥有 Vercel 与 Cloudflare 账号;部署自托管版的人需要一台可用服务器。
只有网址的人能看到我的消息吗?
云端版静态网页可以公开加载,但这不会直接开放消息。后端 API 会校验站点口令,进入具体房间还需要 10 位配对码。站点口令是共享凭证,不是个人账号系统,因此不要把网址、站点口令和配对码同时公开。
所有内容都会自动加密吗?
不会。只有勾选“加密这条内容”的消息才会在浏览器端加密。普通消息会以原文存入 Cloudflare KV 或自托管 SQLite。
云端版和自托管版能互相同步吗?
不能。它们是两套独立部署,可以同时运行,但配对房间与消息互不相通。两台设备应打开同一个版本的网址。
取消配对后还能恢复吗?
不能通过本项目恢复。取消配对会请求删除整个房间及其中消息;单独删除一条消息也没有恢复功能。自托管版会立即把删除写入 SQLite;云端版的 Cloudflare KV 跨地区传播可能短暂延迟。请先复制需要保留的内容。
为什么富文本粘贴后少了某些样式?
来源应用可能没有把全部样式写入系统剪贴板,目标应用也可能不支持某些格式。项目还会主动过滤脚本、表单等危险内容,因此不能保证像素级还原。

