简介
Syncthing 是一款开源的点对点文件同步工具在 Github 收获了 65.7k 的 star,它允许用户在多个设备之间安全地同步文件,而无需将数据存储在外部服务器上。Syncthing通过加密通信确保数据传输的安全性,支持跨平台操作,并能在后台自动同步文件变更。本文将指导你如何在Ubuntu环境下安装并配置Syncthing,实现设备间的文件共享与同步。
功能特点简介
Syncthing的核心优势在于:
- 去中心化:直接在设备间同步,不依赖云服务。
- 安全性:使用加密通信,保护数据传输。
- 易用性:跨平台支持,易于设置和管理。
- 实时同步:自动检测文件变更并同步。
接下来,我将一步一步教大家如何进行安装和部署!!
准备工作
- 准备一台云服务器
若尚未拥有服务器,可前往 雨云官网 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。
单击GUI选项卡,然后输入你的管理员用户和密码。请务必选中选项Use HTTPS for GUI 。按**“保存”**确认你的更改。
现在你将被重定向到syncthing登录页面。从那里输入你的用户名和密码,然后单击登录。
如果你的配置成功,你将看到一个同步仪表板,如下所示:
下面你可以看到来自node2的同步仪表板。
7. 连接 Syncthing 实例
至此,你已经完成了两台Almalinux服务器上syncthing的安装。现在是连接两个同步实例的时候了,这可以通过 Web 管理仪表板来完成。
在node1仪表板上,单击操作并选择显示ID以获取节点ID的详细信息。
可以看到node1实例的ID和二维码。复制node1 ID ,你将需要它来连接到node2实例。
粘贴node1的ID,并输入名称node1 。
接下来,转到**“Sharing”选项卡。在“Unshared Folders”部分中,选中“Default Folder”选项以将目标文件夹共享到node1** 。
另外,请务必选中**“Auto Accept”选项,以自动创建或共享 node1 在默认路径中通告的文件夹。
单击“Save** **”**进行确认。
返回到node1仪表板,你应该会看到来自node2的请求消息。单击**“Add Device”**进行确认。
出现提示时,单击**“Save** ”进行确认。另外,请务必检查node2的设备 ID。
接下来,你将收到另一条通知,表明node2实例将共享文件夹Default Folder ,单击Share进行确认。
该过程完成后,你可以在node1上看到以下信息:
- 路径为**/home/tom/Sync的Default Folder与node2共享**。
- 在Remote Devices 部分,你可以看到状态为Up To Date 的node2 。
现在检查node2仪表板,你应该看到类似的信息,默认文件夹与node1共享。此外,你还可以在远程设备部分看到状态为Up to Date 的node1 。
8. 测试文件同步
至此,你已经完成了两个同步实例之间共享文件夹的配置。现在,让我们尝试在共享目录上创建新文件以验证两个同步实例之间的同步。
在node1服务器上,移动到**~/Sync**目录并执行以下命令来创建新文件。
cd ~/Sync/
touch file{1..50}.txt
ls -ah
现在移至node2服务器并转到**/Sync**目录。然后,验证**/Sync**目录中的列表文件。
cd ~/Sync
ls -ah
如果同步成功,你应该会看到从node1服务器创建的文件。
至此,你的同步安装就成功了。
相关链接
我的博客:https://blog.ivwv.site
雨云官网:https://rainyun.ivwv.site