# Local Clipboard

通过 NAS Hub 在可信局域网中传输文本、图片和文件。

## Metadata

- HTML: https://glenzli.com/projects/local-clipboard/
- Markdown: https://glenzli.com/projects/local-clipboard.md
- Collection: Projects
- Language: zh-CN
- Published: 2026-08-23
- Updated: 2026-08-29
- Status: active
- Tags: clipboard, lan, file-transfer, macOS, windows, linux, pwa

## Content

Local Clipboard 是一个只在可信局域网或私有 VPN 中工作的文本、图片和文件传输工具。一台常开的设备——通常是 NAS——运行 Hub，桌面设备运行本地客户端；手机则直接打开 Hub 页面。它不依赖云服务，也没有账号系统。

## 按需发送

Local Clipboard 不会监视每一次剪贴板变化。普通的 `Cmd+C` 或 `Ctrl+C` 仍然只在本机生效；只有按下专用快捷键、点击托盘菜单或执行命令时，内容才会被发送。

macOS 和 Windows 的内置快捷键会先复制当前选择，再发送新的剪贴板内容；托盘菜单和 `send-clipboard` 只发送剪贴板中已有的内容。收到文本或图片时，桌面客户端会写入本机剪贴板；收到文件时则创建待接收项目，确认后保存到下载目录。

手机通过 Hub 页面显式收发内容。单张图片可以发送到桌面剪贴板，也可以和其他内容一样作为文件发送；收到的文本、图片和文件由用户复制、保存或下载。

## Hub 与网络

```text
桌面 A ── WebSocket ──▶ NAS Hub ◀── WebSocket ── 桌面 B
                              │
                              └── 手机网页
```

Hub 负责设备连接、消息转发和临时文件中转。桌面客户端通过 WebSocket 保持连接，并在 `127.0.0.1:9101` 提供本地控制台；Hub 页面供手机使用。HTTP 与 WebSocket 请求使用共享令牌授权，受信任的移动浏览器可以保存派生凭证，之后不必每次重新输入令牌。

Hub 使用明文 HTTP 和 WebSocket，共享令牌不提供传输加密。服务只适合可信局域网或私有 VPN，`9100` 端口不应直接暴露到公网。

## 平台范围

仓库提供 Linux amd64 Hub 的 Docker 部署、Apple Silicon macOS 安装器、Windows amd64 安装脚本和 Linux 客户端。macOS 与 Windows 客户端包含内置快捷键；静态 Linux 构建需要先复制，再通过桌面快捷方式调用 `send-clipboard`。

手机页面包含 Web App Manifest。普通 HTTP 下，安装方式和剪贴板 API 会受浏览器限制；使用设备信任的 HTTPS 地址可以获得更完整的 PWA 和剪贴板能力。
