在这台电脑复制,
到那台电脑粘贴。
Mac、Windows、Linux 互通。文本、图片、文件、整个文件夹都可以,不要求同一个账号。同一个网络里装好就能用,不需要服务器;跨网络也可以。数据在你的设备之间直接传输,端到端加密。
版本 1.6.4,免费开源。macOS 13 及以上;Windows 10、11;Linux(x64 与 ARM64)。
第一次用?看快速开始,三步配好 →两台电脑怎么连起来
在同一个网络里,装好 App 就能直接配对,不需要服务器。跨网络时,两台电脑要靠服务器或 Tailscale 找到彼此,复制的内容不会存在上面。按你的情况选一种。
同一网络
家里或办公室,连着同一个路由器。两台电脑装好 App,输入配对码就能同步,不需要服务器,也不需要常开的电脑。
同一网络教程 → 在哪儿都能同步公网服务器
一台有公网 IP 的 Linux 云主机,最低配置就够。每台电脑直接连它,在家、在公司、在外面都能用,不用另装软件。
公网服务器部署教程 → 跨网络,不用服务器Tailscale
每台电脑装上 Tailscale、登录同一个账号,配对时输入对方的 Tailscale 地址。在家、在公司都能同步,不需要服务器和常开的电脑。
Tailscale 教程 →拿不准?快速开始里有三种方式的对比。
所有设备上复制过的,都在这里
复制记录保留最近 3 天的内容,随时可以放回剪贴板,图片点开就能预览。50 MB 以内的文件在你复制的时候就已经传好了,更大的文件需要时点一下再拉取。
按下复制之后
文字、图片、文件、整个文件夹,都走同一条路。
察觉
Mac 上,后台服务每隔一小段时间看一眼剪贴板的变更计数,只看计数和类型,不需要授权,也不会弹出系统提示;Windows 上,复制的那一刻系统就会通知它。
传输
文本随消息一起发出;50 MB 以内的图片和文件打包成流立即推送;更大的文件只发一条记录,等你需要时再传。
粘贴
另一台电脑先把内容存到本地,再写入剪贴板。按下 ⌘V 或 Ctrl+V 粘贴出来的,就是本地的真实文件。
为什么不用现有的办法
通用剪贴板要同一个 Apple ID、离得够近;隔空投送每次都要点接收;发给自己要手动下载,文件还留在别人的服务器上。一台 Mac 一台 Windows 时,系统自带的办法一个都用不了。
| CopySync | 通用剪贴板 | 隔空投送 | 聊天软件 | |
|---|---|---|---|---|
| 不同 Apple ID 之间 | 可以 | 不行 | 要对方接收 | 可以 |
| Mac 与 Windows 之间 | 可以 | 不行 | 不行 | 可以 |
| 不在同一个网络(家里和公司) | 可以 | 不行 | 不行 | 可以 |
| 复制后直接粘贴,不用点接收 | 可以 | 可以 | 不行 | 不行 |
| 文件与整个文件夹 | 可以 | 不稳定 | 可以 | 要先打包 |
| 找回之前复制过的内容 | 可以 | 不行 | 不行 | 翻聊天记录 |
| 内容不经过第三方服务器 | 不经过 | 不经过 | 不经过 | 经过 |
工作原理
两台电脑之间直接建立加密连接。同一个网络里,它们自己就能找到彼此;跨网络时,你的服务器负责牵线,打不通直连的时候再帮忙转发。下图是跨网络的情形。
- WebRTC 直连,DTLS 加密 数据只在两台电脑之间传输
- 你的服务器 信令、STUN、TURN 中转
- 中转:仅在打不通直连时
公司网络也能直连
公司双线、运营商地址池这类网络有多个出口,按目标地址选走哪一个。只探测一次只会知道其中一个出口,只能经服务器中转。CopySync 会探测每个出口,把地址都告诉对端。
做了什么
- 共用一个端口。所有连接从同一个本地 UDP 端口收发,向不同服务器问到的地址才对得上。
- 探测每个出口。在这个端口上同时询问 7 台 IP 分散的服务器,网络有几个出口就拿到几个地址;被 DNS 污染的地址先过滤掉。
- 全部告诉对端。对端逐个尝试,与实际出口吻合的那一个能打通。
- 记住见过的出口。某次漏掉的出口如果不改端口,就用「出口 IP + 本地端口」推算补上。
- 定好谁先发包。有的路由器收到对方先到的包会占住端口。一方先公布出口地址,另一方先往那边发包再公布自己的;重试时两种顺序轮流用。
- 先中转,再换直连。第一次握手落到了中转时,空闲时再打一次洞,打通就换成直连。
用真实的网络拓扑验证
NAT 打洞实验室用 Linux 网络命名空间与 iptables 搭出这些拓扑,用 CopySync 真实的连接代码各跑一遍,每次提交代码都自动运行。
| 场景 | 结果 |
|---|---|
| 单出口 ↔ 家用路由器 | 直连 |
| 两个出口,旧版本(对照) | 中转 |
| 两个出口 ↔ 家用路由器 | 直连 |
| 四个出口 ↔ 家用路由器 | 直连 |
| 两个出口,第二条没探测到,没有历史 | 中转 |
| 两个出口,第二条没探测到,有历史 | 直连 |
| 两个出口 ↔ 两个出口 | 直连 |
| 两个出口 ↔ 端口随机分配的 NAT | 中转 |
| 一开始打不通,之后网络恢复 | 先中转,随后直连 |
| 公司路由器会为外来的包占住端口 | 直连 |
| 家用路由器会为外来的包占住端口 | 先中转,重试一次后直连 |
| 没有服务器,同一网段,靠 mDNS 发现 | 直连 |
| 没有服务器,两个网段,一边记得对方地址 | 直连 |
| 没有服务器,两台都挡入站连接,都记得地址 | 直连 |
| 没有服务器,两台都挡入站连接,只有一边记得 | 连不上(已知限制) |
| 没有服务器,两个网段之间被隔离 | 连不上 |
实测:一台在 4 个出口的公司网络里的 Mac 与家里的 Mac,改造前只能中转,速度被服务器带宽限制在 0.6 MB/s;改造后直连,连上服务器后约 3 秒建立。
测量过程、设计取舍与踩过的坑见技术方案。
服务器看不到你复制了什么
- 服务器不存账号,也不存内容。设备身份是一把 Ed25519 密钥,设备 ID 由公钥算出,服务器不需要用户表就能验证身份。
- 配对时由你核对安全指纹。两块屏幕会显示同样的两行:双方各自公钥的指纹。服务器有能力替换转发中的公钥,但替换之后两块屏幕就对不上了,这一步就是防中间人的闸门。
- 之后的每条消息都带签名,服务器无法冒充你的设备。直连通道的证书在握手后还会再核对一次,不一致立即断开。
- 中转也只是转发密文。TURN 转发的是加密后的数据包,中转凭证按设备单独签发,12 小时后过期。
- 局域网里也一样。设备在局域网里广播的只是一个每天都变的匿名标识,看不出是谁的电脑,只有打开「搜索附近设备」时才带上设备名;配对同样要核对指纹,之后的消息同样带签名。
出问题的时候会发生什么
每个人的网络环境都不一样。下面这些情况都考虑过,也都有对应的测试。
- 同一网络里找不到对方
- 不同网段、访客网络、开了 AP 隔离的 Wi‑Fi 会挡住局域网发现。配对时输入对方配对码下面显示的地址就行;之后地址会被记住,两边都换了地址时,在设备列表里给它重新输入一次。
- 系统拦着局域网
- macOS 15 起,后台服务连接局域网里的设备要你允许;Windows 第一次运行时会问防火墙。没放行时 App 会提示,并给出直达的按钮。
- 两台电脑打不通直连
- 常见于对称 NAT 和公司防火墙。自动改走你服务器上的 TURN 中转,内容依然加密,设备列表里显示「中转」。
- 公共 STUN 服务器连不上
- 国内访问公共 STUN 时通时断。服务器自带 STUN,客户端优先用它。
- 先连上了中转
- 中转握手快,有时会抢在直连之前。连上之后,发起连接的一方会在空闲时再打一次洞,打通就换成直连;正在传文件时不打扰。
- 对方睡眠、断网或重启
- 连接悄悄断了也能发现,立即关闭重连。这期间复制的内容会记下来,连上后补发到对方的复制记录里,但不会覆盖对方此刻剪贴板里的内容。
- 服务器断开
- 自动重连,间隔从 1 秒开始翻倍、最长 30 秒,并带随机抖动,避免一群设备同时重连。同一网络里的设备不受影响,照常同步。
- 文件太大
- 超过上限的只同步一条记录,需要时再拉取。拉取时源文件已经被删,会明确告诉你,而不是不明不白地失败。
- 粘贴到只认纯文本的地方
- 从网页复制的带格式文字会同时写入 HTML 和纯文本两份,粘贴到哪里都不会冒出标签。
- 文件名在 Windows 上不合法
- Mac 上可以用的冒号、问号等字符,收到时换成对应的全角字符,名字照样看得懂;只差大小写的两个文件也不会互相覆盖。
- 复制的是密码
- Windows 上,密码管理器复制的内容会带一个「不要记录」的标记,CopySync 看到就跳过:不同步,也不进复制记录。
- 还没授权读取剪贴板
- 不去读内容,否则后台进程会卡在一个看不见的系统弹窗上。App 里会提示你去授权,并给出直达按钮。
- 后台服务崩溃
- Mac 上由系统的 launchd、Windows 上由 CopySync 自带的守护进程自动拉起,10 秒节流,不会疯狂重启。
- 更新了 App,或者把它挪了位置
- 打开 App 时会自动校正登录项,并把后台服务重启到新版本。
安装
每台电脑装一个 App。同一个网络里装好就能配对;跨网络时,再选一种方式让两台电脑找到彼此。第一次装可以跟着快速开始。
Mac
- 下载 DMG,打开后把 CopySync 拖进「应用程序」。Apple 芯片与 Intel 芯片各有一版,下载页会告诉你怎么看自己的 Mac 是哪种。
- 从「应用程序」里打开。第一次会提示「无法验证开发者」:CopySync 还没有经过 Apple 公证。到「系统设置 → 隐私与安全性」,点页面下方的「仍要打开」,只需要这一次。
- 点「启用后台同步」。系统询问是否允许读取剪贴板、能否查找本地网络上的设备时,都选择允许。
- 跨网络同步时,在「设置」里填入服务器地址
ws://服务器地址:8787/signal,按回车;同一个网络里不用填。
Windows
- 运行 CopySync-Setup.exe。装在当前用户目录下,不需要管理员权限。CopySync 还没有代码签名,Windows 会提示「Windows 已保护你的电脑」:点「更多信息」,再点「仍要运行」。不想运行安装程序的话,可以下载便携版。
- 打开 CopySync,点「启用后台同步」。关掉窗口后它在右下角的托盘里继续运行。防火墙询问时选择允许。
- 跨网络同步时,在「设置」里填入服务器地址,按回车;同一个网络里不用填。
Linux
- Ubuntu、Debian 等下载 .deb,运行
sudo apt install ./CopySync-linux-amd64.deb;其他发行版下载 tar.gz,解压后运行./CopySync/install.sh。 - 从应用菜单里打开 CopySync,点「启用后台同步」。之后它随登录自动启动。
- 跨网络同步时,在「设置」里填入服务器地址,按回车;同一个网络里不用填。
配对:一台点「设备 → 添加设备」生成 6 位配对码,另一台输入它;两块屏幕上的两行安全指纹完全一致后确认。不在同一网段时,输入配对码的同时输入它下面显示的地址。Mac、Windows、Linux 之间怎么组合都一样。
技术规格
| 版本 | 1.6.4,发布 |
|---|---|
| Mac 客户端 | macOS 13 Ventura 及以上;Apple 芯片与 Intel 芯片各有一个安装包,约 25 MB,不需要 Rosetta;也有两种芯片通用的版本,约 47 MB |
| Windows 客户端 | Windows 10 与 Windows 11,x64;按用户安装,不需要管理员权限;安装包约 23 MB |
| Linux 客户端 | x64 与 ARM64;.deb(Debian、Ubuntu 等)或 tar.gz(其他发行版),约 22 MB;需要 X11 桌面,或者带 XWayland 的 Wayland 桌面(GNOME、KDE 等默认都带);GTK 3 |
| 服务器 | 可选,只在跨网络时需要。Linux x86_64 或 ARM64(systemd 或 Docker)、macOS(Intel 与 Apple 芯片)、Windows 10 与 11 x64(系统服务);约 15 MB 内存 |
| 界面语言 | 简体中文、English、日本語,默认跟随系统,可在设置里切换 |
| 同步的内容 | 纯文本、带格式的文本、图片与截图、文件、文件夹,可以按类型关闭 |
| 传输 | WebRTC 数据通道,直连优先,打不通时经 TURN 中转;同一网络里经 mDNS 发现、UDP 8788 交换连接信息;多出口网络逐个探测每个出口;文件以 tar + zstd 流式打包 |
| 加密与身份 | DTLS 端到端加密;设备身份为 Ed25519 密钥;信令消息逐条签名 |
| 配对 | 6 位配对码,5 分钟内有效,字符集去掉了 0/O、1/I 等易混字符;配对时人工核对安全指纹 |
| 自动同步上限 | 默认 50 MB,可在 1 MB 到 1 GB 之间调整 |
| 记录保留 | 默认 3 天,可在 1 小时到 30 天之间调整,到期自动清理 |
| 实测速度 | 局域网直连传输 20 MB 文件约 330 毫秒,校验和一致 |
| 技术栈 | 后台服务与服务器用 Go(Windows 上纯 Go 调用 Win32,Linux 上纯 Go 走 X11 协议),界面用 Flutter(三个系统共用一套代码),消息定义用 Protocol Buffers |
| 许可 | GNU AGPL-3.0 |
常见问题
UU 远程开启时,为什么不断出现 .uuremote_ 文件?
UU 远程会在系统剪贴板里写入临时占位文件,旧版 CopySync 把它们当成普通文件反复记录和转发。1.3.2 在发送和接收时过滤已确认的占位命名,启动时清理纯占位记录。正常空文件、隐藏文件和大文件不受此规则影响。50 MB 只决定是否自动传输,与 UU 的 UDP P2P 设置无关。建议两端都升级;其他软件如果也同步剪贴板,仍可能产生普通内容的重复记录。
和 macOS 自带的「通用剪贴板」有什么区别?
通用剪贴板要求两台设备登录同一个 Apple ID、开着蓝牙和 Wi‑Fi,并且离得近,也只能在苹果设备之间用。CopySync 在同一个网络里装好就能用;跨网络时,两台电脑能连上你部署的服务器、或者都装了 Tailscale 就行:不同 Apple ID、一台在家一台在公司、一台 Mac 一台 Windows,都可以。另外它有复制记录,大文件也可以按需拉取。
如果你的两台 Mac 是同一个 Apple ID、总在一起、主要复制文字,系统自带的已经够用了。
服务器会看到我复制的内容吗?
不会。直连时数据根本不经过服务器;需要中转时,服务器转发的是 DTLS 加密后的数据包。服务器不存账号,也不存任何复制内容。代码是开源的,可以自己核对。
公司网络(双线、多出口)能直连吗?
能。这类网络按目标地址选出口,CopySync 会在同一个端口上向多台服务器探测,拿到每个出口的地址一并发给对端,对端逐个尝试。实测公司 4 个出口与家用宽带之间可以直连。对端是端口随机分配的 NAT 时仍会走中转。
必须自己准备服务器吗?
家里没有公网 IP,能在家和公司之间同步吗?
能,有两种做法。有一台公网服务器的话,把服务器部署在上面,家里和公司的电脑都直接连它,见公网服务器部署。没有的话,每台电脑装上 Tailscale、登录同一个账号,配对时输入对方的 Tailscale 地址,见Tailscale 教程。
在同一个网络里,为什么找不到另一台?
先看两台是不是真的在同一个网段:公司里有线和无线、访客网络、开了「AP 隔离」的 Wi‑Fi 常常不互通,局域网发现过不去。这时在输入配对码的那台点「不在同一网段?」,填上另一台配对码下面显示的地址。
Windows 上,第一次运行时防火墙会询问,要选允许;点过取消的话,在「设置 → 局域网」里点「放行」。Mac 上,要在「系统设置 → 隐私与安全性 → 本地网络」里打开 CopySync Daemon。更多见同一网络教程。
支持 Windows 和 Linux 吗?iPhone 呢?
支持 Windows 10 与 Windows 11(x64),与 Mac 互通。复制的文件在 Windows 上粘贴出来就是真实文件,能直接粘进资源管理器、微信、Office。
也支持 x64 与 ARM64 的 Linux 桌面:X11,或者带 XWayland 的 Wayland 桌面(GNOME、KDE 等默认都带)。复制的文件能直接粘进文件管理器。
iPhone 和 iPad 暂不支持:iOS 不允许 App 在后台监听剪贴板,做不到复制后立即同步。
为什么第一次打开时系统会拦一下?
CopySync 还没有经过 Apple 公证,Windows 版也还没有代码签名,两者都需要每年付费的证书。
Mac 上到「系统设置 → 隐私与安全性」,点页面下方的「仍要打开」;Windows 上在「Windows 已保护你的电脑」提示里点「更多信息」,再点「仍要运行」。都只需要这一次。
大文件怎么处理?
默认 50 MB 以内的内容在你复制时就推送到另一台电脑,那边可以直接粘贴;更大的文件只同步一条记录,需要时在复制记录里点「拉取到本机」再传。上限可以在设置里调整。
免费吗?公司能用吗?
免费。CopySync 以 GNU AGPL-3.0 开源,个人和公司都可以免费使用和修改。分发它、或通过网络提供修改过的版本时,需要以同样的许可公开源码。
两台电脑,一个剪贴板。
版本 1.6.4,免费开源。macOS 13 及以上;Windows 10、11;Linux(x64 与 ARM64)。
第一次用?看快速开始,三步配好 → 在 GitHub 上查看源码