开源同步软件 Syncthing 图文教程


Syncthing 是一款开源免费跨平台的文件同步工具,是基于P2P技术实现设备间的文件同步,所以它的同步是去中心化的,即你并不需要一个服务器,故不需要担心这个中心的服务器给你带来的种种限制,而且类似于torrent协议,参与同步的设备越多,同步的速度越快。针对隐私问题,Syncthing软件只会将数据存储于个人信任的设备上,不会存储到服务器上。设备之间的通信均通过TLS进行,Syncthing 还使用了完全正向保密技术来进一步保障你的数据安全。对于处于不同局域网之中的设备之间的文件同步 Syncthing 也提供了支持。
Syncthing 支持非常多的平台,包括 Windwos、macOS、Android、Linux、FreeBSD、Solaris、群晖和威联通 NAS 等,但遗憾的是,在 iOS 上只有一个第三方客户端 fsync。

这个教程是局域网内两台Linux主机进行同步,如有疑问可以在「运维圈」中进行发帖提问;

0x01 下载 Syncthing

你可以去 Syncthing 的官网进行下载:https://syncthing.net/downloads/ 官网的链接指向了 Github 有条件的用梯子先下载到本地,下面是我直接在服务器上下载速度要命啊!

wget https://github.com/syncthing/syncthing/releases/download/v1.12.1/syncthing-linux-amd64-v1.12.1.tar.gz    # 下载到服务器
开源同步软件 Syncthing 图文教程-运维社区

0x02 解压安装

下载后解压后得到 syncthing-linux-amd64-v1.12.1 这个目录,但是名字太长直接重命名一个短一点的名你可以自定义。运行 Syncthing 后按 Ctrl + z 停止运行,目的是让 Syncthing 在 /root/.config/syncthing 目录下生成一个配置文件我们需要修改这个配置文件否则只能本地访问,修改完后就可以从任意一条电脑通过 Web 浏览器来访问了;访问地址为:服务器IP:8384

tar zxf syncthing-linux-amd64-v1.12.1.tar.gz    # 解压到当前目录
mv syncthing-linux-amd64-v1.12.1 syncthing    # syncthing-linux-amd64-v1.12.1重命名为syncthing
cd syncthing    # 进入到 syncthing 目录
./syncthing    # 运行 syncthing
Ctrl + z    # 停止运行 syncthing 
sed -i 's/127.0.0.1/0.0.0.0/g' '/root/.config/syncthing/config.xml'    # 将配置文件中的 127.0.0.1 修改为 0.0.0.0 
./syncthing   # 运行 syncthing
开源同步软件 Syncthing 图文教程-运维社区

0x03 结束进程

修改完配置文件后,在运行 Syncthing 如果报错,通过浏览器无法访问,那么及先查看 syncthing 的进程ID 然后使用 kill 将进程结束在此运行。

ps -aux | grep syncthing    # 查看 syncthing 进程
kill -9 87151    # 结束进程 87151 为进程ID
开源同步软件 Syncthing 图文教程-运维社区

0x04 Web 访问

Web 访问 syncthing 的地址为:ip:8384 如果可以访问就会出现以下界面,允许匿名使用报告?选择否;

开源同步软件 Syncthing 图文教程-运维社区

0x05 设置密码

默认访问 syncthing 的 Web 界面是没有密码的,为了安全我们需要设置一个密码;点击设置跳转到设置界面进行密码设置。

开源同步软件 Syncthing 图文教程-运维社区

在设置界面 → 图形用户界面 → 图形管理界面用户名 设置用户名自定义 → 图形管理界面密码 设置密码;

开源同步软件 Syncthing 图文教程-运维社区

这里提示的意思是 :Syncthing 不应作为特权用户或系统用户运行。请考虑使用普通用户帐户。

开源同步软件 Syncthing 图文教程-运维社区

0x06 设置选项

我们先来查看下后台的设置选项,操作 → 设置;


开源同步软件 Syncthing 图文教程-运维社区

常规设置,可以自定义安装了 syncthing 的设备名称、重新生成 API 是否自动升级等;

开源同步软件 Syncthing 图文教程-运维社区

图形用户界面,可以设置 Gui 的监听地址、用户名密码及主题;

开源同步软件 Syncthing 图文教程-运维社区

链接设置,协议监听地址、下载上传速率设置是否启用NAT遍历和全球发现,内网建议不要勾选全球发现和 NAT 遍历。一个内网一个外网建议开启。

开源同步软件 Syncthing 图文教程-运维社区

已忽略的设备,当有设备连接需求时可以选择接受或者忽略,忽略的设备可以在这里查看。

开源同步软件 Syncthing 图文教程-运维社区

已忽略的文件夹;

开源同步软件 Syncthing 图文教程-运维社区

0x07 移除默认

syncthing 会创建一个默认的文件夹,这个文件没用什么所以就将它删除吧。文件夹 → 选项 → 移除 → 是;

开源同步软件 Syncthing 图文教程-运维社区
开源同步软件 Syncthing 图文教程-运维社区

0x08 新建文件夹

新建的这个文件夹可用于共享文件或者接受共享文件;点击添加文件夹

开源同步软件 Syncthing 图文教程-运维社区

文件夹选项,常规设置文件夹标签、文件夹ID这个唯一的如果有多个的话、文件路径;举例我设置的路径是:/home/wwwroot/test.opsit.cn 这个目录,如果这台设备作为源设备那么就是备份这个目录下的文件;如果这台设备作为目标设备那这个路径就是存放源设备文件;

开源同步软件 Syncthing 图文教程-运维社区

共享设置,由于没有连接远程设备所以这里无法选择,后面再讲;

开源同步软件 Syncthing 图文教程-运维社区

版本控制,一般不会用,如有需要自行测试;

开源同步软件 Syncthing 图文教程-运维社区

忽略模式,可以设备忽略某些文件及文件夹;

开源同步软件 Syncthing 图文教程-运维社区

高级设置,监视更改,完整扫描文件夹类型有三个选项,如果源设备和目标设备需要互相同步就选择发送与接收,如果源设备不同步目标设备选择仅发送当然目标设备需要选择仅接收;

开源同步软件 Syncthing 图文教程-运维社区

新建文件夹后会自动扫描路径下的文件;

开源同步软件 Syncthing 图文教程-运维社区

扫描完成后文件夹会显示为共享;

开源同步软件 Syncthing 图文教程-运维社区

0x09 目标设备

在目标设备上搭建完 Syncthing 后同样删除默认的文件,参照 0x01~0x07 选项 → 移除 → 是;

开源同步软件 Syncthing 图文教程-运维社区
开源同步软件 Syncthing 图文教程-运维社区
开源同步软件 Syncthing 图文教程-运维社区

0x10 设备ID

在 Syncthing Web界面 → 操作 → 显示ID;

开源同步软件 Syncthing 图文教程-运维社区

可以看到当前设备的标识ID;

开源同步软件 Syncthing 图文教程-运维社区

0x11 远程设备

一台作为源设备,一台作为目标设备;如果两台设备之间需要共享那么就需要将这两台设备进行连接;在这两台设备任意一台上的 Syncthing Web 界面 → 远程设备 → 添加远程设备;

开源同步软件 Syncthing 图文教程-运维社区

添加设备,输入另一台设备的 ID 然后保存,设备的ID获取查看 0x10

开源同步软件 Syncthing 图文教程-运维社区

设备添加后提示断开连接(未使用)

开源同步软件 Syncthing 图文教程-运维社区

在去查看另外一台设备的 Syncthing Web 界面查看有一个新设备请求连接的消息,点击添加设备即可;当然如果不是你自己发起的请求可以选择忽略;

开源同步软件 Syncthing 图文教程-运维社区

添加设备,会显示另一个设备的 ID 及设备名,Linux 默认获取的机器名称,点击保存;

开源同步软件 Syncthing 图文教程-运维社区

设备添加完成后同样是断开连接(未使用)状态;

开源同步软件 Syncthing 图文教程-运维社区

稍等一会在查看远程设备状态两台设备都变成了已连接(未使用)

开源同步软件 Syncthing 图文教程-运维社区
开源同步软件 Syncthing 图文教程-运维社区

0x12 共享设置

两台设备都链接后,开始设置共享。在源设备 → 文件夹 → 选项 → 共享;

开源同步软件 Syncthing 图文教程-运维社区

设置将这个文件夹共享给那个设备;勾选后点击保存;

开源同步软件 Syncthing 图文教程-运维社区

保存后即开始同步;

开源同步软件 Syncthing 图文教程-运维社区

在另外一台设备中会弹出给你共享文件是否需要添加新文件夹的请求,点击添加;

开源同步软件 Syncthing 图文教程-运维社区

添加文件夹选项,设置标签、文件夹ID(唯一)、文件夹路径;设置完成后点击保存;

开源同步软件 Syncthing 图文教程-运维社区

上一步点击保存后 Syncthing 即开始同步;

开源同步软件 Syncthing 图文教程-运维社区

一会就同步完了,两台设备同步的挺快;以下是两台设备同步完成的界面;

开源同步软件 Syncthing 图文教程-运维社区
开源同步软件 Syncthing 图文教程-运维社区

0x13 验证设置

在源设备删除一个 123456 的目录;

开源同步软件 Syncthing 图文教程-运维社区

目标设备上也同步删除;

开源同步软件 Syncthing 图文教程-运维社区

源设备新建一个 000 的目录

开源同步软件 Syncthing 图文教程-运维社区

目标设备也同步了 000 目录

开源同步软件 Syncthing 图文教程-运维社区

修改高级设置中的文件夹类型来验证,将源设备设置为仅发送,目标设备设置为仅接收;

开源同步软件 Syncthing 图文教程-运维社区
开源同步软件 Syncthing 图文教程-运维社区
开源同步软件 Syncthing 图文教程-运维社区
开源同步软件 Syncthing 图文教程-运维社区

在目标设备上创建一个 111 的目录;

开源同步软件 Syncthing 图文教程-运维社区

刷新源设备目录没有将 111 这个目录同步到源设备

开源同步软件 Syncthing 图文教程-运维社区

人已赞赏
文章教程

CentOS 8.3 部署 Zabbix 5.2 图文教程

2021-1-21 8:58:21

文章教程

CentOS 命令查看分区的方式

2021-1-25 13:20:40

个人中心
今日签到
有新私信 私信列表
搜索