详细步骤记录如何用Syncthing实时同步树莓派上的文件

在本教程中,我将向您展示如何在Raspberry Pi上使用Syncthing软件同步文件。

Raspberry-Pi-Syncthing-Thumbnail.jpg

Syncthing是一款旨在实时同步树莓派等多个设备之间文件的软件。

数据在节点之间使用TLS进行同步。这种加密将提供安全性和隐私性,使得数据在传输过程中很难被人窃取。

每个节点都需要通过使用强大的加密证书来识别自己。如果节点不能提供证书,将无法连接,确保不会有刁民轻易接入。

使用Syncthing,可以将文件从Windows、Mac OS或基于Linux的设备同步到Raspberry Pi。

Syncthing的客户端可用于这些操作系统,使其易于使用。

设备清单

在树莓派上使用Syncthing用到了如下的设备清单,点击链接直达优惠购买

建议

可选

我使用了Raspberry Pi 400测试了本教程,运行的是最新版本的Raspberry Pi OS Buster。

安装Syncthing到Raspberry Pi

在本节中,将学习如何使用简单的步骤轻松安装Syncthing软件到Raspberry Pi。

要安装软件,需要添加项目的PGP密钥,并将其包仓库作为源码添加。

1. 在给Pi安装文件同步软件之前,首先要更新系统。

可以运行以下两个命令来更新Raspberry Pi。

sudo apt update
sudo apt full-upgrade

2. 接下来,需要确保已经安装了apt-transport-https包。

这个包可以让包管理器处理通过HTTPS协议操作的源。默认情况下,不支持这个功能。

一般来说,现在大多数操作系统都提供了这个功能,但是,像Raspberry Pi OS Lite这样的修剪过的系统可能会删除。

可以运行下面的命令来安装所需的软件包。

sudo apt install apt-transport-https

3. 最后,将Syncthing PGP密钥添加到包管理器的密钥链中。

这些密钥旨在确保正在安装的软件包已被正确签名,并且不是来自未知的来源。

在Raspberry Pi上使用以下命令添加。

curl -s https://syncthing.net/release-key.txt | sudo apt-key add -

4. 添加了密钥后,现在可以添加存储库本身。

在这个Raspberry Pi项目中,使用Syncthing软件的稳定分支。

通过下面的命令将版本库添加到源列表中。

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

5. 从仓库安装Syncthing之前,需要更新软件包列表。

在设备上运行以下命令来刷新软件包列表。

sudo apt update

6. 最后,把Syncthing软件安装到Raspberry Pi上。

现在已经添加了软件包仓库,需要做的就是运行以下命令来安装软件。

sudo apt install syncthing

允许外部访问Syncthing Web界面

默认情况下,无法在设备上访问Syncthing网页界面,可以修改配置以允许外部访问。

1. 第一个任务是获取当前分配给Raspberry Pi的本地IP地址。

请注意,在完成本节之前,应该为Raspberry Pi设置一个静态IP地址

可以通过下面的命令来查看Pi的本地IP。

hostname -I

2. 在继续之前,需要运行一次Syncthing来生成配置文件。

在本指南中,我只会在pi用户下运行Syncthing。

syncthing

初次运行后,按CTRL+C键杀死应用程序。

3. 第一次运行后,Syncthing会创建需要的所有配置文件。

这个配置文件只有在用pi用户运行Syncthing软件时才能使用。

通过使用下面的命令,使用nano文本编辑器开始编辑所需的配置文件。

nano ~/.config/syncthing/config.xml

4. 在这个文件中,需要找到以下一行:

为了方便查找这一行,可以使用CTRL+W快捷键进行搜索。

<address>127.0.0.1:8384</address>

将这行定义的本地IP(127.0.0.1)替换为Pi的本地IP地址。

例如,使用Pi的IP,这一行最终会变成以下内容。

<address>192.168.0.193:8384</address>

使用本地IP地址,只限制同一本地网络的用户访问Web界面。

另外,如果想允许访问任何地址,请使用IP “0.0.0.0”。

5. 更改IP后,按CTRL + X,然后按Y,再按ENTER键保存文件。

在Raspberry Pi上设置Syncthing作为一项服务

Syncthing的Web界面现在可以在树莓派之外访问了,需要做最后一项任务:为软件创建和启用一个服务。该服务将允许Syncthing在系统启动时启动,并使其易于停止和重启。

1. 需要再次使用nano来为服务创建文件。

服务来自于Syncthing的官方GitHub。

运行以下命令,开始在”/lib/systemd/system “目录下写入文件。

sudo nano /lib/systemd/system/syncthing.service

2. 在该文件中,输入以下几行:

[Unit]
Description=Syncthing - Open Source Continuous File Synchronization
Documentation=man:syncthing(1)
After=network.target

[Service]
User=pi
ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0
Restart=on-failure
RestartSec=5
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

这几行决定了操作系统将如何处理Raspberry Pi上的Syncthing。

3. 输入所有行数后,按CTRL + X,然后按Y,再按ENTER键保存文件。

4. 创建了服务后,现在可以让它在启动时启动。

需要做的就是运行以下命令。

sudo systemctl enable syncthing

5. 接下来,启动服务,这样就可以开始访问Syncthing网络界面了。

为了启动服务,需要再次使用systemctl命令。

sudo systemctl start syncthing

6. 验证Syncthing服务是否在Raspberry Pi上启动。

可以用下面的命令来验证。

sudo systemctl status syncthing

如果服务已正确启动并正在运行,应该会看到消息中显示以下内容。

Active: active (running)

使用Raspberry Pi的Syncthing Web界面

现在应该有Syncthing软件在Raspberry Pi上运行着。终于可以继续配置软件,并添加一个设备来同步文件。为了使其更容易操作,我把它分成几个小部分。

网页界面使得设置和连接设备的过程非常简单。

连接到Syncthing网络界面

在使用网页界面之前,需要先在网页浏览器中加载它。

1. 要访问Web界面,需要知道Raspberry Pi的IP地址。

有了IP后,可以在你选择的网络浏览器中进入以下网址。

http://[PIIPADDRESS]:8384

无论你输入什么,端口号(8384)都必须保留在最后,因为这是Syncthing软件监听的地方。

2. 进入网址后,就会进入Syncthing的网页界面。

请注意,设置好用户名和密码后,需要先登录才能看到以下界面。

Raspberry-Pi-Syncthing-Initial-Website-With-Danger.jpg

确保同步接口的安全

默认情况下,Syncthing没有定义用户名和密码,任何用户都可以访问界面并调整你的设置。

为了阻止用户进行任何不必要的破坏,可以定义登录细节。

1. 如果你之前没有设置过用户名和密码,你会看到一条信息,警告你有危险。

为了快速进入设置页面,可以点击这个警告的 “设置 “按钮。

Raspberry-Pi-Syncthing-Changing-Password-in-Settings-Option-A.jpg

如果这条信息没有显示给你,也可以通过点击右上角的 “操作”(1.)下拉框,选择 “设置”(2.),找到设置页面。

Raspberry-Pi-Syncthing-Changing-Password-in-Settings-Option-B.jpg

2. 在弹出的设置页面内,需要改到 “GUI “标签。

点击弹出的顶部栏中的 “GUI “就可以换到这个选项卡。

Raspberry-Pi-Syncthing-Setting-Page-Goto-GUI.jpg

3. 在这个页面上,需要输入用户名(1.)和密码(2.)。

确保设置了一个不容易被猜到的安全密码。尽量使用字母、数字和符号的组合。

输入了这两点,你就可以点击 “保存 “按钮来保存你的修改(3.

Raspberry-Pi-Syncthing-Setting-a-Username-and-Password.jpg

4. 保存新密码后,会被踢出网页界面。

每次想使用Syncthing的界面时,都需要输入新的登录信息。

检索设备同步ID

Syncthing的工作原理是为每个设备生成一个唯一的ID。要在设备之间同步数据,每个设备必须添加其他设备的ID。

找到Raspberry Pi Syncthing设置的ID很容器,可以在网页界面中找到。

1. 回到网页界面的主页面,点击屏幕右上角的 “操作 “切换键(1.

在下拉框中,点击 “显示ID “选项(2.),弹出我们要的对话框。

Raspberry-Pi-Syncthing-Actions-Find-Show-ID.jpg

2. 在这个页面上,会看到识别字符串(1.)和与ID匹配的二维码(2.)。

识别字符串应该是50-56个字符,包含数字、字母和连字符。连字符会被系统忽略,但它是为了让ID更容易阅读。

需要将Raspberry Pi的ID添加到将要连接的其他设备上。同样,也需要添加他们的ID。

该ID作为Syncthing连接多个设备到同一池的方法的一部分。

Raspberry-Pi-Syncthing-Device-Identification.jpg

将设备添加到Raspberry Pi的同步池中

现在知道了如何检索设备ID,看看怎么如何添加另一个设备的ID。

记住,无论要添加什么设备,都必须同时添加Raspberry Pi的ID。否则,设备将无法连接。

1. 在Syncthing界面上,需要点击位于右下方的 “添加远程设备 “按钮。

点击这个按钮将带我们进入对话框,允许我们添加一个设备到同步池。

Raspberry-Pi-Syncthing-Adding-a-Remote-Device-Step.jpg

2. 在此对话框中,可以将想要的设备ID添加到池中。

在顶部的文本框(1.)中,输入要连接的设备的ID。由于ID相对较长,复制和粘贴ID可能会更容易。

完成后,可以点击 “保存 “按钮(2.)添加设备并开始连接过程。

Raspberry-Pi-Syncthing-Adding-a-Remote-Device-Options.jpg

3. 当两台Syncthing服务器都添加了对方的ID后,应该看到已经成功连接了。

Raspberry-Pi-Syncthing-Remote-Device-Successfully-Connected.jpg

与连接设备同步文件夹

现在有一个设备连接到Raspberry Pi Syncthing,可以尝试与设备共享一个文件夹。

在本节中,使用默认文件夹。在本例中,该文件夹位于Raspberry Pi上的”/home/pi/sync”。

1. 要开始编辑现有文件夹的共享设置,请单击该文件夹下方的 “编辑 “按钮。

该按钮将弹出该文件夹的设置对话框,可以调整它的共享对象。

Raspberry-Pi-Syncthing-Edit-Existing-Folders-Settings.jpg

2. 在文件设置对话框中,我们需要改成共享标签。

点击 “分享 “选项卡,可以换到这个选项卡。

Raspberry-Pi-Syncthing-Edit-Folder-Change-to-Sharing-Tab.jpg

3. 使用该对话框,可以选择要与之共享文件夹的设备(1.

一旦选择了要同步的设备,请点击 “保存 “按钮 (2.)。

Raspberry-Pi-Syncthing-Share-Folder-with-Connected-Device.jpg

请注意,在与其他设备共享文件夹后,必须在该设备上接受它,然后才会开始同步。

4. 现在应该看到文件夹已经开始同步了。

一旦完成同步,应该会看到文件夹和设备都被标记为 “最新”。

Raspberry-Pi-Syncthing-Successfully-Connected-and-Synchronizing.jpg

结论

现在你应该已经在Raspberry Pi上安装并运行了Syncthing,并知道如何使用它来同步不同设备之间的文件。

该软件是让多台电脑实时保持目录同步的最有效方法之一。

它甚至无需依赖第三方,如谷歌云或微软Azure来存储文件。

如果你在树莓Pi上设置Syncthing时遇到任何问题,欢迎在下面留言。

你也可以查看软件的官方文档,了解如何根据自己的需求配置软件。

平均: 0 / 5. votes: 0

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 详细步骤记录如何用Syncthing实时同步树莓派上的文件

赞 (0)

评论

4+3=