这篇文章介绍的是开源同步软件 Syncthing 的基础使用以及自己服务器的搭建过程
是什么
贴上 Github 地址:Syncthing
是一款可以进行同步的软件,不同于各种“云”(谷歌Sync、坚果云),这款软件没有云端服务
p2p 模式进行数据同步,不存在第三方中心,因此可以认为数据是安全的
如果两个客户端在同一个局域网,则会直接依赖于局域网进行数据传输
如果两个客户端不在同一个局域网,则会通过中继服务器
进行传输,中继服务器可以用 default,全球各个地方都架设的有(用户自行架设的),但是用别人服务器的话,还是会担心一些安全问题,尽可能使用自己的服务器
简单描述下我是怎么发现的
开始使用 Logseq 的时候,我发现 Logseq 这个软件我直观的用途应该有两个:
- 办公时候在电脑上用
- 随拍、随记、读书,需要随时随地在手机上用
这样就涉及到了一个非常明显的问题:需要在 PC 端和手机端进行数据同步
考虑过几个方式:
- 通过 Github 做中心,PC 和手机都在使用前做拉取操作
- 卡在了手机端,尝试了很多软件,没有能很方便的支持的
- 通过云硬盘同步工具
- 找了几个遇到各种问题
- 配置麻烦
- 数据需要在别人的云端
后来发现了 Syncthing,简单了解了之后发现这个就是我想要的
本来以为会比较困难,没想到使用起来太简单了
怎么用
下载地址:自己直接去 Github 上下载最新版就行
想快速使用的话,就在自己家里面试试,两个手机都连上家里局域网,都安装上这个软件
- 添加设备
- 添加共享的文件夹
共享文件夹中有要共享的设备选项,勾上要共享的设备,对方手机上就会收到提示,确定了选择一个要保存到的目录
这样两个目录就能进行数据同步了
电脑端的使用
下载电脑版的之后,启动可执行文件,会打开一个命令窗口,不要关闭它
同时会在浏览器上打开 GUI 地址:127.0.0.1:8384
操作方式跟手机端是一样的
并且电脑上还会推送附近的客户端
操作举例
新增文件夹
文件夹路径,就是本地要同步的目录
共享:就是要共享的设备,因为可能会加进来很多设备
版本控制:暂没用到
忽略模式:就跟 .gitignore 类似,哪些是忽略同步的
高级里面有文件夹类型,可以选择发送与接收
基于这个有个用法:
比如我照片想做备份,那么就可以在用作备份的机器上设置为:仅接收,那么备份机器上的操作就不会同步到其他设备上
同时还会再去配置一下:“忽略删除操作”,这样的话,就可以做一个照片备份机制了
忽略删除操作配置
这个:Ignore Delete 就是,如果需要忽略删除,那么勾上就成,我这个不是备份机器,所以没有勾
Windows 的开机启动
这种同步工具按说应该是开机默认就启动的,Linux 下设置开机启动的方式就比较多了,这里主要说下 Windows
syncthing.exe
建立快捷方式
windows + R
shell:startup
就会打卡开机启动的目录,把快捷方式拖进去就可以了
发现/中继服务器
简单的了解了之后,就基本会用了
特别是在局域网中,同步的速度还是非常快的
可以完成一些很有用的操作,比如:
- 重装系统的时候,数据同步
- 家里两个手机之间或者手机与电脑之间想传文件时候
- 等等
但是大家想一下,如果不在本地局域网呢?
不在局域网的话,两个设备怎么建立关联呢
去看了文档后发现:
Syncthing 定义了”发现服务器”和“中继服务器”
Syncthing Discovery Server
和 Syncthing Relay Server
先放上文档:
简单的理解就是,发现服务器用于发现设备,中继服务器用于传输文件
当然了,虽然用到了服务器,但并不是说文件传输就是先上传到服务器上,另一个设备再从服务器上下载下来。不是这个样子的,Syncthing 只是通过中间服务器进行建立 P2P 的连接通道,实际上还是直接进行文件传输的,只不过传输中间需要经过中继服务器
参考该页面:
可以看到有很多可以用的,国内也有几台
但这种呢,是网友自己搭建的,每个人的可以自己搭建,没有自己服务器的话,可以用这些,但是建议还是用自己服务器搭建的,因为这样的话是绝对安全的
搭建自己的服务器
搜了下发现有对应的 docker,本来想尝试使用 dcoker,但是整了一波忽然意识到。这个东西需要用到生成的 ID,如果用 Docker 的话,一旦重启,这个 ID 就换了,换 ID 的成本还是有点儿大的,还是决定直接放在主机上合适
由于两个服务器的安装方式一样,我就直接写在一块儿了
下载/解压安装包
wget https://github.com/syncthing/discosrv/releases/download/v1.23.4/stdiscosrv-linux-amd64-v1.23.4.tar.gz
wget https://github.com/syncthing/relaysrv/releases/download/v1.22.1/strelaysrv-linux-amd64-v1.22.1.tar.gz
tar -zxvf stdiscosrv-linux-amd64-v1.23.4.tar.gz
tar -zxvf strelaysrv-linux-amd64-v1.22.1.tar.gz
启动执行
建议放到可执行目录下
cp stdiscosrv-linux-amd64-v1.23.4/stdiscosrv /usr/bin/
cp strelaysrv-linux-amd64-v1.22.1/strelaysrv /usr/bin/
使用 nohup 启动:
touch stdiscosrv.log
touch strelaysrv.log
nohup stdiscosrv > stdiscosrv.log 2>&1 &
nohup strelaysrv > strelaysrv.log -pools="" 2>&1 &
随后看对应的日志文件中,有打印 ID,自行找到即可
注意,一定要去看日志,比如启动中继服务时候,要加上 -pools=””,不然的话会去注册到公共的池子,加上这个之后就不会了,单单是自己私有的
放开相关端口
发现服务器:8443
中继服务器:22067 22070
客户端使用地址
发现服务器:
https://ip_address:port/?id=your_id
中继服务器地址:
relay://ip_address:port/?id=your_id
客户端配置
以 PC 端举例
上面的“协议监听地址”填的是中继服务器的地址:
tcp4://0.0.0.0:22000, relay://xxx.xxx.xxx.xxx:22067?id=your_id
也可以加上 default,中间用英文逗号分割,代表两个都用,哪个能用用哪个
下面的“全局发现服务器填的是发现服务器的地址:
https://xxx.xxx.xxx.xxx:8443/?id=your_id
同样也可以加上 default,如:
https://xxx.xxx.xxx.xxx:8443/?id=your_id,default
尾声
以上,就是 Syncthing 的使用方式,亲测非常好用
可以用来做非常多的事情
来源地址:Syncthing使用以及服务器搭建
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:www.88531.cn资享网,谢谢!^^