手机和电脑互传文件不用装 APP:飞牛 NAS 装 PairDrop,浏览器打开就能传
作者
小编
发布时间

项目介绍
手机里拍的照片想挪到电脑上,或者电脑上下好的文件想丢到平板里 —— 苹果设备之间有隔空投送,跨系统就只能靠聊天软件来回传,画质还被压一道。PairDrop 干的就是这件事的开源版本:两台设备打开同一个网页,互相就看得见,点一下对方,挑个文件,对面点同意,文件就过去了。
它最省心的地方是**两边什么都不用装**。不是「装个轻量客户端」,是真的什么都不装 —— 浏览器打开一个网址就是全部。Windows、安卓、iPhone、平板,只要有浏览器就能用,也不用注册账号。
传输本身走的是浏览器之间的点对点通道,服务端只负责牵线。所以它没有数据目录,你的文件不会落在服务器上。
项目地址:点我跳转
部署安装
下面在飞牛 NAS 上用 Docker Compose 装 PairDrop,装完再用 帕斯内网穿透 把它开放到公网 —— 装在 NAS 上默认只有家里的网能打开,而这类工具恰恰是「人在外面」的时候最想用。
一、新建 Compose 项目
打开飞牛的「Docker」应用,切到「Compose」标签,点右上角的新增项目。项目名称填 pairdrop,路径在「我的文件」下面挑一个空文件夹,没有就当场新建一个。来源选「创建 docker-compose.yml」,把下面这段整个贴进去。
1services:2 pairdrop:3 image: linuxserver/pairdrop:latest4 container_name: pairdrop5 restart: unless-stopped6 ports:7 - "3410:3000"8 environment:9 TZ: Asia/Shanghai10 WS_FALLBACK: "true"
这份编排要认三处:
冒号左边的 3410 是 NAS 上对外的端口,一会儿浏览器访问、建隧道填的都是它;冒号右边的 3000 是容器里 PairDrop 自己监听的端口,别改。
WS_FALLBACK 这一行要开。两台设备在同一个网里的时候,文件是直接点对点过去的;一旦不在同一个网里(比如手机在外面用流量),点对点经常连不上,这一行就是它的兜底路 —— 走这条路的时候,**文件会从你这台 NAS 上中转一道,而中转的时候服务端是看得到内容的**。上游文档把这句话写得很明白,所以这类实例只建议开在自己的机器上。不开这一行的话,跨网传输按上游的说法得自己再架一台 TURN 服务器,那是另一件麻烦事。
还有一处是「没有的东西」:这份编排**没有 volumes**,也就是没有数据目录。不是漏写 —— 它不存你的文件,所以没有什么需要持久化。
最后勾上「创建项目后立即启动」,点确认。镜像只有几十兆,很快就起来了。起来之后在同一个局域网里访问 NAS 的地址加 3410 端口,就能看到界面。
二、用内网穿透开放到公网
飞牛的「应用中心」里搜 PassNAT,装上这个穿透插件,打开它,点「创建隧道」。
**这一期的隧道要选 HTTP 模式,不是默认的 TCP**,原因见下一段。隧道名字随便起;本地 IP 留它默认的 127.0.0.1,本地端口填编排里那个 3410;子域名自己起一个,顶级域名在下拉里挑一个(都是自动解析的,不用自己配 DNS)。
然后是最关键的两格:**网页访问用户名和网页访问密码,一定要填。**
PairDrop 自己没有任何登录 —— 这是它的设计,在家里的局域网里很合理。但一旦开到公网上,情况就变了:隧道转发进来的请求,在容器看来都来自同一个地方,于是**所有打开这个地址的人会被放进同一个房间、互相看得见、能互相推送文件**。上游文档专门提过这一点。所以口令不是可选项,是这一步的必需品。填了之后,浏览器打开这个地址会先要用户名和密码,输过才进得去。
⚠ 一个容易踩的小限制:**网页访问密码最多 12 个字符**。超了的话点「创建隧道」不会报错,也不会建出来 —— 只是那一格下面多一行灰色小字,很容易看漏。
填完点创建隧道,然后按一下电源。状态转成运行中,详情里那一行就是系统分给你的公网地址,是个域名,不是一串数字。
三、两台设备互相传文件
在两台设备的浏览器里打开同一个公网地址(各自输一次刚才设的用户名和密码),稍等一两秒,两边就会在页面中间看到对方的图标 —— 不用配对,也不用扫码,因为它们是从同一个入口进来的。
点一下对方的图标,弹出系统的文件选择框,挑一个文件;对面的页面上会弹出来问收不收,点同意,文件就过去了,然后在对面点下载保存到本地。想发一段文字的话,在对方图标上点右键(手机上长按),可以直接发消息。
页面上还有「配对设备」和「公共房间」两个入口,用来把不在同一个入口的设备凑到一起,界面上会给一个六位数字和二维码。如果你的设备都走同一个公网地址进来,这两样其实用不上。
几点说明
**用 http 开放的话,装不了 PWA。** 浏览器只在 https 或者本机地址下才允许把网页装成应用,所以这种情况下页面上根本不会出现「安装」那个按钮,不用去找。日常用法是把地址存成书签,效果差不多。
**文件大小没有明面上的限制**,但跨网走中转那条路的时候,速度取决于你家宽带的上行,大文件会慢一些;两台设备在同一个网里的时候是点对点,那才是它最快的场景。
**这个地址还是别到处发。** 加了口令之后它已经不是谁都能进,但口令这东西给出去就收不回来,换口令要回插件里改隧道。