前言
之前为了同步自己收集的插画和音乐,鼓捣了半天rsync搞出了一套同步方案,虽能满足要求,但使用还是很复杂,尤其是需要一台中心服务器。后来发现了Syncthing这款P2P同步工具,无需中心服务器即可完成多设备间的文件同步。
本文将介绍Windows、Linux和Android系统客户端的安装部署,以及基本的使用方法。
安装
Windows
自带托盘图标的SyncTrayzor虽然更好用,但是最后一次更新是在2021年,有一点点老……
不过不影响使用就是啦。这两款软件的安装和配置教程下面都会写。
Windows系统可以使用Syncthing Windows Setup(GitHub)或自带托盘图标的SyncTrayzor(GitHub丨蓝奏 hvc7)。
通过 Syncthing Windows Setup 安装
可以通过安装程序来配置Web界面端口和开机自启等选项:
SyncTrayzor 开机自启
安装完成后,打开软件主界面,点击文件-设置:
勾选“随开机自动启动”即可。
Android
Android系统可以在F-Droid下载官方提供的安装包。
macOS
在此下载安装macOS版。不要问我为啥只有这一个链接,因为不用Mac
Linux
如果使用的是带图形界面的Linux,可以在官方文档处找到一些Linux用的托盘图标/图形界面(类似Windows下的SyncTrayzor)。本文侧重于命令行环境下的配置。
大部分Linux软件源中都含有Syncthing的服务端,直接使用apt、dnf等包管理器安装即可。
添加官方软件源(仅限Debian/Ubuntu)
Debian、Ubuntu系统可通过添加官方软件源获取最新版本。
首先,导入公钥:
sudo mkdir -p /etc/apt/keyrings
sudo curl -Lo /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
然后,根据个人需要,导入stable(稳定版)或candidate(测试版)的软件源:
# 稳定版(stable)
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
# 测试版(candidate)
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing candidate" | sudo tee /etc/apt/sources.list.d/syncthing.list
最后,安装Syncthing:
sudo apt update
sudo apt install syncthing
配置其它主机访问(可选)
Syncthing的Web界面默认配置成仅本机才可以访问,如果需要支持其他主机访问,需要修改一下配置文件。
Web界面
启动Syncthing后,点击右上角操作-设置
:
点击图形用户界面
,将GUI 监听地址
修改为0.0.0.0:8384
即可。
如果出现一行黄字显示
GUI 地址已被启动选项覆盖
,则需要检查所使用的图形界面有没有提供修改地址的选项。以Windows上的SyncTrayzor为例:
命令行
如果是初次使用Syncthing,需要先运行一下Syncthing,生成一个默认配置文件。
$ syncthing
[start] 2023/12/29 07:41:15 INFO: syncthing v1.27.1 "Gold Grasshopper" (go1.21.5 linux-arm64) debian@github.syncthing.net 2023-12-11 06:44:04 UTC [noupgrade]
[start] 2023/12/29 07:41:15 INFO: Generating ECDSA key and certificate for syncthing...
[start] 2023/12/29 07:41:15 INFO: Default folder created and/or linked to new config
[start] 2023/12/29 07:41:15 INFO: Default config saved. Edit /home/pi/.local/state/syncthing/config.xml to taste (with Syncthing stopped) or use the GUI
然后打开配置文件(一般在~/.local/state/syncthing/config.xml
),找到此处:
<gui enabled="true" tls="false" debugging="false" sendBasicAuthPrompt="false">
<address>127.0.0.1:8384</address>
<apikey>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</apikey>
<theme>default</theme>
</gui>
将127.0.0.1:8384
改为0.0.0.0:8384
即可。
设置完成后,再次启动、进入Web界面会显示如下的信息,按照提示设置密码即可。
配置开机自启
如需随桌面环境的开机自启,可参考官方文档。
Syncthing自带了systemd服务文件,直接启用即可:
sudo systemctl enable --now syncthing@用户名
开始备份
添加文件夹
Windows版和Linux版安装Syncthing后,会自动在用户主目录下创建一个Sync
文件夹作为默认文件夹(Default Folder),Android版则是会将系统相册(/storage/emulated/0/DCIM
)作为默认共享添加。
首先,点击添加文件夹
:
打开添加文件夹界面:
添加设备
在将文件夹同步到其他设备之前,需要先将两台设备互相添加。此处以移动端(Android)添加电脑(Windows/Linux)为例。
首先,打开移动端的添加设备界面:
然后,打开Web界面右上角的操作-显示 ID
:
此时会显示出一个二维码,手机端可以点击二维码图标,直接扫码:
手机端添加完成后,另一端会出现添加设备的提示:
点击添加设备后,可以给设备起一个名字,这样就完成双方设备的添加了。
开始同步
两个设备都添加好彼此以后,就可以进行同步了。
Web端到移动端
点开需要共享的文件夹,点击右下角的选项
:
随后点击共享,勾选设备(也可以在右边设置一个密码):
然后手机会收到一个通知:
点击同意后,就可以设置共享目录了。此处设置与添加文件夹大同小异。
移动端到Web端
点开需要分享的文件夹后,打开需要共享的设备开关:
此时Web页面会收到通知:
点击添加后,就可以设置共享目录了。此处设置与添加文件夹大同小异。
设置完毕后,就可以快乐的开始同步了~
后记
其实这款同步软件的功能很强大,支持忽略模式(类似gitignore?)、版本控制等功能,大家可以探索一下,如果有比较实用的技巧,也会抽时间更新一下。
Comments NOTHING