最简单的跨设备传输方案PairDrop

经常会遇到需要快速将一些文件从手机传输到笔记本电脑,或从笔记本电脑传输到台式机的情况,之前使用过电子邮件、U盘、移动硬盘或云存储等传统方法来临时转存。这个过程不仅繁琐而且耗时。PairDrop 解决了这个问题,通过提供简单易用的界面,可以在设备之间轻松传输文件。

什么是 PairDrop ?

PairDrop 是一个基于浏览器的文件传输工具,允许用户在同一局域网内通过点对点的方式快速共享文件。它是 Airdrop 等服务的绝佳替代品,适用于所有平台。

软件特点:

  • 简单易用:用户只需打开网页,即可开始上传和接收文件,无需安装额外的软件;
  • 实时传输:利用 WebRTC 技术实现快速的点对点文件传输,确保数据直接在设备间传送;
  • 设备配对:用户可以通过扫描二维码或输入配对代码来连接设备,便于快速共享;
  • 开源PairDrop 是一个开源项目,允许用户查看、修改和贡献代码;
  • 隐私保护:由于文件直接在用户设备间传输,减少了数据通过服务器的风险,增强了隐私保护;

官方提供了在线演示:https://pairdrop.net

从功能上来说,PairDrop 和老苏之前介绍的 Snapdrop 差不多,毕竟 PairDrop 就是 Snapdrop 的分支。当然差异也是有的,官方做了个对比:https://github.com/schlagmichdoch/pairdrop#differences-to-the-snapdrop-it-is-based-on

文章传送门:Snapdrop实现P2P局域网文件互传

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 pairdrop ,选择第一个 linuxserver/pairdrop,版本选择 latest

本文写作时, latest 版本对应为 1.10.10

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
3049 3000

环境

可变
PUID 设为 1000
PGID 设为 1000
WS_FALLBACK 设置为 true 以启用 websocket 回调,如果客户端无法建立点对点的 WebRTC 连接
RATE_LIMIT 设置为 true 以限制客户端每 5 分钟最多 1000 次请求
RTC_CONFIG 是否指定 STUN/TURN 服务器
DEBUG_MODE 是否启用调试模式
TZ 时区设置

更多环境变量的说明,请参考官方文档:https://github.com/schlagmichdoch/PairDrop/blob/master/docs/host-your-own.md#environment-variables

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
# 运行容器
docker run -d \
--name pairdrop \
--restart unless-stopped \
-p 3049:3000 \
-e PUID=1000 \
-e PGID=1000 \
-e WS_FALLBACK=true \
-e RATE_LIMIT=false \
-e RTC_CONFIG=false \
-e DEBUG_MODE=false \
-e TZ=Asia/Shanghai \
linuxserver/pairdrop:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
version: '3'

services:
pairdrop:
image: linuxserver/pairdrop:latest
container_name: pairdrop
restart: unless-stopped
ports:
- 3049:3000
environment:
- PUID=1000
- PGID=1000
- WS_FALLBACK=true
- RATE_LIMIT=false
- RTC_CONFIG=false
- DEBUG_MODE=false
- TZ=Asia/Shanghai

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 pairdrop
mkdir -p /volume1/docker/pairdrop

# 进入 pairdrop 目录
cd /volume1/docker/pairdrop

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3049 就能看到主界面

  • 在同一网络中发送文件时,PairDrop 使用 WebRTC 进行点对点连接;
  • 通过互联网发送文件时,PairDrop 会使用服务器作为中继。这可确保您的文件安全快速地传输;

在其他设备上打开相同的网页,您将看到相同的界面,但会显示其他台设备的名称

直接点击设备就可以选择文件进行传输。传输启动后,您需要先在接收设备上接受传输,然后才能传输文件

对于已经配对的设备,可以选择自动接收

互联网上使用,建议使用 tailscale 或者 zerotier

参考文档

schlagmichdoch/PairDrop: PairDrop: Local file sharing in your browser. Inspired by Apple’s AirDrop. Fork of Snapdrop.
地址:https://github.com/schlagmichdoch/pairdrop

PairDrop
地址:https://pairdrop.net/