不同设备间的剪切板同步服务GCopy
本文软件由网友
dawei推荐;
什么是 GCopy ?
GCopy是一个跨平台的剪切板同步工具,旨在帮助用户在不同设备之间共享和同步剪切板内容。它支持在多种操作系统(如Windows、MacOS和移动端)之间传输文本、截图和文件。
GCopy 的使用非常简便,用户只需通过浏览器访问其网站并使用相同的邮箱登录,即可实现数据的即时同步。此外,GCopy 不持久化存储用户数据,所有数据都在内存中处理, 如果你 24 小时内不使用,数据就会被删除。以保障用户的数据隐私和安全。

和老苏之前介绍的 ClipCascade 不同,ClipCascade 需要客户端,而且只支持文字,但截图、文件不支持。而 GCopy 解决了这些问题。 目前,您可以在 PC、Mac 和移动端之间共享剪切板,支持文字、截图和文件。
文章传送门:跨设备剪贴板同步服务ClipCascade
GCopy 不需要安装客户端,仅依赖浏览器的剪贴板 API。以下是测试过的浏览器和版本:
| 浏览器 | 版本 | 测试结果 | 
|---|---|---|
| 适用于 Windows 的 Chrome | 版本 123.0.6312.86(官方版本)(x86_64) | ✅ 经过测试 | 
| 适用于 Windows 10 的 Edge | 版本 124.0.2478.80(官方版本)(64 位) | ✅ 经过测试 | 
| 适用于 Windows 10 的 Opera | Opera One(版本:109.0.5097.68) | ✅ 经过测试 | 
| 适用于 macOS 的 Chrome | 版本 121.0.6167.85(官方版本)(x86_64) | ✅ 经过测试 | 
| 适用于 macOS 的 Opera | Opera One(版本:109.0.5097.68)(x86_64) | ✅ 经过测试 | 
| Safari | 版本 15.6.1 (17613.3.9.1.16) | ✅ 经过测试 | 
| 适用于 iOS 的 Safari | 版本 16.1 | ✅ 经过测试 | 
| 适用于 HarmonyOS 3.0/4.0 的 Edge | Edge 122.0.2365.99 | ✅ 经过测试 | 
| Android 版 Chrome | 107.0.5304.105 | ✅ 经过测试 | 
| Android 版 Edge | Edge 108.0.1462.48 | ✅ 经过测试 | 
当然也存在不足之处:
- 由于浏览器限制,不支持直接在剪贴板中读取和设置文件,只能通过上传和下载的方式实现文件同步,保证用户体验的流畅。
- 同时只能同步一个文件。
- 由于服务器内存有限,您同步的文件不能超过 --max-content-lengthMB。
反向代理
因为浏览器要访问系统的剪贴板,必须使用 HTTPS 协议来执行这类敏感操作,因为使用 HTTPS 可以确保数据在传输过程中的加密,防止中间人攻击。否则的话是不允许的

 假设 GCopy 实际访问地址为: https://gc.laosu.tech
| 域名 | 局域网地址 | 备注 | 
|---|---|---|
| gc.laosu.tech | http://192.168.0.197:3375 | GCopy前端的访问地址 | 
因为不需要公网地址,所以本次采用的是 tailscale + npm  方案
文章传送门:用自定义域名访问tailscale节点
按我们预设置的域名、局域网 IP 和端口,在 npm 中进行设置

SSL 没有问题的话,都勾选了

安装
在群晖上以 Docker 方式安装。
本文写作时,
- 镜像
llaoj/gcopy的latest版本对应为v1.4.2;- 镜像
llaoj/gcopy-frontend的latest版本对应也为v1.4.2;
env.txt
env.txt 文件的内容如下,主要作用就是告诉前端页面服务端的地址
| 1 | SERVER_URL=http://gcopy:3376 | 
docker-compose
采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
| 1 | version: '3.8' | 
服务端容器 llaoj/gcopy 采用的不是环境变量,而是命令行参数,简单说明如下:
- --app-key:随机字符串,可以用- openssl rand -base64 32之类的命令来生成;
- --smtp-host:表示- SMTP服务器的主机。以- 88邮箱为例,设为- smtp.88.com
- --smtp-port:表示- SMTP服务器的端口。默认为- 587。因设置采用了- SSL协议,所以端口为- 465
- --smtp-username:用于向- SMTP服务器进行身份验证的用户名。例如:- wbsu2003@88.com
- --smtp-password:用于向- SMTP服务器进行身份验证的密码。对应的第三方邮件客户端密码
- --smtp-ssl:是否使用- SSL连接
- --max-content-length:默认值为- 10 MiB
更多的参数,可以参考官方文档:https://github.com/llaoj/gcopy/blob/main/docs/zh-CN/deploy-by-docker.md
下面是完整的示例
| 1 | version: '3.8' | 
然后执行下面的命令
| 1 | # 新建文件夹 gcopy 和 子目录 | 
运行
在浏览器中输入 https://gc.laosu.tech 就能看到主界面

要实现剪贴板同步,需要登录相同的邮箱

会向邮件发送验证码

如果 smtp 邮箱设置无误,很快就能收到

登录成功后,能看到 GCopy 的主界面

第一次同步剪贴板时,会需要授权,必须要点 允许

总结一下同步的步骤:
- 在两个设备 A和B上打开网站https://gc.laosu.tech,使用相同的电子邮箱登录。
- 在设备 A上复制(例如,使用Ctrl+C),然后按页面右侧的同步剪切板按钮。
- 切换到设备 B,再次按同步剪切板按钮,数据完成同步。现在, 去粘贴(Ctrl+V) 吧!

手机端也是 OK 的

参考文档
llaoj/gcopy: A clipboard synchronization service for different devices that can synchronize text, screenshots, and files.
地址:https://github.com/llaoj/gcopyGCopy - 不同设备间的剪切板同步服务
地址:https://gcopy.rutron.net/zh
