我自建了AirDrop替代品,Windows安卓iPhone Linux全平台通用

PairDrop跨平台文件传输

AirDrop的不完美

AirDrop是苹果生态里最实用的功能之一。同房间传照片、文档、链接,几秒钟搞定,不需要流量,不依赖第三方应用。

但它有个明显的缺陷:只支持苹果设备和极少数安卓手机。Windows用户和Linux用户基本被排除在外。

我就是这种用户。日常工作中同时用Windows台式机、MacBook、Android手机和Linux笔记本。每次要在这些设备之间传文件,就得想办法——用微信文件传输助手(有大小限制)、用网盘(要上传下载两次)、用U盘(物理往返)。

烦了。于是决定自己解决这个问题。

找到PairDrop

PairDrop是一个开源的Web应用,实现的就是AirDrop的核心功能:同一局域网内的设备互相传输文件。不同之处在于它支持所有平台——任何有浏览器的设备都能用。

它的原理很简单:所有设备打开同一个网页,自动发现彼此,然后直接在浏览器之间传输文件。不需要安装任何应用,不需要注册账号,完全本地传输,文件不经过第三方服务器。

这个项目来自Thomas Krause,在GitHub上有超过3万星标。官方提供了在线演示版(pairdrop.net),但我更愿意自己搭建——数据在自己手里,传输速度也更快。

PairDrop在笔记本电脑和手机上的界面

为什么选择自建

pairdrop.net是官方公共实例,直接用也行。但自建有几个实际好处:

传输速度完全取决于局域网带宽。公共实例的文件要经过他们的服务器中转,自建直接走局域网,速度快得多。文件不经过第三方服务器,隐私更好。pairdrop.net偶尔会维护或者宕机,自建的话永远在线。

用Docker部署

整个过程大约5分钟。

如果你的电脑没有Docker,去docker.com下载安装。Windows和Mac用户用Docker Desktop,Linux用户用apt或yum安装docker-ce。

一行命令搞定:

1
2
3
4
docker run -d --name pairdrop \
--restart unless-stopped \
-p 127.0.0.1:3000:3000 \
lscr.io/linuxserver/pairdrop:latest

这条命令以后台模式运行PairDrop容器,设置系统重启后自动启动,将容器的3000端口映射到本地3000端口。

如果想让局域网内其他设备也能访问,把127.0.0.1改成0.0.0.0。

所有设备打开浏览器,访问http://你的IP地址:3000即可。设备会自动发现彼此,在任意设备上选择文件发送到其他设备,传输完成后文件保存在目标设备的下载目录。

PairDrop的文件传输界面

实际使用体验

部署后我用了整整一周。

局域网内传大文件基本跑满带宽。千兆路由环境下,传2GB的视频文件大约30秒。比AirDrop快一点,因为AirDrop有时候会限速。

Windows 11、macOS、Ubuntu、Android 14、iOS 17全部测试通过。iOS和Android用Safari或Chrome打开都能正常工作,不需要安装任何额外应用。

自动发现的机制比较可靠,新设备加入网络后几秒内就能被其他设备发现。一周内没有出现断连或传输失败。

缺点是缺少系统集成。AirDrop可以在右键菜单里直接找到,PairDrop需要手动打开浏览器。用浏览器书签解决——把PairDrop地址加到书签栏,一键打开。

PairDrop在GitHub上的页面

进阶配置

有更多需求的话,PairDrop还支持这些:

用Nginx或Caddy做反向代理,可以轻松加上SSL证书让传输更安全。把pairdrop.example.com指向你的服务器,访问更方便。支持创建临时公共房间,多人会议场景下几个人同时打开网页互相传文件,不需要逐个配对。可以通过环境变量配置标题、描述、品牌色等。

其他替代方案

类似工具还有一些:

Snapdrop功能和PairDrop类似,基于Web的文件传输,界面更简洁,但自托管配置稍微复杂。

LocalSend是开源的跨平台文件传输应用,需要安装客户端,但速度更快、支持端到端加密,适合追求极致速度的用户。

Syncthing专注文件同步而非即时传输,适合需要持续保持文件一致的场景。

对于大多数人,PairDrop是最简单的自托管选择。一行Docker命令就能跑起来,所有设备用浏览器就能用。

写在最后

AirDrop好用但只限于苹果生态,多平台用户的痛点。PairDrop用纯Web技术填补了这个空白,自建部署后Windows、Mac、Linux、Android、iOS全部通用,文件走局域网,速度快隐私好。

经常在不同操作系统设备之间传文件的话,花5分钟搭一个PairDrop,能省去不少麻烦。