更新时间:2023-03-04 10:05:58浏览次数:326+次
本文介绍如何在Linux系统上安装和配置Syncthing的方法,将以Rocky Linux 9、CentOS 9、AlmaLinux 9发行版为例说明。
简介
Syncthing是一种开源的跨平台对等同步软件,用于在网络中安全地同步多个设备之间的文件和文件夹。Syncthing被认为是基于云的文件同步服务(如Google Drive、Dropbox等)的可靠和安全的替代方案。作为用户,您可以完全控制数据,而不依赖第三方服务来存储文件。
安装Syncthing时,它附带了一个基于web的GUI,该GUI提供了有关文件同步状态的详细信息,以及用于配置高级选项(如服务启动/停止、设备发现、添加新设备和LDAP集成等更多配置)的工具。Syncthing同步工具的一些关键功能包括:
加密:设备之间的所有通信都使用TLS加密,以确保数据免受未经授权的访问。
跨平台支持:Syncthing可以在多种平台上运行,包括Linux、Windows、macOS、Android和FreeBSD。
去中心化:Syncthing在对等架构上运行,无需中央服务器。用户可以控制其数据
版本控制:它有一个复杂的版本控制系统,以确保对文件所做的更改在设备之间正确传播,即使同时进行了多个更改。
选择性同步:用户可以选择要在设备之间同步的文件夹,从而更好地控制数据。
基于Web的GUI:Syncthing包括一个用户友好的基于Web的图形用户界面。
在Linux上安装和配置Syncthing
以下是在Rocky 9、CentOS 9或AlmaLinux 9系统上安装和配置Syncthing的步骤。
步骤1:下载并安装Syncthing
您可以从Github发布页面查看Syncthing的最新稳定版本,地址在https://github.com/syncthing/syncthing/releases/。或使用wget或curl下载:
curl -s https://api.github.com/repos/syncthing/syncthing/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
接下来,我们使用tar提取下载的文件:
tar xvf syncthing-linux-amd64*.tar.gz
接下来,我们将二进制文件复制到/usr/bin目录:
sudo cp syncthing-linux-amd64-*/syncthing /usr/bin/
通过检查版本确认安装成功:
$ syncthing --version
syncthing v1.23.1 "Fermium Flea" (go1.19.5 linux-amd64) teamcity@build.syncthing.net 2023-01-16 03:48:02 UTC
步骤2:创建Syncthing systemd单元文件
Syncthing服务可以在支持它的系统上使用systemd进行管理。我们需要为它创建一个服务单元。
创建名为syncthing的用户帐户:
sudo useradd -m syncthing
您可以将用户添加到wheel组:
sudo usermod -aG wheel syncthing
给它一个强密码:
$ sudo passwd syncthing
Changing password for user syncthing.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
创建systemd单位文件:
$ sudo vi /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 serve --no-browser --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 start syncthing@syncthing
检查其状态以确认其正在运行:
$ systemctl status syncthing@$USER
要允许侦听所有接口,请使用:
ExecStart=/usr/bin/syncthing --no-browser --gui-address="0.0.0.0:8384" --no-restart --logflags=0
步骤3:对Syncthing数据使用单独的分区
我将为文件同步配置/dev/sdb:
$ lsblk
sdb 8:16 0 200G 0 disk
在原始磁盘/dev/sdX上创建分区表:
sudo parted -s -a optimal -- /dev/sdX mklabel gpt
sudo parted -s -a optimal -- /dev/sdX mkpart primary 0% 100%
sudo parted -s -- /dev/sdX align-check optimal 1
在上面创建文件系统。在本例中,我们使用的是LVM:
sudo pvcreate /dev/sdX1
sudo vgcreate data /dev/sdX1
sudo lvcreate -n syncthing -l +100%FREE data
sudo mkfs.xfs /dev/data/syncthing
echo "/dev/data/syncthing /home/syncthing/data xfs defaults 0 0" | sudo tee -a /etc/fstab
创建装载点:
sudo mkdir /home/syncthing/data
在运行时装载分区以验证其工作:
sudo mount -a
确认安装工作:
$ df -hT /home/syncthing/data
/dev/mapper/data-syncthing xfs 200G 44G 157G 22% /home/syncthing/data
为数据目录设置正确的权限:
sudo chown syncthing:syncthing /home/syncthing/data
确认它有效:
$ ls -lhd /home/syncthing/*
drwxr-xr-x. 2 syncthing syncthing 6 Feb 28 00:49 /home/syncthing/data
drwxr-xr-x. 3 syncthing syncthing 23 Feb 28 00:28 /home/syncthing/Sync
步骤4:允许防火墙中的所需端口
如果防火墙处于活动状态,则允许端口8384和22000。两个TCP:
sudo firewall-cmd --add-port={8384,22000}/tcp --zone=public --permanent
sudo firewall-cmd --reload
您可以使用列出允许的所有端口:
firewall-cmd --list-all
步骤5:访问Syncthing Web UI
服务启动后,Syncthing管理GUI可在端口8384上访问。打开地址格式为https://localhost_or_ServerIP:8384/的链接:
单击设置为管理员用户设置密码:
然后使用设置的用户名admin和密码登录进行测试:
至此,在Linux系统上安装和配置Syncthing成功完成。
相关资讯