🚀 使用 Docker Compose 部署 微力同步 (Verysync)跨设备文件同步工具
🚀 使用 Docker Compose 部署微力同步 (Verysync)
微力同步 (Verysync) 是一款高效、可靠的点对点跨平台文件同步工具。它能够在您的不同设备(如 NAS、电脑、手机)之间安全、快速地同步和备份文件,所有数据均通过 AES 加密传输,仅存储在您自己的设备上,确保了隐私和安全。
下面将详细介绍如何使用 Docker Compose 部署 Verysync。
📦 项目简介
微力同步的核心特点可以概括为下表:
| 特点类别 | 具体说明 |
|---|---|
| 同步与共享 | 支持点对点(P2P)跨平台文件同步与备份,支持双向同步与单向同步(只读或读写权限设置),可选择性地同步文件夹中的特定文件,无需每次同步全部内容。 |
| 安全与连接 | 数据通过 AES 加密传输,数据仅在用户自己的设备间传输。采用 P2P 直连,在局域网内自动切换本地传输,支持通过中继服务器在复杂网络环境下建立连接。 |
| 设备与管理 | 支持多种设备和操作系统,包括 Windows, macOS, Linux, Android, iOS 及多种 NAS 设备,提供 Web 管理界面,方便进行同步任务管理和设置。 |
使用场景 * 多设备文件同步与备份:在家庭或办公环境中,跨多个设备(如不同的NAS、电脑、手机)同步和备份重要文件、照片、文档等。 * 团队文件共享与协作:作为团队文件共享和协作工具,同步和共享工作文件。 * 替代或补充NAS自带同步功能:当NAS自带的同步工具不好用时,可以用微力同步替代。
📋 部署前准备
1.环境要求
确保你的服务器已安装 Docker 和 Docker Compose。你可以通过在终端执行 docker -v 和 docker compose version 来验证。
2.安装 Docker 和 Docker Compose 若系统未安装,可参考以下步骤(以 Linux 为例):
# 安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 将当前用户加入 docker 组(可选,避免每次使用 sudo)
sudo usermod -aG docker $USER
# 重新登录或执行以下命令使组更改生效
newgrp docker
# 安装 Docker Compose 插件
sudo apt-get update
sudo apt-get install docker-compose-plugin
# 验证安装
docker compose version
3.资源检查
* 端口:Verysync 使用多个端口用于 Web 界面访问、数据传输和中继。请确保宿主机的 8886(Web UI),3000(中继),22027(UDP,局域网发现),22330(TCP,数据传输)等端口未被其他程序占用。如果使用 network_mode: host,容器将直接使用宿主机的网络栈,需直接确保这些端口可用。
* 磁盘空间:确保挂载目录(如示例中的 ./myfiles, ./file, ./file2)有足够空间存储同步数据。
* 权限:确保当前用户对挂载目录有读写权限。
⚙️ 配置 Docker Compose
1.创建项目目录
创建一个目录(如 verysync)用于存放所有相关文件,并进入该目录。
mkdir -p /path/to/your/verysync && cd /path/to/your/verysync
2.创建 docker-compose.yml 文件
将提供的配置内容保存到新创建的 docker-compose.yml 文件中。此配置定义了 Verysync 服务。
services:
verysync:
# Verysync 官方镜像(维护者 jonnyan404,稳定版本)
image: jonnyan404/verysync
container_name: verysync # 容器名称,便于管理
hostname: my-syncthing # 节点主机名(自定义,同步时识别设备用)
environment:
# 可选:用户权限配置(PUID/PGID,默认无需设置,避免权限冲突)
#- PUID=1000
#- PGID=1000
# 修正:时区配置(原 Aisa 改为 Asia,确保日志与本地时间一致)
- TZ:Aisa/Shanghai
volumes:
# 同步目录1:本地 ./myfiles ↔ 容器 /var/syncthing/myfiles(默认同步目录)
- ./myfiles:/var/syncthing/myfiles
# 用来同步的自定义路径,如果有多个目录就复制多条,后面的/data可以根据自己需要改。
# 同步目录2:本地 ./file ↔ 容器 /data1(自定义目录,可重命名)
- ./file/:/data1
# 同步目录3:本地 ./file2 ↔ 容器 /data2(自定义目录,支持新增更多)
- ./file2/:/data2
network_mode: host # 主机网络模式:容器直接使用宿主机端口,无需端口映射
# 注释:host 模式下,ports 配置无效,端口通过宿主机直接开放
#ports:
#- 8886:8886 # WEBUI端口
#- 3000:3000 # 可选,中继端口
#- 22330:22330 # 可选,数据传输TCP端口
#- 47112:47112/udp # 可选,数据传输UDP端口,自定义
#- 22067:22067 # 可选,中继服务器连接端口
#- 22027:22027/udp # 可选,局域网发现UDP端口
restart: always # 容器退出后自动重启,保障同步服务稳定
#restart: unless-stopped
#privileged: true # 可选:特权模式,默认无需开启,仅特殊权限需求时启用
3.关键配置说明
* 镜像:jonnyan404/verysync 是 Verysync 的官方 Docker 镜像。
* 数据持久化:volumes 部分将容器内的路径挂载到宿主机的对应目录,确保同步数据在容器重启后不会丢失。示例中挂载了多个目录,你可以根据需要增删。
* 网络模式:network_mode: host 使容器使用宿主机的网络,这样可以避免复杂的端口映射,在某些情况下可能有助于提高发现和连接性能。如果使用桥接网络,可以注释掉该行,并取消注释 ports 部分进行端口映射。
* 时区设置:TZ=Asia/Shanghai 用于设置容器的时区,请根据实际情况修改(例如 Asia/Shanghai)。请注意,提供的配置文件中 TZ:Aisa/Shanghai 存在拼写错误(应为 Asia),且环境变量赋值通常使用 = 而非 :,建议修正为 TZ=Asia/Shanghai。
🚀 启动与验证
1.启动服务
在 docker-compose.yml 文件所在目录下,执行以下命令来后台启动服务:
docker compose up -d
2.检查服务状态 使用以下命令查看容器是否正常运行:
docker compose ps
如果状态(State)栏显示为 Up,则表明容器已成功启动。
3.查看日志 如果容器启动异常,可以通过日志来排查问题:
docker compose logs verysync
4.访问 Web 管理界面
在浏览器中输入 http://你的服务器IP:8886。如果看到 Verysync 的 Web 管理界面,说明服务已成功部署。
(2)访问 Verysync Web 管理界面
- 打开浏览器,输入
http://服务器IP:8886(如局域网测试:http://192.168.1.100:8886,本地测试:http://localhost:8886); - 首次访问会提示 “创建管理员账号”:
- 输入自定义用户名(如
admin)和密码(建议强密码,如VerSync@2024); - 点击 “注册” 完成初始化;
- 输入自定义用户名(如
- 登录后进入主界面,左侧显示 “本地目录”(
myfiles/data1/data2),右侧显示 “设备列表”(当前仅本机节点),说明服务正常。
🔧 基础配置与使用
1.初始设置
* 首次访问 Web 界面(http://你的服务器IP:8886)时,通常会有一个简单的初始化过程。
* 建议为设备设置一个易于识别的名称,以便在多设备环境中管理。
2.添加同步目录
* 在 Web 界面中,点击 "新建同步"。
* 选择 "标准文件夹",然后选择容器内你已挂载的路径(例如 /data1, /data2)。
* 设置该文件夹的读写权限(只读或读写),这决定了其他设备同步到此目录时的操作权限。
3.连接其他设备 * 在已添加的同步目录的 "共享信息" 中,可以找到 "只读密钥" 或 "读写密钥"(以及链接地址)。 * 在另一台设备(同样安装了 Verysync 客户端的电脑、手机或 NAS)上,打开 Verysync,点击 "新建同步",选择 "连接密钥或链接",粘贴复制的密钥或链接。 * 在接收设备上选择保存此同步内容的本地目录。 * 确认连接后,同步便会开始。
4.性能与连接优化 * 在 "同步设置" -> "性能设置" 中,可以根据设备情况调整 "内存缓冲大小"、"并发线程数" 等参数。 * 确保所有设备的 Verysync 客户端必要的传输协议(如 UDP 传输、TCP 传输)已启用,特别是在遇到连接问题时。
🔧 基础配置与使用2
Verysync 核心使用流程是 “添加同步节点(设备配对)→ 配置同步目录 → 启动同步”,新手可按以下步骤操作:
1. 步骤 1:获取当前节点的 “设备 ID”(用于配对)
- 登录 Web 界面,点击右上角 “设置” 图标(齿轮)→ 选择 “设备信息”;
- 复制 “设备 ID”(一串 32 位字符,如
ABCDEF1234567890ABCDEF1234567890),此 ID 用于其他设备配对当前服务器节点。
2. 步骤 2:添加同步节点(以手机端为例)
- 在手机上安装 Verysync 客户端(官网或应用商店下载);
- 打开手机客户端,点击 “添加节点”→ 选择 “手动输入设备 ID”;
- 粘贴服务器节点的 “设备 ID”,点击 “确认”;
- 服务器 Web 界面会弹出 “配对请求”,点击 “同意”,完成设备配对(节点列表会显示手机设备)。
3. 步骤 3:配置同步目录(双向同步 “文档” 为例)
- 服务器端:点击 Web 界面左侧 “本地目录”→ 点击
data1(对应本地./file目录)→ 点击 “分享”; - 在弹出的 “分享设置” 中:
- 选择 “目标节点”:勾选已配对的手机设备;
- 同步方向:选择 “双向同步”(服务器与手机文件互相同步);
- 点击 “确认”;
- 手机端:收到 “目录分享请求”,点击 “接受”→ 选择手机本地的 “文档” 目录作为同步目录;
- 启动同步:双方确认后,服务器
./file目录与手机 “文档” 目录会自动同步,新增 / 修改文件会实时同步到对方设备。
4. 步骤 4:验证同步效果
- 在服务器
./file目录创建测试文件:echo "测试同步" > ./file/test.txt; - 等待 10-30 秒(取决于网络速度);
- 打开手机 “文档” 目录,查看是否出现
test.txt文件,内容是否为 “测试同步”; - 反之,在手机 “文档” 目录修改
test.txt,服务器./file目录会同步更新,说明同步正常。
5. 常用 Web 功能说明
- 状态监控:主界面 “仪表盘” 查看同步进度、已用空间、节点连接状态;
- 同步历史:点击 “历史记录” 查看文件新增 / 修改 / 删除记录,支持恢复旧版本;
- 带宽限制:“设置”→“网络” 中配置上传 / 下载带宽上限(避免占用过多网络资源);
- 忽略规则:在同步目录设置中添加 “忽略文件”(如
*.log、temp/),避免无关文件同步。
🔄 维护与管理
1.更新服务 当有新版本发布时,可以按以下步骤更新:
# 进入 docker-compose.yml 所在目录
cd /path/to/your/verysync
# 拉取最新的 Verysync 镜像
docker compose pull
# 重新创建并启动容器
docker compose up -d
# 清理无用的旧镜像
docker image prune
2.数据备份
* Verysync 的所有同步数据都保存在你挂载的宿主机目录(示例中的 ./file, ./file2 等)下。
* 定期备份这些目录即可备份所有同步数据。
3.服务卸载 如需卸载 Verysync,在项目目录下执行:
docker compose down
如果希望彻底删除所有数据(包括同步文件),在上述命令后移除挂载的目录即可。
4.新增同步目录
若需同步 “视频” 目录,步骤如下:
1.在部署目录创建新目录:mkdir -p video && sudo chmod 777 video;
2.编辑 docker-compose.yml,在 volumes 中添加:
- ./video:/data3 # 本地 ./video ↔ 容器 /data3
3.重启容器:docker compose restart;
4.登录 Web 界面,左侧 “本地目录” 会新增 data3,按步骤 3 配置同步节点与规则即可。
🐛 常见问题排查
| 问题现象 | 可能原因与解决方案 |
|---|---|
| 容器启动失败 | 1. 检查 docker-compose.yml 文件语法是否正确(例如缩进、冒号后空格)。2. 执行 docker compose logs verysync 查看具体错误日志。 |
无法访问 Web 界面 (http://IP:8886) |
1. 确认服务器防火墙/安全组是否开放了 8886 端口。2. 检查 docker compose ps 确认容器状态是否为 Up。3. 确认宿主机 8886 端口未被其他进程占用。 |
| 设备间无法连接或同步 | 1. 检查各设备 Verysync 客户端的 UDP 传输 和 TCP 传输 功能是否已启用。 2. 检查路由器或防火墙是否阻止了 Verysync 所需端口( 3000, 22330, 22027/UDP 等)的通信。3. 尝试使用 中继连接(通常会自动尝试)。 |
| 同步目录权限错误 | 1. 在宿主机上,确认当前用户对挂载的目录(如 ./file)有读写权限。2. 在容器中,Verysync 需要能在同步目录内创建 .verysync 标记文件夹,确保目录权限允许此操作。3. 考虑在 docker-compose.yml 中配置 PUID 和 PGID 环境变量,使其与宿主机目录所有者一致。 |
| 同步失败或文件错误 | 1. 检查源文件和目标文件系统及权限。 2. 注意:Verysync 在同步包含软链接(Symbolic Links) 的目录时可能会遇到问题,请谨慎处理。 |
希望这篇教程能帮助你顺利搭建并使用微力同步,享受高效、安全的跨设备文件同步体验!如果在部署和使用过程中遇到更多问题,微力同步的官方论坛和用户社区是寻求帮助的好去处。
🐛 常见问题排查2
1. Web 界面无法访问(ERR_CONNECTION_REFUSED)
-
原因 1:8886 端口未开放或被占用。解决:
- 检查端口占用:
sudo lsof -i :8886,停止占用服务; - 重新开放端口:
sudo ufw allow 8886/tcp,云服务器同步安全组。 - 原因 2:容器未正常启动(State 为 Exited)。解决:查看日志
docker compose logs -f verysync,修复权限或时区错误后重启。
- 检查端口占用:
2. 节点配对失败(提示 “无法连接到设备”)
-
原因 1:设备不在同一网络(如服务器在公网,手机在局域网),未开放中继端口。解决:开放 3000、22330 端口,服务器端在 “设置”→“中继” 中启用 “自动中继”。
-
原因 2:设备 ID 输入错误。解决:重新在服务器 Web 界面复制 “设备 ID”,确保手机端输入无空格、无拼写错误。
3. 同步文件失败(提示 “权限不足”)
-
原因:本地同步目录权限不足,容器无法写入文件。
解决:重新赋予目录权限:
sudo chmod -R 777 myfiles file file2,重启容器后重试。
4. 同步速度慢(大文件传输卡顿)
-
原因 1:网络带宽限制或信号差。解决:
- 检查网络:确保设备间网络稳定(局域网同步优先,公网建议用有线网络);
- 调整带宽:在 “设置”→“网络” 中取消带宽限制(或调大上限)。
- 原因 2:未启用增量同步。解决:Verysync 默认启用增量同步,若异常关闭,在 “设置”→“同步” 中勾选 “启用增量同步”。
5. 时区错误(日志时间与本地差 8 小时)
-
原因:
docker-compose.yml中TZ拼写错误(如Aisa)。解决:修正为
TZ=Asia/Shanghai,重启容器:docker compose down && docker compose up -d。
通过以上步骤,新手可快速搭建 Verysync 同步服务,实现多设备文件实时同步。Verysync 适合注重数据隐私的用户(无第三方服务器),后续可根据需求扩展节点数量或同步目录,具体进阶功能可参考 Verysync 官方文档。