Peer Drop
📤 安全的点对点文件和文本传输工具
状态: 🟢 在线
链接: https://peer-drop.real-tech.online/
技术栈: Next.js, PeerJS, WebRTC, Tailwind CSS
背景
经常需要在手机和电脑之间传文件,或者跟家人分享文件。现有方案要么需要上传到云端(隐私问题),要么需要注册账号,要么有文件大小限制。
痛点
常见的文件传输方式都有问题:
- 云服务:文件上传到第三方服务器,有隐私风险
- 邮件/微信:文件大小限制(通常 20-100MB)
- USB 数据线:不方便,需要物理连接
- AirDrop:只能在苹果生态内使用
- 注册账号:大多数服务都需要注册
我需要的是:一种简单的方式,在设备之间直接传文件,不经过中间服务器。
方案
基于 WebRTC 做了一个浏览器端的 P2P 传输工具:
- 直连传输:设备对设备,服务器不存储任何文件
- 扫码配对:扫二维码即可连接,不需要手动输入 ID
- 免安装:浏览器直接用,不需要装 App
- 无大小限制:任意大小的文件都能传
- 实时聊天:传文件的同时可以发文字消息
核心技术:
- PeerJS 简化 WebRTC 实现
- STUN 服务器(Google 公共 STUN)做 NAT 穿透
- 文件分块传输,保证大文件传输可靠性
- Next.js 作为前端框架
结果
能用的:
- ✅ 设备之间直接传文件,成功率高
- ✅ 无文件大小限制(测试过 5GB+ 的文件)
- ✅ 局域网内传输速度快(50-100MB/s)
- ✅ 扫码配对,操作简单
- ✅ 跨平台(iOS、Android、Windows、Mac)
- ✅ 传文件的同时可以实时聊天
局限:
- ❌ 双方必须同时在线(不支持异步传输)
- ❌ 需要支持 WebRTC 的现代浏览器
- ❌ 企业网络防火墙严格时可能连接失败
- ❌ 断线后不能续传
- ❌ 跨网络传输速度取决于网速
实际使用数据(我自己的使用情况):
- 手机到电脑传文件用了 50+ 次
- 最大传过 8GB 的视频文件
- 最常见用途:从手机传照片(每张 20-50MB)
总结
核心收获:P2P 非常适合实时、隐私敏感的传输场景,但不适合异步文件分享。在便利性和隐私之间的取舍,对于个人/家庭使用来说是值得的。
技术洞察:WebRTC 最大的挑战不是 API 本身,而是处理各种网络环境。STUN 服务器能解决大部分情况,但企业网络仍然需要 TURN 中继。
如果重来:
- 加 TURN 服务器兜底,解决复杂网络环境(中继加密数据)
- 实现文件分块断点续传
- 加传输历史记录(只存元数据,不存文件)
- 支持多文件选择和文件夹传输
实践记录
- WebRTC 连接建立 — 如何建立 P2P 连接
- 网络问题处理 — NAT 穿透和防火墙问题