一、Syncthing介绍
Syncthing是一个连续的文件同步程序。它可以在两台或更多的计算机之间同步文件。
总结了如下几个特点:
- 中文友好(支持中文界面)
- 设置简单,易上手
- 支持Linux、Windows、macOS(NAS也可以方便部署)
- 同步效率不错
- 支持版本控制(可以恢复到指定的版本)
- Docker部署方便
- 支持同步加密,保护数据安全
- 支持一对多、多对一、一对一
视频版介绍可参考第六章:https://edu.51cto.com/course/33515.html
二、docker方式部署Linux端syncthing
这里以一个Linux端syncthing和一个windows端syncthing进行同步为例进行介绍。
首先在Linux端创建一个目录:
mkdir -p /data/docker_data/syncthing
cd /data/docker_data/syncthing
然后,通过docker-compose部署,docker-compose.yml内容如下:
version: "2.1"
services:
syncthing:
image: lscr.io/linuxserver/syncthing
container_name: syncthing
hostname: syncthing #optional
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- /data/docker_data/syncthing/config:/config
- /data/docker_data/syncthing/Documents:/Documents
- /data/docker_data/syncthing/Media:/Media
ports:
- 8384:8384
- 22000:22000/tcp
- 22000:22000/udp
- 21027:21027/udp
restart: unless-stopped
最后,执行如下命令启动容器:
docker-compose up -d
默认syncthing启动的web端口为8483,浏览器访问即可。
三、配置Linux端syncthing的同步目录
服务启动后,访问8384端口,即可访问syncthing的web界面。
点击否,然后配置web的登录密码,如下图所示:
设置图形管理界面用户名和密码即可,如果外网访问,可打勾“使用加密连接到图形管理界面”。
接着,重新通过https登录,界面如下:
然后选择“添加文件夹”按钮,添加共享文件夹,如下图所示:
注意,这里的/config/mydata是Linux端docker容器映射到宿主机的路径,对应宿主机路径为/data/docker_data/syncthing/config/mydata,此路径可修改,也可以修改到宿主机的/data/docker_data/syncthing/Documents路径下,如下图所示:
这里注意权限问题,宿主机上/data/docker_data/syncthing/Documents目录要具有UID为1000的权限,否则无法创建对应目录。
至此,Linux端同步配置完成。
三、配置windows端syncthing
首先到https://github.com/syncthing/syncthing/releases 下载不同平台的同步客户端,如果是win平台,可下载syncthing-windows-amd64-v1.23.2.zip文件,然后在windows下解压,双击syncthing.exe运行即可,运行完成,在win下浏览器访问http://127.0.0.1:8384/#。
在windows端的syncthing界面下,点击操作按键,如下图所示:
选择显示ID,找到windows端syncthing的ID标识,如下图所示:
复制记住此ID,然后在Linux端的syncthing上开始添加远程设备,如下图所示:
点击“添加远程设备”后,如下图所示:
填写windows端syncthing的设备ID,然后点击“共享”,如下图所示:
选择要共享给windows主机的共享文件夹,这里选择“mydata1”,mydata1是在Linux端syncthing添加好的共享目录,最后,点击保存即可。
Linux端保存后,在windows端的syncthing界面就能看到同步请求,如下图所示:
点击“添加设备”,然后会弹出如下界面:
这里选择windows下的同步文件夹为C:\Users\高先生\mydata1,也就是将windows下的C:\Users\高先生\mydata1与Linux端syncthing的/data/docker_data/syncthing/Documents/zyjzw-putwj两个目录之间实现了实时同步。
下图是Windows端syncthing的状态:
下图是Linux端syncthing的状态:
至此,syncthing配置完成,可以使用了。