前言

之前为了同步自己收集的插画和音乐,鼓捣了半天rsync搞出了一套同步方案,虽能满足要求,但使用还是很复杂,尤其是需要一台中心服务器。后来发现了Syncthing这款P2P同步工具,无需中心服务器即可完成多设备间的文件同步。

本文将介绍Windows、Linux和Android系统客户端的安装部署,以及基本的使用方法。

安装

Windows

2025.8.21 更新:Syncthing 2.0 在近期发布,原仓库仅支持到1.30.x版本并已在今年4月归档,已将本文中的SyncTrayzor仓库链接替换为新仓库。

如通过原仓库安装SyncTrayzor,请不要在Web界面中更新Syncthing到2.x版本,否则会导致Syncthing无法启动!

如需更新,请卸载老版本的SyncTrayzor,在以下的新仓库中下载支持2.x版本的新版本。

Windows系统可以使用Syncthing Windows Setup(GitHub)或自带托盘图标的SyncTrayzor(GitHub)。

通过 Syncthing Windows Setup 安装

可以通过安装程序来配置Web界面端口和开机自启等选项:

SyncTrayzor 开机自启

安装完成后,打开软件主界面,点击文件-设置:

勾选“随开机自动启动”即可。

Android

2025.9.4 更新:原Syncthing官方版已经于去年底宣布停更,已将链接替换为Syncthing-Fork的下载链接。

同时更新了从官方版Syncthing升级到Syncthing-Fork的教程。

Android系统可以在F-DroidGitHub下载安装包。

从官方版Syncthing更新到Syncthing-Fork

首先,在官方版Syncthing中导出配置:

然后,在Syncthing应用的设置界面将其完全停止运行,安装过渡版本1.29.7.1,安装并给它授予必要权限后,导入配置:

导入后,可能会提示导入失败,此时请返回主界面,检查之前设置的共享文件夹是否正常。

检查无误后,可删除原来的Syncthing官方版,安装最新版Syncthing-Fork。

macOS

在此下载安装macOS版不要问我为啥只有这一个链接,因为不用Mac

Linux

如果使用的是带图形界面的Linux,可以在官方文档处找到一些Linux用的托盘图标/图形界面(类似Windows下的SyncTrayzor)。本文侧重于命令行环境下的配置。

大部分Linux软件源中都含有Syncthing的服务端,直接使用apt、dnf等包管理器安装即可。

添加官方软件源(仅限Debian/Ubuntu)

2025.7.8 更新:近期发现Syncthing官方软件源开始使用GitHub分发软件包(有几率通过GitHub下载),如果无法保证稳定访问GitHub,请慎重使用此方法,直接使用系统软件源内的Syncthing软件包!

2025.8.21 更新:Syncthing已在近期发布2.0版本,如之前已添加过软件源,请将/etc/apt/sources.list.d/syncthing.list中的stable改为stable-v2,即可获取最新版本。

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-v2" | 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

此时会显示出一个二维码,手机端可以点击二维码图标,直接扫码:


手机端添加完成后,另一端会出现添加设备的提示:

如果使用的是SyncTrayzor,还会很方便的弹出这样的提示

点击添加设备后,可以给设备起一个名字,这样就完成双方设备的添加了。

开始同步

两个设备都添加好彼此以后,就可以进行同步了。

Web端到移动端

点开需要共享的文件夹,点击右下角的选项

随后点击共享,勾选设备(也可以在右边设置一个密码):

然后手机会收到一个通知:

点击同意后,就可以设置共享目录了。此处设置与添加文件夹大同小异。

移动端到Web端

点开需要分享的文件夹后,打开需要共享的设备开关:

此时Web页面会收到通知:

点击添加后,就可以设置共享目录了。此处设置与添加文件夹大同小异。

设置完毕后,就可以快乐的开始同步了~

后记

其实这款同步软件的功能很强大,支持忽略模式(类似gitignore?)、版本控制等功能,大家可以探索一下,如果有比较实用的技巧,也会抽时间更新一下。