Skip to content

🚀 使用 Docker Compose 部署 Resilio Sync

🚀 使用 Docker Compose 部署 Resilio Sync

Resilio Sync 是一款基于 P2P (点对点) 技术 的文件同步工具,前身为 BitTorrent Sync。它能够直接在您的设备间同步文件,无需通过中央服务器。采用 BitTorrent 协议 进行文件同步和共享,Resilio Sync 支持全平台,包括 Windows、macOS、Linux、iOS 和 Android。

📦 项目简介

Resilio Sync 的核心优势在于其 去中心化的同步方式高效的数据传输

主要功能特点: * 🔒 本地网络优先与安全性:在 局域网 (LAN) 内同步 时,数据传输不经过外网,速度更快且更安全。所有同步数据都经过 AES 加密,确保隐私。 * ⚡ 高效的同步性能:支持 增量同步,当文件发生变化时,只同步文件中已修改的部分,而非整个文件,这在大文件同步时尤其高效。 * 🌐 灵活的同步与分享:可以通过 生成密钥 (Key) 或链接 (Link) 的方式分享文件或文件夹。支持 选择性同步 (Pro 版本功能),允许用户选择只同步文件夹中的特定子文件夹或文件。 * 📊 多场景应用:适用于个人数据备份与同步、团队协作共享大型文件或项目文件夹,以及远程工作者安全访问和同步公司文件。

⚙️ 部署前准备

  1. 环境要求

    • 确保您的系统已安装 DockerDocker Compose
    • 系统内存:建议 1GB 以上。
    • 确保服务器的 8888 和 55555 端口 未被占用。
  2. 环境检查 在终端中执行以下命令,确认 Docker 环境正常: bash docker --version docker-compose --version

  3. 创建项目目录 建议创建一个独立的目录来管理 Resilio Sync 的所有文件。 bash mkdir -p /opt/docker/resilio-sync cd /opt/docker/resilio-sync

🛠️ 配置 Docker Compose

基于您提供的配置,这里是对 docker-compose.yml 文件的解读和优化说明。

#version: '3'

services:
  resilio-sync:
    image: resilio/sync  # 使用官方 Resilio Sync 镜像
    container_name: resilio_sync  # 容器名称,便于管理
    volumes:
      #- ./webdav_storage:/mnt/sync/folders/webdav_storage:shared  # 挂载 WebDAV 存储数据,与 WebDAV 服务共享

      # 1. 同步数据目录:与 WebDAV 共享的文件存储路径(:shared 允许多容器共享该目录)
      - /home/compose/go_webdav/mnt:/mnt/sync/folders/webdav_storage:shared  # 挂载 WebDAV 存储数据,与 WebDAV 服务共享
      # 2. 配置目录:保存 Resilio 同步设置、密钥、日志等(持久化,避免重启丢失配置)
      - ./resilio-config:/mnt/sync  # 持久化 Resilio Sync 配置
    ports:
      - "8888:8888"  # Resilio Sync Web UI   # Web 管理界面端口映射:主机 8888 → 容器 8888
      - "55555:55555"  # Resilio Sync 数据传输端口 # P2P 数据传输端口映射:主机 55555 → 容器 55555
    #restart: unless-stopped
    restart: always  # 容器退出后自动重启(开机自启,确保同步不中断)
    #environment:
      #- PUID=1000  # 可选:设置运行容器的用户ID,确保有文件读写权限
      #- PGID=1000  # 可选:设置运行容器的组ID
      #- TZ=Asia/Shanghai  # 可选:设置容器时区




#VPS版配置
#version: '3'

services:
  resilio-sync:
    image: resilio/sync  # 使用官方 Resilio Sync 镜像
    container_name: resilio_sync
    volumes:
      - ./resilio-config:/mnt/sync  # 持久化 Resilio Sync 配置

      #- ./webdav_storage:/mnt/sync/folders/webdav_storage:shared  # 挂载 WebDAV 存储数据,与 WebDAV 服务共享
      - /home/compose/go_webdav/mnt:/mnt/sync/folders/webdav_storage:shared  # 挂载 WebDAV 存储数据,与 WebDAV 服务共享
      - /home/compose/Suwayomi-Server/downloads:/mnt/sync/folders/suwayomi_downloads:shared
    ports:
      - "8888:8888"  # Resilio Sync Web UI
      - "55555:55555"  # Resilio Sync 数据传输端口
    #restart: unless-stopped
    restart: always
    deploy:  # 在单机模式下使用deploy.resources  # 单机模式也支持这种语法
      resources:
        limits:
          #cpus: '0.7'
          #memory: 512M
          cpus: '0.1'
          memory: 356M
    privileged: true
    #特权:真




关键配置说明

配置项 说明与建议
image 指定使用的 Docker 镜像,这里使用官方 resilio/sync 镜像。
ports 8888:8888 用于访问 Web 管理界面。55555:55555 是 Resilio Sync 用于设备间 P2P 数据传输 的端口。请确保该端口在防火墙中开放,这对同步速度很重要。
volumes ./resilio-config:/mnt/sync 用于 持久化存储 Resilio Sync 的配置信息,防止容器重启后配置丢失。/home/compose/go_webdav/mnt:/mnt/sync/folders/webdav_storage:shared 将您需要同步的目录挂载到容器内。
environment PUID/PGID 建议设置为宿主机上对挂载目录有读写权限的用户和组ID,可通过 id $USER 命令查看。TZ 设置正确的时区,保证日志和时间显示准确。

注意:若您使用非 root 用户(PUID/PGID 非 0),请确保该用户对挂载的目录(如 /home/compose/go_webdav/mnt./resilio-config)拥有读写权限,否则可能因权限问题导致同步失败。

🚀 启动与验证

  1. 启动服务docker-compose.yml 文件所在目录执行: bash docker-compose up -d 此命令会拉取镜像并在后台启动容器。

  2. 检查服务状态 bash docker-compose ps 如果看到 resilio_sync 容器的状态为 Up,说明服务已成功启动。

  3. 查看实时日志(可选) 如果遇到问题,可以通过以下命令查看容器日志来排查: bash docker-compose logs -f resilio-sync

  4. 访问 Web 界面 打开浏览器,访问 http://你的服务器IP:8888

    • 如果一切正常,你将看到 Resilio Sync 的 Web 管理界面。
    • 首次访问通常会引导你进行一些基本设置,如创建管理员账号密码。

⚙️ 基础配置与使用

成功登录 Web 界面后,你可以开始配置 Resilio Sync。

  1. 添加同步文件夹

    • 在 Web 界面中,点击 "+""Add Folder" 按钮。
    • 选择 "Standard Folder" (标准文件夹) 或 "Encrypted Folder" (加密文件夹,安全性更高)。
    • 在弹出的窗口中,选择容器内已挂载的路径,例如 /mnt/sync/folders/webdav_storage
  2. 分享与同步

    • 创建文件夹后,Resilio Sync 会提供该文件夹的 密钥 (Key)链接 (Link)
    • 在其他设备上安装 Resilio Sync 客户端后,通过输入此 密钥链接 即可开始同步。
    • 对于 公开分享,可选择生成链接;对于需要控制的分享,使用密钥更安全。
  3. 配置连接选项 (提升同步效率)

    • 在文件夹的 "Preferences" (首选项) 或 "Options" (选项) 中:
      • "Search LAN" (搜索局域网):建议开启,允许在局域网内发现其他设备,加快同步速度。
      • "Use predefined hosts" (使用预定义主机):如果知道其他设备的 IP 地址和端口,可在此添加,例如 IP:55555,有助于建立直接连接。
      • "Use tracker server" (使用跟踪服务器):建议开启,有助于查找同步伙伴。
      • "Use relay server when required" (需要时使用中继服务器):在没有公网 IP 或无法直接连接时,中继服务器可协助传输,但可能会 影响传输速度。有公网IP或可直连时建议关闭。

🔒 维护与管理

  • 服务管理

    • 停止服务docker-compose down
    • 重启服务docker-compose restart
    • 查看服务状态docker-compose ps
  • 数据备份

    • 定期备份你的 docker-compose.yml 文件。
    • 最重要的是备份 resilio-config 目录,该目录包含了所有的同步配置和密钥信息。
  • 版本更新bash # 进入 docker-compose.yml 所在目录 docker-compose down docker-compose pull # 拉取最新镜像 docker-compose up -d # 可选:清理无用镜像 docker image prune

🐛 常见问题排查 (FAQ)

问题现象 可能原因与解决方法
无法访问 Web 界面 (http://IP:8888) 1. 检查防火墙/安全组是否放行了 8888 端口
2. 确认容器是否正常运行:docker-compose ps
3. 查看容器日志:docker-compose logs resilio-sync
同步速度慢 1. 检查端口转发:确保在路由器上转发 55555 端口 (TCP/UDP),这对建立直接连接至关重要。
2. 关闭中继服务器:在文件夹首选项中尝试关闭 "Use relay server",中继服务器通常会降低速度。
3. 添加预定义主机:在已知对方 IP 的情况下,在首选项中添加 "Predefined hosts",例如 对方IP:55555
4. 同步大量小文件时,速度会慢于同步大文件。
设备间无法同步/找不到对方 1. 检查密钥是否正确:确保所有设备输入的是相同的、有效的密钥。
2. 确保端口开放:检查 55555 端口 是否在防火墙和路由器中正确开放。
3. 查看网络环境:某些网络可能屏蔽 P2P 流量。
4. 时间同步:检查设备间系统时间是否相差过大,这可能影响连接。
文件权限错误 1. 检查 volumes 中映射的宿主机目录是否存在且有读写权限。
2. 确认 PUID/PGID 设置是否正确,用户是否有权访问挂载的目录。

💡 提示:Resilio Sync 有时需要一些时间来发现网络中的其他设备并建立最优连接路径,特别是在初次同步时,请保持耐心。

希望这份教程能帮助你顺利完成 Resilio Sync 的部署,享受高效、去中心化的文件同步体验!

常见问题排查

1. 同步文件夹显示 “无权限访问”

  • 原因:同步目录(/home/compose/go_webdav/mnt)权限不足,Resilio 无法读写文件。
  • 解决:执行 sudo chmod -R 777 /home/compose/go_webdav/mnt,赋予最大权限,重启容器后重试。

2. 其他设备无法连接服务器(同步失败)

  • 原因 1:数据传输端口(55555)未开放,设备间无法建立 P2P 连接。

    解决:检查服务器防火墙和云安全组,确保 55555 端口允许入站和出站。 - 原因 2:服务器 IP 或端口修改后,未更新其他设备的同步配置。

    解决:在其他设备上删除旧同步任务,使用新的 IP: 端口 重新添加密钥。

3. Web 界面无法访问(http://IP:8888 打不开)

  • 原因 1:8888 端口被占用(如其他服务使用)。

    解决:执行 netstat -tuln | grep 8888 查看占用程序,或修改配置文件 ports 为空闲端口(如 8889:8888),重启容器。 - 原因 2:容器未正常启动(状态为 Exited)。

    解决:查看日志(docker compose logs resilio_sync),修复错误(如目录权限、端口冲突)后重启。

4. 同步速度慢或频繁中断

  • 原因 1:设备间网络不稳定(如异地同步、带宽低)。

    解决:尽量在同一局域网内同步,或升级网络带宽;在 Web 界面「Settings」→「Speed」中调整速度限制(如取消 “限速”)。 - 原因 2:同步文件过大(如 10GB+ 视频),导致传输超时。

    解决:拆分大型文件为小块,或在「Settings」→「Advanced」中增加 “超时时间”。

5. 与 WebDAV 共享目录时文件冲突

  • 原因:Resilio 和 WebDAV 同时修改同一文件,导致权限冲突(如一方锁定文件)。
  • 解决:确保目录挂载时添加 :shared 选项(配置中已包含),避免文件锁定;尽量不同时在两边修改同一文件。

通过以上步骤,新手可快速搭建 Resilio Sync 实现多设备文件同步,并与 WebDAV 联动实现 “同步 + 共享” 一体化。如需更高级的功能(如设置同步黑名单、启用加密传输),可参考 Resilio Sync 官方文档 进一步配置。