对比
真正不上传文件的 Snapdrop 替代方案
大多数接替 Snapdrop 的工具,解决跨网传输的办法都是把你的文件放到别人的服务器上。PrivyDrop 没有任何接收文件的接口,所以它做不到。这里把话说全,包括我们不适合的场景。
Snapdrop 发生了什么
2025 年 2 月,Snapdrop 和 ShareDrop 被 LimeWire 收购。2026 年 10 月实测:网站还能打开,但已经不是原来那个产品了——上传脚本会向 api.limewire.com 发请求,logo 标着「by lw」,而那个原本用来协商浏览器直连的脚本里已经完全没有 WebRTC 代码。上传现在经过 LimeWire 的服务器,而这恰恰是 Snapdrop 最初要避免的事。房间从一个两端浏览器之间的直连,变成了一个短期的上传中转站。这些都不需要你相信我:网站仍是开源的,上面每一个脚本现在都还能从 snapdrop.net 直接下载。
为什么几乎所有替代方案都选择上传到服务器
Snapdrop 原本的限制是真实存在的:两台设备必须在同一个网络里。几乎所有接替者都用同一种方式解决——把文件路由到托管服务器。这是最顺手的工程答案,但它有一个必须讲清楚的后果:运营那台服务器的人,现在会以明文经手你的文件。传一张度假照片无所谓;传护照扫描件、合同或客户名单,就是另一回事了。
PrivyDrop 是怎么传文件的
- 你的浏览器请服务器开一个房间。服务器生成一个短随机 ID,除此之外什么都不记录。
- 你用任意方式把这个房间 ID 告诉对方。不需要注册账号,也没有会在传输结束后继续存在的链接。
- 两个浏览器直接协商一条 WebRTC 连接,文件走这条连接,在两台设备之间端到端加密传输。
- 如果公司防火墙或移动网络挡住了直连,ICE 会回退到中继。中继转发的数据包没有密钥,它读不懂。
- 最后一个人离开后,房间在 15 分钟后回收。没有人正常离开的房间最长会保留 24 小时。但无论哪种情况都不存在副本,因为从来就没有过。
横向对比
| Snapdrop(现状) | 典型替代方案 | PrivyDrop | |
|---|---|---|---|
| 谁能看到你的文件 | 传输过程中 LimeWire 的服务器 | 传输过程中运营方的服务器 | 没有人。没有任何接收文件的接口 |
| 跨网络可用 | 可以,经由 LimeWire 的服务器 | 可以,经由运营方的服务器 | 可以,点对点;中继只转发密文 |
| 需要安装或注册 | 不需要 | 通常不需要 | 不需要 |
| 源代码 | 闭源 | 视项目而定 | MIT 协议,可自行部署 |
| 文件大小限制 | 由 LimeWire 设定 | 由运营方设定 | 我们不设上限 |
| 受限网络下的表现 | 靠服务器中转 | 靠服务器中转 | 取决于 WebRTC 是否被允许 |
什么时候 PrivyDrop 是更差的选择
- 有些企业网络会直接封禁 WebRTC。如果你的情况是这样,请用基于服务器的方案——我们更希望你把文件传成功,而不是花一小时跟防火墙较劲。
- 中继传输会消耗我们的带宽,所以传 40 GB 数据集不是我们的强项。大批量传输请用专门的同步工具。
- 直连速度取决于两端上传速度中较慢的那个,而不是路径本身。机房可以快速接收、再用大带宽推给对方,所以相隔很远传大文件时它常常更快。
- 默认签发的房间号是四位数字,短到可以隔着桌子念出来,也短到可能被猜到——猜到的人可以加入你的传输。发送页有一个切换按钮,点一下会生成 36 位的 UUID,敏感内容建议用那个。请把短号码当成在咖啡馆里念出来的 PIN,而不是密码。
- 我们没法给你找回密码,因为我们从来没向你要过密码。房间 ID 丢了,这次传输就结束了。
FAQ
- PrivyDrop 会把文件上传到服务器吗?
- 不会。后端只提供创建房间、查询房间是否存在、加入、离开和匿名计数这几类接口,没有任何接口接收文件,也没有任何接口能告诉你房间里有哪些人。你可以自己验证:项目是 MIT 协议开源的,业务接口在 backend/src/routes/api.ts,健康检查在 backend/src/routes/health.ts。
- 你们的服务器到底看到了什么?
- 某个 ID 的房间存在,以及当前有哪些对等端在里面。这是把两个浏览器互相引荐所必需的最小信息,不包含文件、文件名或内容。
- 直连失败时会怎样?
- ICE 会回退到我们自建的 TURN 中继。WebRTC 的数据通道在两台设备之间端到端加密,所以中继转发的密文它没有密钥。它能看出正在发生传输、大概传了多少数据,但看不出内容。
- Snapdrop 真的没了吗?
- 2025 年 2 月公司被 LimeWire 收购,ShareDrop 一起。网站仍可访问,但上传脚本现在会向 api.limewire.com 发请求,而那个原本用来协商浏览器直连的文件里已经没有 WebRTC 代码,所以上传由 LimeWire 的服务器处理,而不是在浏览器之间直传。
- 需要安装什么或者注册账号吗?
- 都不需要。打开页面、分享房间 ID、发送文件即可。没有账号,也不会保留文件,所以下次无需登录。