Syncthing 是一个免费的开源文件同步应用程序,用于通过互联网在多个远程设备之间同步文件。Syncthing 不会将您的文件上传到Nextcloud 之类的中央服务器,而是直接在您的设备之间交换您的数据。在您的设备之间传输时,您的所有数据都使用 TLS 加密。Syncthing 适用于 Linux、BSD、macOS、Windows、Android 和 Solaris。
在 Debian/Ubuntu上安装 Syncthing
步骤 1. 在我们安装任何软件之前,通过在终端中运行以下命令来确保您的系统是最新的,这一点很重要:
sudo apt update
sudo apt upgrade
sudo apt install gnupg2 curl apt-transport-https
步骤 2. 在 Debian 11 上安装 Syncthing。
默认情况下,Syncthing 在 Debian 11 基础存储库中可用。现在运行以下命令将 Syncthing 存储库添加到您的系统:
echo "deb https://apt.syncthing.net/ syncthing release" > /etc/apt/sources.list.d/syncthing.list
接下来,使用以下命令导入 GPG 密钥:
curl -s https://syncthing.net/release-key.txt | apt-key add -
最后,使用以下命令更新 apt 包并安装 Syncthing:
sudo apt update
sudo apt install syncthing
验证 Syncthing 版本:
syncthing --version
步骤 3. 为 Syncthing 创建一个 Systemd 服务。
现在我们在两台服务器上创建一个systemd
服务文件来管理 Syncthing:
nano /etc/systemd/system/syncthing@.service
添加以下行:
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target
StartLimitIntervalSec=60
StartLimitBurst=4
[Service]
User=%i
ExecStart=/usr/bin/syncthing -no-browser -gui-address="0.0.0.0:8384" -no-restart -logflags=0
Restart=on-failure
RestartSec=1
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true
# Elevated permissions to sync ownership (disabled by default),
# see https://docs.syncthing.net/advanced/folder-sync-ownership
#AmbientCapabilities=CAP_CHOWN CAP_FOWNER
[Install]
WantedBy=multi-user.target
然后保存并关闭文件,重新加载systemd
守护程序以应用更改:
sudo systemctl daemon-reload
sudo systemctl enable syncthing@root.service
sudo systemctl start syncthing@root
步骤 4. 访问 Syncthing Web 界面。
成功安装后,打开您的 Web 浏览器并使用 URL 访问 Syncthing Web UI 。您将被重定向到 Syncthing Web 界面,如下所示:http://your-server-ip-address:8384
注意:请记得放行web管理端的8384端口和同步数据使用的22000端口
接下来你就可以使用 Syncthing 来远程文件同步。如需更多帮助或有用信息,我们建议您查看官方 Syncthing 网站。
使用 Syncthing Web UI
我们将使用 同步 WebUI 作为本文中 Syncthing 的接口。 首先,我们需要添加设备,以便我们可以在它们之间进行同步。
显示您的设备 ID
在 Syncthing 中,设备由唯一的长字母数字字符串标识。 这个字符串被称为 设备编号. 要查看您的设备 ID,请选择 操作 > 显示 ID. 此 ID 应仅与您打算与之同步的设备共享。 显示 ID 还将向您显示可以通过智能手机扫描的二维码。
添加设备
要添加设备,请单击 添加远程设备 Syncthing Web UI 右下角的按钮。 它会自动识别本地网络上安装了 Syncthing 的设备。 如果您要同步的设备未显示,请手动输入第二台设备的 设备编号 在给定的文本字段中。 然后点击 Save 按钮。
另一台设备将收到您要与其连接的通知。 点击 添加设备 按钮,第二个设备将被添加到集群中。
等待几秒钟,然后第二个设备将显示为 连接的 在里面 远程设备 列表。
添加文件夹
现在我们已经成功地将一个设备添加到我们的集群中,我们可以开始与它同步了。 但首先,我们需要告诉它要同步哪些文件夹。 要添加用于同步的文件夹,请单击 添加文件夹 中的按钮 文件夹 Syncthing Web UI 部分。
它将显示一个窗口,您可以在其中输入 文件夹路径 您要同步的文件夹。
要选择要同步的设备,请转到 分享 选项卡并检查应同步此文件夹的设备。
点击后 Save 选中的设备将收到您要与他们共享此文件夹的通知。 他们可以接受或拒绝请求。 如果他们选择接受它,现在将询问该通知接收机器上的路径应该同步文件夹(发送通知的位置)。 询问的路径将是 在接收机器上.
文件夹同步选项
在 Syncthing 中可以同步三种类型的文件夹。
- 发送和接收(默认)
- 只发送
- 只接收
可以通过单击文件夹然后单击来访问这些选项 编辑 按钮
然后在下 高级 选项卡,选择 文件夹类型
结论
Syncthing 是一个非常有用的应用程序,可以同时在各种设备之间进行同步。 它允许通过“文件夹类型”选项精细控制应如何共享任何内容。 它也可以用于备份,比如实时异地备份网站的文件等。
More
通过 journalctl
命令可以查看 Syncthing 运行日志:
journalctl -e -u syncthing@root.service
通过 systemctl status
命令可以查看 Syncthing 运行状态:
systemctl status syncthing@root.service
卸载:
sudo apt remove syncthing