PairDrop 文件传输网页应 完整介绍

科普、常识 18 阅读 更新于 2026-10-02 16:58

PairDrop(https://pairdrop.net/)完整介绍

一、基础概述

PairDrop 是开源、浏览器驱动的跨平台点对点文件传输网页应用,版本 v1.11.2,是老牌工具 Snapdrop 的增强分支,被称为跨平台版 AirDrop。

区别于Snapdrop:Snapdrop仅支持同一局域网;PairDrop新增配对码、公共房间,支持跨互联网传输设备连接。

二、技术原理 WebRTC 点对点传输

  1. 底层使用 WebRTC 实现端到端加密直连;服务器仅做连接信令,文件数据流不经过服务器存储。
  2. 同一Wi‑Fi局域网:设备自动互相发现,文件完全本地直传,不走外网服务器,速度快、保护隐私。
  3. 不同网络(外网远程):使用配对码 / 公共房间,借助TURN中继建立加密通道;文件依旧端到端加密,服务器无法读取内容。
  4. 仅需要现代浏览器(Chrome、Edge、Safari、Firefox),手机微信内置浏览器也可以打开使用。

三、核心功能特性

  1. 零安装、零注册

任意设备浏览器打开网页即可,无需下载App,无需手机号/账号;可添加为PWA网页应用,生成桌面/手机桌面图标,像普通软件一样点开。

  1. 两种连接模式
  2. ✅ 局域网自动发现:设备连同一个Wi‑Fi,打开网站,页面直接显示其他在线设备,一键选中发送。
  3. ✅ 跨网络配对:6位配对码、二维码、公共房间名字,不在同一WiFi也能配对传输,配对可以持久保存,关闭网页再打开仍然保留配对关系。
  1. 可传输内容
  2. 文件:图片、视频、压缩包、文档,没有人为限制文件大小;支持拖拽上传,支持同时发给多台设备。
  3. 纯文本、网址链接、备忘录片段,快速跨设备复制文字。
  1. 全平台兼容

Windows、macOS、Linux、ChromeOS、Android、iOS。

Android有可选原生客户端,深度集成系统分享菜单;iOS只能使用浏览器/PWA。

  1. 多语言、可自建部署

内置25+语言;完全开源,支持Docker自建私有实例,可以完全不依赖官方 pairdrop.net 服务,适合企业内网使用。

四、简单使用流程

  1. 两台设备浏览器打开 pairdrop.net
  2. 同一WiFi:页面直接看到对方设备名称,点击设备图标,选择文件/粘贴文字发送。
  3. 不在同一WiFi:点「Pair devices」获取配对码或者创建公共房间,另一台输入相同配对码/房间名完成配对,再发送内容。
  4. 接收方网页弹窗确认,保存文件即可。

五、优点与局限

✨优点

  1. 无需账号、无需数据线、无需云盘;文件点对点传输,不上传到第三方服务器,隐私性好。
  2. 跨苹果、安卓、Windows,弥补AirDrop仅苹果设备可用的短板。
  3. 大文件也可以传输,局域网内速度取决于Wi‑Fi带宽。
  4. 支持自建私有服务,数据完全自己掌控。

⚠️局限

  1. 浏览器网页有内存限制,浏览器打开超大文件(几十GB级别)可能出现卡顿;超大文件更建议本地客户端工具。
  2. 跨外网传输时,如果网络环境复杂,部分NAT网络会连接失败,依赖TURN中继。
  3. iOS Safari浏览器PWA有系统权限限制,保存文件操作步骤会比安卓繁琐。
  4. 官方公共实例 pairdrop.net 是社区维护公共服务,重要敏感文件建议优先自建实例使用。

六、适用场景

  • 手机 ↔电脑互传照片、视频、文档,不想插USB数据线。
  • 临时传递链接、文字笔记。
  • 会议室多人快速分发文件。
  • 不想登录网盘、微信传大文件,追求隐私,不想文件经过第三方平台。

如果你需要,我可以帮你整理一份自建PairDrop的Docker部署简易步骤。

PairDrop Docker 自建部署简易步骤

项目仓库:https://github.com/schlagmichdoch/PairDrop
镜像:linuxserver/pairdrop(推荐,维护稳定)
协议:GPL-3.0
说明:部署后,访问 http://你的IP:3000,即可像 pairdrop.net 一样使用;如需外网访问,可搭配反向代理(Nginx/Caddy)+ HTTPS。

前置条件

  1. 已安装 Docker + Docker Compose
    • 检查:docker -v、docker compose version
  2. 服务器端口 3000 放行(防火墙/安全组)
  3. 可选:域名,用于反向代理 HTTPS(WebRTC 外网连接推荐 HTTPS,纯 HTTP 在部分浏览器会受限)

方式一:docker-compose.yml(推荐)

mkdir -p ~/pairdrop && cd ~/pairdrop

新建文件夹,例如 pairdrop,进入目录

mkdir -p ~/pairdrop && cd ~/pairdrop
services:
  pairdrop:
    image: linuxserver/pairdrop:latest
    container_name: pairdrop
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
    volumes:
      - ./config:/config
    # 可选:开启局域网设备发现(需要主机网络模式,二选一)
    # network_mode: host

创建 docker-compose.yml

services:
  pairdrop:
    image: linuxserver/pairdrop:latest
    container_name: pairdrop
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
    volumes:
      - ./config:/config
    # 可选:开启局域网设备发现(需要主机网络模式,二选一)
    # network_mode: host

⚠️ 网络模式说明:

  1. 默认 bridge 模式:端口映射 3000:3000,简单方便;局域网设备自动发现功能失效,只能用配对码/房间连接。
  2. network_mode: host 主机网络:支持局域网自动发现设备;不能写 ports 端口映射,容器直接占用宿主机3000端口。
docker compose up -d

启动容器

docker compose up -d
docker compose logs -f pairdrop

查看日志(排错用)

docker compose logs -f pairdrop
# 停止
docker compose down
# 更新镜像并重启
docker compose pull && docker compose up -d

停止/更新镜像

# 停止
docker compose down
# 更新镜像并重启
docker compose pull && docker compose up -d

方式二:单行 docker run(快速测试)

docker run -d \
  --name=pairdrop \
  -p 3000:3000 \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -v ~/pairdrop/config:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/pairdrop:latest

访问测试

本地访问:http://服务器IP:3000

  • 同局域网:bridge模式只能配对码连接;host模式可自动发现设备。
  • 外网访问:建议配置反向代理 + HTTPS。

反向代理 Nginx 配置示例(HTTPS)

域名 pairdrop.example.com,已申请SSL证书

server {
    listen 80;
    server_name pairdrop.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name pairdrop.example.com;

    ssl_certificate /etc/nginx/ssl/pairdrop.crt;
    ssl_certificate_key /etc/nginx/ssl/pairdrop.key;

    proxy_pass [http://127.0.0.1:3000](http://127.0.0.1:3000);
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

WebRTC 外网传输必须HTTPS,普通HTTP域名浏览器会限制WebRTC,无法建立配对连接。

关键注意事项

  1. 局域网自动发现:想要打开网页就自动看到同WiFi设备,必须用 network_mode: host,bridge模式不支持mDNS设备发现。
  2. 端口:host模式下宿主机3000端口不能被其他程序占用。
  3. 数据:PairDrop是点对点传输,文件不会存服务器,容器 /config 只存配置,不保存传输文件。
  4. 安全:公网部署务必HTTPS;不要暴露裸HTTP公网。
  5. 移动端:手机浏览器打开你的域名,可添加PWA到桌面。

故障快速排查清单

  1. 打不开页面:服务器防火墙/云服务商安全组放行3000端口
  2. 同局域网看不到设备:没有使用 network_mode: host
  3. 外网配对成功但发文件失败:没有HTTPS,或者服务器UDP端口被防火墙拦截(WebRTC需要UDP)

如果你需要,我可以给你一份 Caddy v2 的反向代理配置(自动申请SSL证书,比Nginx更省事)。

PairDrop + Caddy v2 一键部署脚本

说明:

  1. 整套方案:docker-compose.yml 启动 PairDrop;Caddy 使用官方 docker 镜像一起托管,不需要宿主机单独安装 Caddy。
  2. 自动申请 Let’s Encrypt HTTPS 证书,自动续期。
  3. PairDrop 使用 bridge 模式,局域网mDNS自动发现失效,只能使用配对码/房间传输;适合公网访问。
  4. 替换脚本里 pairdrop.yourdomain.com 为你自己的域名,域名已经解析到服务器公网IP。
  5. 服务器安全组/防火墙放行:TCP 80、TCP 443(必须开放,用于ACME证书签发)。

一键脚本 deploy-pairdrop.sh

#!/bin/bash
set -e

# ========== 请修改这里 ==========
DOMAIN="pairdrop.yourdomain.com"
# 如需开启页面密码保护,设置 ENABLE_AUTH=true,访问时需要账号密码
ENABLE_AUTH=false
AUTH_USER="pair"
# ================================

WORK_DIR="$HOME/pairdrop-deploy"
mkdir -p ${WORK_DIR}
cd ${WORK_DIR}

# 生成 Caddyfile
cat > Caddyfile <<EOF
${DOMAIN} {
$(if [ "${ENABLE_AUTH}" = true ]; then
HASH=$(docker run --rm caddy:2 caddy hash-password -p "${AUTH_PASS}")
echo "  basic_auth /* {"
echo "    ${AUTH_USER} ${HASH}"
echo "  }"
fi)
  reverse_proxy pairdrop:3000 {
    transport http {
      keepalive 30s
    }
    header_up X-Real-IP {remote_host}
    header_up Host {host}
  }

  header {
    Strict-Transport-Security "max-age=31536000; includeSubDomains"
  }

  log {
    output file /var/log/caddy/pairdrop.log
    level info
  }
}
EOF

# 生成 docker-compose.yml
cat > docker-compose.yml <<EOF
services:
  pairdrop:
    image: lscr.io/linuxserver/pairdrop:latest
    container_name: pairdrop
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
    volumes:
      - ./pairdrop-config:/config
    # bridge网络,供caddy反向代理
    networks:
      - pd-net

  caddy:
    image: caddy:2
    container_name: caddy-pairdrop
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./caddy-data:/data
      - ./caddy-config:/config
      - ./caddy-logs:/var/log/caddy
    networks:
      - pd-net
    depends_on:
      - pairdrop

networks:
  pd-net:
EOF

echo "====================================="
echo "文件生成完成,目录:${WORK_DIR}"
echo "域名:${DOMAIN}"
echo "====================================="
echo "操作步骤:"
echo "1. cd ${WORK_DIR}"
echo "2. docker compose up -d"
echo "3. 等待1~3分钟证书签发,访问 https://${DOMAIN}"
echo ""
echo "如需开启密码认证:"
echo "  执行:export AUTH_PASS='你的密码' && bash deploy-pairdrop.sh"
echo "====================================="

使用步骤

  1. 新建脚本文件
nano deploy-pairdrop.sh

粘贴全部内容,修改顶部 DOMAIN="pairdrop.yourdomain.com" 为你的域名。

  1. 赋予执行权限
chmod +x deploy-pairdrop.sh
  1. 执行部署
  • 不需要密码保护版本
./deploy-pairdrop.sh
  • 需要网页密码保护版本(运行前先设置密码变量)
export AUTH_PASS='你自定义的访问密码'
./deploy-pairdrop.sh
  1. 启动容器
cd ~/pairdrop-deploy
docker compose up -d

常用运维命令

# 查看运行状态
docker compose ps

# 查看日志 pairdrop
docker compose logs -f pairdrop

# 查看日志 caddy
docker compose logs -f caddy

# 重载Caddy配置(修改Caddyfile后执行)
docker compose exec caddy caddy reload

# 停止服务
docker compose down

# 更新镜像并重启
docker compose pull && docker compose up -d

目录结构说明

~/pairdrop-deploy/
├── Caddyfile          # Caddy反向代理配置
├── docker-compose.yml # 编排文件
├── deploy-pairdrop.sh # 部署脚本
├── pairdrop-config/   # PairDrop配置持久化
├── caddy-data/        # Caddy证书存放目录
├── caddy-config/
└── caddy-logs/        # Caddy访问日志

⚠️ 重要提醒

  1. 证书签发:首次启动需要等待几十秒到几分钟,Caddy向Let’s Encrypt申请SSL证书;域名必须解析到服务器公网IP,80端口必须对外开放。
  2. WebRTC外网传输:网页走Caddy HTTPS代理;P2P数据流不走Caddy,浏览器直连。打洞失败会自动使用PairDrop内置TURN中继。服务器出站UDP尽量不要封禁。
  3. 局域网自动发现:本方案PairDrop跑在docker桥接网络,同局域网设备无法自动发现,只能使用配对码/房间号传输文件。
  4. CDN注意:不要套CDN,CDN会破坏WebRTC,并且ACME证书验证容易失败。

如果你想要保留局域网mDNS自动发现(host网络模式)版本,我可以单独再给一套脚本,但是公网反向代理会更麻烦。

← 返回科普、常识 yicool 百科 · PairDrop 文件传输网页应 完整介绍

评论 0