Syncthing是一款开源的点对点文件同步工具,旨在安全地在多个设备之间同步文件。与基于云的服务不同,Syncthing直接在设备之间运行,不会将数据存储在外部服务器上,让用户完全掌控自己的文件和隐私。它使用加密通信,确保数据传输安全。

Syncthing可以在计算机、移动设备和服务器之间同步文件,是一款功能强大且注重隐私的实时文件同步解决方案。它易于配置、跨平台支持,并且在后台运行,检测到文件更改时自动同步。

本教程将介绍如何在Debian 12服务器上安装Syncthing文件同步软件,设置Syncthing身份验证,连接两台Syncthing服务器,以及在Syncthing服务器之间设置目录共享和同步。

前提条件

开始本教程前,请确保满足以下条件:

- 两台或多台Debian 12服务器

- 具有管理权限的非root用户

在Debian上安装Syncthing

Syncthing是一款安全的点对点同步工具。在本节中,你将通过官方Syncthing仓库使用APT包管理器安装Syncthing。

首先,运行以下命令更新Debian软件包索引并安装一些基本依赖。

sudo apt update && sudo apt install gnupg2 curl apt-transport-https -y

Debian 12安装Syncthing文件同步工具教程

使用以下命令为Debian系统添加Syncthing GPG密钥和仓库。

curl -fsSL https://syncthing.net/release-key.txt | \
sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/syncthing.gpg

echo "deb https://apt.syncthing.net/ syncthing release" | \
sudo tee /etc/apt/sources.list.d/syncthing.list

Debian 12安装Syncthing文件同步工具教程

接下来,运行以下apt命令刷新软件包索引并安装syncthing包。输入Y确认安装。

sudo apt update && sudo apt install syncthing

Debian 12安装Syncthing文件同步工具教程

安装完成后,使用以下命令检查syncthing二进制文件并查看其版本。

which syncthing

syncthing --version
syncthing --help

如下图所示,Syncthing 1.27已安装在/usr/bin/syncthing路径下。

Debian 12安装Syncthing文件同步工具教程

配置UFW防火墙

安装Syncthing后,你将安装UFW(Uncomplicated Firewall),为OpenSSH和Syncthing服务开放端口,然后在Debian服务器上启动并启用UFW。

使用以下apt命令安装ufw包。

sudo apt install ufw -y

运行以下命令启用OpenSSH配置文件并激活UFW。输入y确认,当UFW运行并启用时,你将看到输出"Firewall is running and enabled on system startup"。

sudo ufw allow OpenSSH
sudo ufw enable

接下来,运行以下ufw命令启用syncthing和syncthing-gui配置文件。

sudo ufw allow syncthing
sudo ufw allow syncthing-gui

最后,运行以下命令检查UFW状态。UFW应处于"active"状态,并启用了OpenSSH、syncthing和syncthing-gui配置文件。

sudo ufw status

配置Syncthing

在本节中,你将通过为用户启动syncthing服务并设置Syncthing Web仪表板的本地IP地址来配置Syncthing。在本示例中,我们将使用两台Debian服务器:debian1和debian2。

使用以下命令登录到你的用户。在本例中,debian1使用user1,debian2使用user2。

su - user1

现在运行以下systemctl命令启动、启用并验证syncthing@user1.service。对于使用user2的debian2服务器,服务名应变为syncthing@user2.service。

sudo systemctl enable --now syncthing@user1.service
sudo systemctl status syncthing@user1.service

如下图所示,syncthing@user1.service正在运行并已启用。

Debian 12安装Syncthing文件同步工具教程

接下来,使用nano编辑器打开Syncthing的配置文件~/.local/state/syncthing/config.xml。

nano ~/.local/state/syncthing/config.xml

在<gui ...>部分中,使用tls="true"启用安全TLS连接,并输入你的内部IP地址。在本示例中,debian1服务器IP地址为192.168.5.123,debian2服务器IP地址为192.168.5.120。

 <gui enabled="true" tls="true" debugging="false" sendBasicAuthPrompt="false">
 <address>192.168.5.123:8384</address>
 <apikey>GENERATED-API-KEY</apikey>
 <theme>default</theme>
 </gui>

完成后,保存文件并退出编辑器。

最后,运行以下systemctl命令重启Syncthing服务。此时,Syncthing应在本地IP地址上运行,并启用了安全TLS连接。

sudo systemctl restart syncthing@user1.service

设置Syncthing用户

此时,你的Syncthing已运行并启用了Web管理仪表板。现在你将为两台Syncthing服务器debian1和debian2设置用户身份验证。

打开Web浏览器,访问https://192.168.5.123:8384/。确保将IP地址替换为你的Debian服务器的IP地址。你将看到Syncthing管理仪表板。

点击"Settings"按钮为Syncthing设置用户名和密码。

Debian 12安装Syncthing文件同步工具教程

在"GUI"部分,输入你的用户名和密码,然后点击"Save"确认。

Debian 12安装Syncthing文件同步工具教程

现在你将被重定向到Syncthing登录页面。输入你的用户名和密码登录。

Debian 12安装Syncthing文件同步工具教程

如果登录成功,你将看到以下Syncthing仪表板。

Debian 12安装Syncthing文件同步工具教程

连接Syncthing设备

现在你已经设置了Syncthing用户和密码身份验证,让我们将debian2服务器上的Syncthing连接到debian1。

在debian2服务器上,选择Action > Show ID以显示服务器ID或身份标识。这将显示debian2服务器的二维码,你可以复制此设备ID。

Debian 12安装Syncthing文件同步工具教程

点击"Copy"按钮。

Debian 12安装Syncthing文件同步工具教程

现在转到debian1仪表板,在Remote Devices部分点击"Add Remote Device"。

Debian 12安装Syncthing文件同步工具教程

在弹出窗口中,粘贴debian2设备ID,然后点击Save。

Debian 12安装Syncthing文件同步工具教程

接下来,转到debian2仪表板,你将看到如下配置信息:

Debian 12安装Syncthing文件同步工具教程

点击"Add Device"确认并将debian2服务器连接到debian1。

如果一切正常,你可以从debian1仪表板看到debian2服务器已连接。

Debian 12安装Syncthing文件同步工具教程

在设备之间同步文件夹

在debian1和debian2服务器连接后,你现在可以设置共享目录并在两台服务器之间同步文件。

确保在debian1仪表板上,在Folder部分你将看到状态为"Unshared"的"Default Folder"。

Debian 12安装Syncthing文件同步工具教程

点击"Edit"按钮共享此文件夹。

- 在"Sharing"选项卡中,点击debian2以共享并与debian2服务器同步此文件夹。

- 在"File Versioning"选项卡中,根据需要选择文件版本控制方法。

- 点击Save确认。

Debian 12安装Syncthing文件同步工具教程

现在转到debian2仪表板,你将看到如下通知:

点击Share确认并共享文件夹。

Debian 12安装Syncthing文件同步工具教程

如果文件夹共享成功,你将看到状态为"Shared"的"Default Folder"。在下图中,debian1服务器已与debian2服务器共享。

Debian 12安装Syncthing文件同步工具教程

总结

恭喜!你已成功在两台Debian 12服务器上完成Syncthing的安装。你还学习了如何通过仪表板连接Syncthing设备,以及在不同设备或机器之间同步文件夹和目录。