更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux教程 > 在Linux系统上安装和配置Syncthing的方法

在Linux系统上安装和配置Syncthing的方法

更新时间: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成功完成。