博主最近想要从Windows上传文件到Linux上,然后几台Linux之间同步,传的有点多,想整一个自动上传的,类似于同步网盘的东西。搜索一番后,发现syncthing满足我的要求,简单方便,速度直接和网络挂钩,跨平台软件。

环境:
Win10 X64 LSTC 2021,我下文一般说电脑
centos 7 X64 2009,我下文一般说VPS

一、Linux下安装syncthing

1、访问https://github.com/syncthing/syncthing/releases查看最新版本,现在最新版是1.27.2,在shell中直接使用:

wget https://github.com/syncthing/syncthing/releases/download/v1.27.2/syncthing-linux-amd64-v1.27.2.tar.gz

其他系统自己选择。下载好了后,解压缩文件夹:

tar xzvf syncthing-linux* && rm -rf syncthing-linux*.tar.gz
cd syncthing-linux*
cp syncthing /usr/local/bin
cd ~
rm -rf syncthing*

上面的命令一行一行执行,执行完后,syncthing就安装在/usr/local/bin目录下面了,其实就是一个二进制文件,然后使用以下命令来运行:

syncthing

返回一堆信息,第一次启动会生成配置,然后给的内网地址我们是进不去的,这时候需要修改成外网地址才行,先使用Ctrl+C退出。
然后编辑/root/.local/state/syncthing/config.xml文件,将127.0.0.1:8384改成0.0.0.0:8384即可,大概在第55行左右,建议使用WinSCP或者宝塔里面修改。

2、防火墙需要放行相关端口才能从外网访问到syncthing,这里我建议安装宝塔面板,方便快捷。syncthing依赖的端口如下:

22000 (TCP)
8384 (TCP)
21027 (UDP)
44647 (UDP)
37269 (UDP)

这里我是个人使用,所以只开放22000 (TCP)8384 (TCP)8384Web访问控制端口22000节点访问端口,如果你需要将你这台机器作为公共节点,那么其他端口也要放行。
我们在宝塔面板左侧安全中添加放行,如图:
图1

3、再次使用syncthing启动,然后在浏览器访问http://IP:8384,就可以进入Syncthing界面。
是否允许匿名报告根据自己情况选择,我们现在已经进入主界面了。
图2
图3

4、我们首先给GUI设置一个密码,点击图片位置设置
图4
然后出现下图:
图5
这里我们可以设置设备名称和是否自动更新,设置好了后切换到图形用户界面
图6
设置好用户名和密码,开启登录页面HTTPS。
然后切换到链接,如果你有一台机器有公网IP(我这里是VPS有公网IP),那么可以将启用NAT穿透全局发现启用中继进行关闭,直接使用点对点发现,相当于私人同步,这个不会将信息发送到syncthing服务器,速度也快。
如果两台互传的电脑都没有公网IP,我建议保持默认,不然添加不上。
图7
全部修改完成,我们点击保存,刷新后输入密码就可以登陆了。首次登录他会有个风险提示,直接确定就行,这时网页图标上也没有感叹号了,说明OK了。
图8

二、Windows下安装syncthing

1、访问https://github.com/syncthing/syncthing/releases查看最新版本,现在最新版是1.27.2,展开全部,直接使用:

https://github.com/syncthing/syncthing/releases/download/v1.27.2/syncthing-windows-amd64-v1.27.2.zip

其他系统自己选择。下载好了后,解压缩文件夹:
图9
直接运行syncthing.exe,然后浏览器自动弹出主界面,设置和Linux一样,因为我们没有设置开机运行,电脑也不是公网,设不设置NAT穿透、中继都无所谓,因为我是去连别人,不是别人连我,不用设置登录密码,防火墙注意放行838422000端口。

三、添加同步

1、首先我们在没有公网的电脑上添加我们的VPS同步地址,点击下图:
图10
图10.5
我们需要填入设备 ID,其他不动,默认就行。那这个设备 ID在哪里找那,我们回到VPS这边,点击下图位置:
图11
图12
直接点击复制,然后把这串数字填到刚才电脑上的设备 ID,然后切换到高级,在地址列表中填入tcp://VPS的IP:22000,然后保存。因为我们的VPS已经关闭了启用中继,是纯私有状态了,这里不填IP的话,VPS那边是无法添加上的。
图13
现在来到VPS这边,已经弹出添加选项了,点击添加设备
图14
稍等一下,我的电脑和VPS就已经连接上了,显示已连接(未使用),当然我们也可以添加多个设备,通过暂停来控制多个设备的启用,这在多设备之间同步文件时比较好用。
图15

2、现在在我的电脑上点击添加我们要同步的文件夹,如下图:
图16
然后我们在常规选项卡中设置文件夹标签文件夹路径
图17
然后在共享选项卡中选择我们要同步到的VPS
图18
然后切换到高级选项卡,我这里只作为上传,不需要下载VPS的数据,所以文件夹类型这里我选择了仅上传,如果要双向同步建议保持默认:
图19
最后点击保存,然后VPS上就会弹出添加文件夹的提示,我们选择添加:
图20
在VPS上的常规选项卡上,文件夹路径就要改成VPS上的保存位置:
图21
在VPS上的高级选项卡上,文件夹类型我就改成了仅接受,如果要双向同步建议保持默认:
图22
VPS上保存后,syncthing就会自动开始同步,速度还可以,但是如果不想同步,可以在电脑端或者VPS端选择暂停:
图23
要同步时在继续就行了。

3、按照上面的设置后,如果你在电脑上删除了文件,那么同步端的VPS上也会同步删除,对于双向同步来说,这没啥问题,但是对于备份的人来说,这就不友好了,所以我们还要在VPS上的syncthing设置下不同步删除指令。
打开VPS的syncthing的操作下的高级
图24
找到文件夹,找到我们要同步的文件夹,再展开,选项里面有个Ignore Delete选项,勾上它后保存:
图25
图26
现在就算电脑上删除了文件夹,VPS上也不会删除了,会显示忽略删除
图27

四、其他
syncthing算是一个轻量化的同步软件,因此我没有设置为开机自启动,要用的时候打开,不用的时候shell后台直接Ctrl+C关闭。
syncthing中可以添加多个设备和多个同步文件夹,可以实现电脑上传到1个VPS,然后这个VPS又自动同步到其他多个VPS上,比较适合多地备份。
其他高级功能就请各位自己探索了。

参考文献:
https://www.moerats.com/archives/642/
https://www.moewah.com/archives/1127.html
https://www.right.com.cn/forum/thread-2576246-1-1.html
https://lala.im/4731.html 这个文章里有自启动脚本

最后修改:2024 年 01 月 27 日
如果觉得我的文章对你有用,请随意赞赏