在CentOS 8/CentOS 7上安装和配置Syncthing

时间:2020-02-23 14:31:06  来源:igfitidea点击:

Syncthing是一种开源的连续文件同步,用于在网络中两台或者更多台计算机之间同步文件。本教程旨在在CentOS 8/CentOS 7 Linux机器上安装和配置Syncthing。同步易于安装,维护,并提供了一种简便的方法来在局域网和Internet上的计算机之间同步文件。

同步的核心设计原则

同步是基于以下核心目标构建的:防止数据丢失通过确保用户文件没有损坏来保护用户数据易于使用同步应该易于理解,易于理解且具有包容性防范攻击者绝不允许用户数据容易被窃听对于个人,同步主要是为个人用户提供安全,可靠和易于使用的文件同步。仅在绝对必要时才需要自动用户交互。通用同步应在每台普通计算机上运行。

在CentOS 8/CentOS 7上安装Syncthing

对于CentOS和其他RHEL Linux发行版系列,没有官方支持的存储库提供RPM软件包进行安装。因此,请从官方源档案中下载并在CentOS 8/CentOS 7上安装Syncthing。

为操作系统获取最新版本的Syncthing:

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 xvf syncthing-linux-amd64*.tar.gz

从提取中创建的文件夹中将存在一个称为"同步"的二进制文件。让我们将二进制文件复制到/usr/local/bin目录。

sudo cp syncthing-linux-amd64-*/syncthing  /usr/local/bin/

通过检查同步版本确认二进制文件已复制。

$syncthing --version
syncthing v1.3.4 "Fermium Flea" (go1.13.7 linux-amd64) theitroad@localhost 2017-01-14 07:01:03 UTC

将Syncthing配置为在启动时自动启动

很好地使用Linux Systemd管理Syncthing服务,使用户可以启动,停止,启用和禁用服务单元。

让我们创建一个新文件。

sudo vi /etc/systemd/system/theitroad@localhost

将以下内容粘贴到文件中。

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

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

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

[Install]
WantedBy=multi-user.target

更新系统服务列表:

sudo systemctl daemon-reload

启用并启动服务。

sudo systemctl start theitroad@localhost$USER
sudo systemctl enable theitroad@localhost$USER

确认服务状态。

$sudo systemctl status theitroad@localhost$USER
● theitroad@localhost - Syncthing - Open Source Continuous File Synchronization for cloud/user
   Loaded: loaded (/etc/systemd/system/theitroad@localhost; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2017-03-08 21:19:04 EAT; 1min 7s ago
     Docs: man:syncthing(1)
 Main PID: 7739 (syncthing)
    Tasks: 9 (limit: 11512)
   Memory: 29.1M
   CGroup: /system.slice/system-syncthing.slice/theitroad@localhost
           └─7739 /usr/local/bin/syncthing -no-browser -no-restart -logflags=0

Mar 08 21:19:05 cent8.novalocal syncthing[7739]: [BAMMV] INFO: Loading HTTPS certificate: open /home/cloud-user/.config/syncthing/https-cert.pem: no su>
Mar 08 21:19:05 cent8.novalocal syncthing[7739]: [BAMMV] INFO: Creating new HTTPS certificate
Mar 08 21:19:05 cent8.novalocal syncthing[7739]: [BAMMV] INFO: TCP listener ([::]:22000) starting
Mar 08 21:19:05 cent8.novalocal syncthing[7739]: [BAMMV] INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) starting
Mar 08 21:19:05 cent8.novalocal syncthing[7739]: [BAMMV] INFO: GUI and API listening on 127.0.0.1:8384
Mar 08 21:19:05 cent8.novalocal syncthing[7739]: [BAMMV] INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
Mar 08 21:19:05 cent8.novalocal syncthing[7739]: [BAMMV] INFO: My name is "cent8.novalocal"
Mar 08 21:19:05 cent8.novalocal syncthing[7739]: [BAMMV] INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
Mar 08 21:19:20 cent8.novalocal syncthing[7739]: [BAMMV] INFO: Detected 1 NAT service
Mar 08 21:19:36 cent8.novalocal syncthing[7739]: [BAMMV] INFO: Joined relay relay://85.10.202.70:22067

我们还可以使用单独的用户帐户来启动服务,方法是将$USER替换为user名称。

访问Syncthing界面

同步管理GUI由systemd自动启动,并且可在配置的监听地址端口8384上使用。如果未提供-gui-address =" ip:port"选项,则该服务将在https://上运行本地主机:8384 /

$sudo ss -tunelp | grep 8134
udp     UNCONN   0    0   [::]:35129  [::]:* users:(("syncthing",pid=260527,fd=16)) uid:1000 ino:4508134 sk:38 v6only:1 <->

默认情况下,Syncthing管理界面配置为允许无密码的远程访问。

打开设置以设置密码:设置> GUI

然后将提示我们进行身份验证。

使用Syncthing在两个设备之间同步数据

使我们能够在两台或者更多台计算机之间同步数据
同步,确保已在所有设备上安装并配置了同步
系统。设置完成后,必须告知每个设备另一个
设备。

同步设备ID

这是通过交换设备ID来完成的。一种
设备ID是唯一的加密安全标识符,该标识符为
首次启动时作为密钥生成的一部分生成的
同步化。两个设备只有在相互连接并互相交谈时才能相互通信
都配置有彼此的设备ID。从操作>显示ID获取设备ID

添加同步设备ID

要使两个设备互相通信,请单击两个设备右下方的"添加远程设备",然后输入另一侧的设备ID。

另外,选择要共享的文件夹。设备名称是可选的,纯粹是装饰性的。如果需要,可以稍后进行更改。单击"保存"后,新设备将出现在GUI的右侧(尽管已断开连接),并显示提示以指示需要重新启动。

注意:共享的默认文件夹为~Sync。进行诸如添加Sync目录的更改后,请确保在"操作">"重新启动"上重新启动Syncthing。