自建 PairDrop,在浏览器里传文件
用 PairDrop 在浏览器间临时传文件。同网先试小文件;跨网还要配置并测试 TURN,基础配置不保存文件历史。
电脑和手机临时传文件,可以试试 PairDrop。浏览器发现或配对设备后再传输;跨网络是否可用要实际测试,能看到另一台设备,还不代表文件一定传得过去。
先分清网页服务和文件传输
基础 PairDrop 服务负责网页与连接协商,不是保存文件历史的网盘。通常通过 WebRTC 在设备之间传输;跨网络时需要考虑 TURN 中继。PairDrop 官方部署说明要求为不同网络传输准备 TURN,不能因为两台设备出现在页面里,就承诺它们一定能直接传文件。
仅部署网页时可以复用已有 Docker VPS。准备增加 TURN 时,再按带宽与流量的区别核算中继下载、上传和商家流量口径,并比较美国 VPS 的配置与地区。只有确认经常发生跨网传输,才值得为中继单独安排服务器。
只承载网页与连接协调时,可从小型 Linux 实例验证;确需 TURN 中继,则按双方网络、持续带宽和预计传输量重新核算。面向海外使用者可比较 Evoxt 当前可选地区,需要中文网络与 IP 配置说明可看 雨云 RCS 的公网选项。先用日常使用的两条网络试传文件,再买更长周期,别把看得到设备当成跨网传输已经可用。
用项目镜像运行基础服务
Linux VPS 已有 Docker Engine、Compose 插件和宿主机 Caddy,域名 drop.example.com 已解析到服务器。在独立目录保存:
services:
pairdrop:
image: ghcr.io/schlagmichdoch/pairdrop:latest
restart: unless-stopped
ports:
- "127.0.0.1:3000:3000"
docker compose config -q
docker compose up -d
docker compose logs --tail=100 pairdrop
latest 会变化,正式使用时保存镜像摘要。本例没有配置 TURN,先用于验证基础服务和同网络传输;跨网络能力不能由这份配置保证。
宿主机 Caddy 增加一个站点:
drop.example.com {
reverse_proxy 127.0.0.1:3000
}
把站点片段合并进现有配置,验证完整配置后再重载。Caddy 默认代理支持 WebSocket 并设置转发头;若前面还有 CDN 或其他代理,需要核对可信代理与客户端地址。PairDrop 依靠 X-Forwarded-For 判断客户端来源,配置错误可能让不相关的访客互相可见。保持 3000 只绑定回环地址,避免绕过代理直接访问。
先试同一 Wi-Fi,再试移动网络
先让同一 Wi-Fi 下的两台设备都打开 HTTPS 域名,确认能够发现或配对。传一份不含敏感信息的小文件,核对接收后的名称、大小和内容;再换一个更大的文件,观察浏览器是否因切到后台或休眠中断。
随后把手机切到移动网络。如果跨网失败,检查官方 TURN 配置、ICE 连接和网络限制,不能只重启网页容器。TURN 需要单独配置端口、凭据和流量限制;按项目的自托管说明完成后重新验证。
限制访问,保存迁移配置
设备配对和传输提示不等于服务器访问控制。仅自己使用时,可在代理前加入适当的访问限制,并从未登录浏览器检查入口。发送文件前确认接收对象,避免误点陌生设备。
这份基础配置没有服务器端文件历史,迁移主要保存 Compose、镜像摘要、代理配置和域名设置。以后增加 RTC 配置、TURN 凭据或挂载目录时,把它们纳入私有备份;不需要为了迁移这一个工具购买大容量存储套餐。




