PairDrop适用于所有平台的本地网络上的文件共享。
- 一种可行的类似 AirDrop 的多平台解决方案。
- 通过点对点连接将图像、文档或文本发送到同一本地网络上的设备。
- 加入临时公共房间,通过网络轻松传输文件。
- 适用于所有配备现代网络浏览器的设备。
二、Docker部署
一起搭建 STUN/TURN 服务器
- docker-compose.yml配置
services:
pairdrop:
image: "lscr.io/linuxserver/pairdrop:latest"
container_name: pairdrop
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- WS_FALLBACK=true
- RATE_LIMIT=true
- DEBUG_MODE=false
- TZ=Asia/Shanghai
- RTC_CONFIG_FILE=/config/rtc_config.json
depends_on:
- coturn
volumes:
- ./rtc_config.json:/config/rtc_config.json:ro
ports:
- "60000:3000"
rtc_config.json配置文件
{
"sdpSemantics": "unified-plan",
"iceServers": [
{
"urls": "stun:公网ip:3478"
},
{
"urls": "turns:公网ip:5349",
"username": "pairdrop",
"credential": "securepassword"
}
]
}
-
coturn搭建,docker-compose.yml配置
coturn: image: instrumentisto/coturn container_name: coturn restart: unless-stopped network_mode: "host" environment: - REALM=pairdrop - USERNAME=pd用户名 - PASSWORD=password密码 volumes: - ./rtc_config.json:/config/rtc_config.json:ro - ./turnserver.conf:/etc/coturn/turnserver.conf - ./turn_server_cert.pem:/etc/coturn/turn_server_cert.pem - ./turn_server_pkey.pem:/etc/coturn/turn_server_pkey.pem -
turnserver.conf配置
# 监听所有网卡 listening-ip=0.0.0.0这里加上公网 IP
external-ip=公网 IP
TURN 端口
listening-port=3478 tls-listening-port=5349
认证域
realm=pairdrop
用户认证
user=pd:password 用户名密码 lt-cred-mech
允许的 TURN 端口范围
min-port=49152 max-port=65535
证书
cert=/etc/coturn/turn_server_cert.pem pkey=/etc/coturn/turn_server_pkey.pem
启用指纹,防止中间人攻击启用 fingerprint
fingerprint
允许长时间连接
stale-nonce
CLI 密码
cli-password=yourpassword -
其它
-
添加自定义TLS 证书
-
openssl req -x509 -newkey rsa:4096 -keyout turn_server_pkey.pem -out turn_server_cert.pem -days 365 -nodes -
挂载到 Coturn 容器
volumes: - ./turnserver.conf:/etc/coturn/turnserver.conf - ./turn_server_cert.pem:/etc/coturn/turn_server_cert.pem - ./turn_server_pkey.pem:/etc/coturn/turn_server_pkey.pem
-
-
防火墙
# 允许 STUN/TURN 端口 sudo iptables -A INPUT -p udp --dport 3478 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 3478 -j ACCEPT允许 TURN 分配 UDP 端口
sudo iptables -A INPUT -p udp --dport 49152:65535 -j ACCEPT
如果使用 ufw 防火墙:
sudo ufw allow 3478/udp sudo ufw allow 49152:65535/udp -
可能有挂载文件权限问题
chmod 644 ./rtc_config.json # 让所有者可写,其他用户可读 chown 1000:1000 ./rtc_config.json # 让 PUID=1000 的用户拥有该文件 -
如果系统用
apt install coturn -y安装过Coturn,检查 Coturn 是否被多个进程启动,彻底清理Coturnps aux | grep turnserver killall turnserver systemctl restart coturn rm -f /var/run/turnserver.pid 禁用 Coturn 开机启动 systemctl disable coturn 卸载 Coturn systemctl stop coturn apt remove --purge coturn -y 清理残留数据 rm -rf /var/lib/turn rm -rf /var/log/turnserver.log rm -rf /etc/coturn 确认 Coturn 已完全删除 which turnserver
-