如何在 Ubuntu 20.04 上安装 Syncthing如何在 Ubuntu 20.04 上安装 Syncthing如何在 Ubuntu 20.04 上安装 Syncthing如何在 Ubuntu 20.04 上安装 Syncthing
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Ubuntu 20.04 上安装 Syncthing

发表 admin at 2025年2月28日
类别
  • 未分类
标签

在此页

  1. 先决条件
  2. 开始
  3. 在两台服务器上安装 Syncthing Server
  4. 在两台服务器上创建系统单元文件
  5. 访问 Syncthing Web 界面
  6. 将 Nginx 配置为同步的反向代理
  7. 结论

Syncthing 是一种开源工具,用于在网络上的两台或多台计算机之间同步文件。它使用点对点架构并直接在您的设备之间交换数据。多个设备之间传输的所有数据都使用 TLS 加密。每当您在一台 Syncthing 机器上创建、修改或删除任何数据时,它都会自动复制到其他服务器。它可以安装在所有主要操作系统中,包括 Linux、Windows、Mac OS X 等。

在本指南中,我们将向您展示如何在 Ubuntu 20.04 上安装和设置 Syncthing 服务器。

先决条件

  • 两台运行 Ubuntu 20.04 的服务器。
  • 用您的服务器 IP 指向的有效域名。
  • 在两台服务器上都配置了根密码。

入门

首先,通过运行以下命令将系统包更新到更新版本:

apt-get update -y

更新所有包后,您可以继续下一步。

在两台服务器上安装 Syncthing Server

默认情况下,Syncthing 包不包含在 Ubuntu 20.04 默认存储库中。因此,您需要将 Syncthing 存储库添加到 APT。

首先,使用以下命令在两台服务器上安装所有必需的依赖项:

apt-get install gnupg2 curl apt-transport-https -y

接下来,使用以下命令下载并添加发布密钥:

curl -s https://syncthing.net/release-key.txt | apt-key add -

接下来,使用以下命令将 Syncthing 存储库添加到 APT:

echo "deb https://apt.syncthing.net/ syncthing release" > /etc/apt/sources.list.d/syncthing.list

接下来,更新存储库并使用以下命令安装 Syncthing 服务器:

apt-get update -y
apt-get install syncthing -y

安装完成后,使用以下命令验证 Syncthing 的版本:

syncthing --version

您应该得到以下输出:

syncthing v1.18.0 "Fermium Flea" (go1.16.5 linux-amd64)  2021-06-21 20:53:50 UTC [noupgrade]

此时,Syncthing 已安装在两台服务器上。您现在可以继续下一步。

在两台服务器上创建系统单元文件

接下来,您需要创建一个 systemd 单元文件来管理 Syncthing 服务。您可以使用以下命令在两台服务器上创建它:

nano /etc/systemd/system/

添加以下行:

[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 守护进程以应用配置:

systemctl daemon-reload

接下来,使用以下命令启动 Syncthing 服务:

systemctl start 

要验证 Syncthing 服务的状态,请运行以下命令:

systemctl status 

您应该看到以下输出:

?  - Syncthing - Open Source Continuous File Synchronization for root
     Loaded: loaded (/etc/systemd/system/; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-07-09 04:40:12 UTC; 5s ago
       Docs: man:syncthing(1)
   Main PID: 2878 (syncthing)
      Tasks: 14 (limit: 2353)
     Memory: 44.2M
     CGroup: /system.slice/system-syncthing.slice/
             ??2878 /usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0
             ??2889 /usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0

Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: QUIC listener ([::]:22000) starting
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Loading HTTPS certificate: open /root/.config/syncthing/https-cert.pem: no such file or d>
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Creating new HTTPS certificate
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: GUI and API listening on [::]:8384
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: My name is "node1"
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] WARNING: Syncthing should not run as a privileged or system user. Please consider using a norma>
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: quic://0.0.0.0:22000 detected NAT type: Not behind a NAT
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: quic://0.0.0.0:22000 resolved external address quic://45.58.35.6:22000 (via stun.syncthin>

此时,Syncthing服务已经启动,并监听8384端口,可以通过以下命令查看:

ss -antpl | grep 8384

您应该看到以下输出:

LISTEN    0         4096                     *:8384                   *:*        users:(("syncthing",pid=2889,fd=12))    

访问同步 Web 界面

接下来,打开 Web 浏览器并使用 URL http://first-server-ip:8384 和 http://first-server-ip:8384 访问 Syncthing Web 界面。

您应该看到以下屏幕:

单击设置以定义管理员用户和密码,如下所示:

提供您的用户名、密码并单击“保存”按钮以应用更改。您将被重定向到 Syncthing 登录页面:

提供您的管理员用户名和密码,然后单击“登录”按钮。您应该看到以下屏幕:

接下来,您需要将每台服务器的设备 ID 添加到另一台服务器,以便在两台服务器之间同步文件。为此,请在两台服务器上单击“操作”>“显示 ID”按钮。您应该看到以下屏幕:

在第一台服务器上,单击添加远程设备。您应该看到以下屏幕:

提供第二台服务器的设备 ID,然后单击“保存”按钮。

在第二台服务器上,单击添加远程设备。您应该看到以下屏幕:

提供第一台服务器的设备 ID,然后单击“保存”按钮。您应该看到以下屏幕:

现在,您需要添加并共享要与第二台服务器同步的文件夹。单击添加文件夹按钮。您应该看到以下屏幕:

提供您的文件夹标签、文件夹路径,然后单击“共享”选项卡。您应该看到以下屏幕:

勾选第二个服务器并单击“保存”按钮。您应该看到以下屏幕:

接下来,转到第二台服务器并单击“全部重新扫描”按钮。您应该看到以下屏幕:

单击添加以添加在第一台服务器上共享的备份文件夹。您应该看到以下屏幕:

现在,无论何时您在第一台服务器上的备份文件夹中创建或修改任何文件,它们都会自动同步到第二台服务器。

将 Nginx 配置为 Syncthing 的反向代理

您也可以将 Nginx 设置为反向代理,通过 80 端口访问 Syncthing 服务器。

首先,使用以下命令安装 Nginx 服务器:

apt-get install nginx -y

接下来,使用以下命令创建 Nginx 虚拟主机配置文件:

nano /etc/nginx/conf.d/syncthing.conf

添加以下行:

server {
  listen 80;
  server_name syncthing.example.com;

  access_log /var/log/nginx/syncthing.access.log;
  error_log /var/log/nginx/syncthing.error.log;
  location / {
    proxy_pass http://127.0.0.1:8384;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

保存并关闭文件,然后使用以下命令验证 Nginx 是否存在任何语法错误:

nginx -t

您应该得到以下输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

接下来,重新加载 Nginx 以应用更改。

systemctl reload nginx

您还可以使用以下命令检查 Nginx 的状态:

systemctl status nginx

您应该看到以下输出:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-07-09 05:01:36 UTC; 21s ago
       Docs: man:nginx(8)
   Main PID: 3394 (nginx)
      Tasks: 2 (limit: 2353)
     Memory: 6.2M
     CGroup: /system.slice/nginx.service
             ??3394 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??3395 nginx: worker process

Jul 09 05:01:36 node1 systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 09 05:01:36 node1 systemd[1]: Started A high performance web server and a reverse proxy server.

现在,您可以使用 URL http://syncthing.example.com 访问 Syncthing 服务器。

结论

恭喜!您已经在两台 Ubuntu 20.04 服务器上成功安装和配置了 Syncthing,并在两台服务器之间设置了同步。我希望本教程能帮助您备份您的服务器。

©2015-2025 Norria support@norria.com