手把手教你在Ubuntu上部署Syncthing:实现跨设备安全文件同步

简介

Syncthing 是一款开源的点对点文件同步工具在 Github 收获了 65.7kstar,它允许用户在多个设备之间安全地同步文件,而无需将数据存储在外部服务器上。Syncthing通过加密通信确保数据传输的安全性,支持跨平台操作,并能在后台自动同步文件变更。本文将指导你如何在Ubuntu环境下安装并配置Syncthing,实现设备间的文件共享与同步。

功能特点简介

Syncthing的核心优势在于:

  • 去中心化:直接在设备间同步,不依赖云服务。
  • 安全性:使用加密通信,保护数据传输。
  • 易用性:跨平台支持,易于设置和管理。
  • 实时同步:自动检测文件变更并同步。

image.png

接下来,我将一步一步教大家如何进行安装和部署!!

准备工作

  • 准备一台云服务器

若尚未拥有服务器,可前往 雨云官网 https://rainyun.ivwv.site 进行注册,新用户有专属优惠。

开始部署

1. 安装依赖

首先,安装必要的软件包:

sudo apt-get install curl wget nano -y

2. 下载Syncthing二进制文件

从Syncthing的官方GitHub页面下载最新的二进制文件:

curl -s https://api.github.com/repos/syncthing/syncthing/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -

解压缩文件并将Syncthing二进制文件移动到/usr/bin/目录:

tar xvf syncthing-linux-amd64*.tar.gz
sudo mv syncthing-linux-amd64-*/syncthing /usr/bin/

验证Syncthing的安装位置和版本:

which syncthing
syncthing --version

3. 配置Syncthing为系统服务

创建一个新的systemd服务文件:

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

插入以下配置:

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

[Service]
User=%i
ExecStart=/usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

[Install]
WantedBy=multi-user.target

保存文件并退出编辑器。重新加载systemd管理器以应用更改:

sudo systemctl daemon-reload

4. 配置防火墙

为Syncthing开放端口:

sudo ufw allow syncthing
sudo ufw allow syncthing-gui

重新加载防火墙并验证:

sudo ufw reload
sudo ufw status

5. 初始化Syncthing节点

启动Syncthing服务并初始化配置:

sudo systemctl start syncthing.service

检查配置目录:

ls -ah ~/Sync
ls -ah ~/.local/state/syncthing/

编辑Syncthing配置文件:

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

<gui>部分,将tls=false更改为tls=true以启用安全访问。

6. 设置Syncthing用户和密码

确保端口8384处于监听状态:

ss -tulpn | grep 8384

访问Syncthing的Web管理界面(例如:https://your_domain:8384/),设置管理员用户和密码,并启用HTTPS。

image.png

单击GUI选项卡,然后输入你的管理员用户和密码。请务必选中选项Use HTTPS for GUI 。按**“保存”**确认你的更改。

image.png

现在你将被重定向到syncthing登录页面。从那里输入你的用户名和密码,然后单击登录

image.png

如果你的配置成功,你将看到一个同步仪表板,如下所示:

image.png

下面你可以看到来自node2的同步仪表板。

image.png

7. 连接 Syncthing 实例

至此,你已经完成了两台Almalinux服务器上syncthing的安装。现在是连接两个同步实例的时候了,这可以通过 Web 管理仪表板来完成。

node1仪表板上,单击操作并选择显示ID以获取节点ID的详细信息。

image.png

可以看到node1实例的ID和二维码。复制node1 ID ,你将需要它来连接到node2实例。

image.png

粘贴node1的ID,并输入名称node1

image.png

接下来,转到**“Sharing”选项卡。在“Unshared Folders”部分中,选中“Default Folder”选项以将目标文件夹共享到node1** 。

另外,请务必选中**“Auto Accept”选项,以自动创建或共享 node1 在默认路径中通告的文件夹。
单击
“Save** **”**进行确认。

image.png

返回到node1仪表板,你应该会看到来自node2的请求消息。单击**“Add Device”**进行确认。

image.png

出现提示时,单击**“Save** 进行确认。另外,请务必检查node2的设备 ID。

image.png

接下来,你将收到另一条通知,表明node2实例将共享文件夹Default Folder ,单击Share进行确认。

image.png

该过程完成后,你可以在node1上看到以下信息:

  • 路径为**/home/tom/SyncDefault Foldernode2共享**。
  • Remote Devices 部分,你可以看到状态为Up To Date 的node2

image.png

现在检查node2仪表板,你应该看到类似的信息,默认文件夹node1共享。此外,你还可以在远程设备部分看到状态为Up to Date 的node1

image.png

8. 测试文件同步

至此,你已经完成了两个同步实例之间共享文件夹的配置。现在,让我们尝试在共享目录上创建新文件以验证两个同步实例之间的同步。

node1服务器上,移动到**~/Sync**目录并执行以下命令来创建新文件。

cd ~/Sync/
touch file{1..50}.txt
ls -ah

image.png

现在移至node2服务器并转到**/Sync**目录。然后,验证**/Sync**目录中的列表文件。

cd ~/Sync
ls -ah

如果同步成功,你应该会看到从node1服务器创建的文件。

image.png

至此,你的同步安装就成功了。

相关链接
我的博客:https://blog.ivwv.site
雨云官网:https://rainyun.ivwv.site

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vvw&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值