Установка Syncthing · 6 min read · Dec 19, 2025

Как установить Syncthing на Ubuntu 20.04

Syncthing — это инструмент с открытым исходным кодом, используемый для синхронизации файлов между двумя или более компьютерами в сети. Он использует архитектуру «равный-равному» и обменивается вашими данными напрямую между вашими устройствами. Все данные, передаваемые между несколькими устройствами, шифруются с помощью TLS. Каждый раз, когда вы создаете, изменяете или удаляете какие-либо данные на одном компьютере с Syncthing, они автоматически реплицируются на другие серверы. Он может быть установлен на всех основных операционных системах, включая Linux, Windows, Mac OS X и т. д.

В этом руководстве мы покажем вам, как установить и настроить сервер Syncthing на Ubuntu 20.04.

Предварительные требования

  • Два сервера с установленной Ubuntu 20.04.
  • Действительное доменное имя, указывающее на IP-адрес вашего сервера.
  • Настроенный root-пароль на обоих серверах.

Начало работы

Сначала обновите системные пакеты до актуальной версии, выполнив следующую команду:

apt-get update -y

После обновления всех пакетов вы можете перейти к следующему шагу.

Установка сервера Syncthing на оба сервера

По умолчанию пакет 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) [email protected] 2021-06-21 20:53:50 UTC [noupgrade]

На этом этапе Syncthing установлен на обоих серверах. Теперь вы можете перейти к следующему шагу.

Создание файла юнита systemd на обоих серверах

Далее вам нужно будет создать файл юнита systemd для управления службой Syncthing. Вы можете создать его на обоих серверах с помощью следующей команды:

nano /etc/systemd/system/[email protected]

Добавьте следующие строки:

[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@root

Чтобы проверить статус службы Syncthing, выполните следующую команду:

systemctl status syncthing@root

Вы должны увидеть следующий вывод:

? [email protected] - Syncthing - Open Source Continuous File Synchronization for root
     Loaded: loaded (/etc/systemd/system/[email protected]; 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/[email protected]
             ??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))    

Доступ к веб-интерфейсу Syncthing

Далее откройте веб-браузер и получите доступ к веб-интерфейсу Syncthing, используя URL-адреса http://first-server-ip:8384 и http://first-server-ip:8384.

Вы должны увидеть следующий экран:

Административный интерфейс Syncthing

Нажмите на Настройки, чтобы определить пользователя администратора и пароль, как показано ниже:

Установить пароль

Укажите ваше имя пользователя, пароль и нажмите кнопку Сохранить, чтобы применить изменения. Вы будете перенаправлены на страницу входа в Syncthing:

вход

Укажите ваше имя пользователя администратора, пароль и нажмите кнопку Войти. Вы должны увидеть следующий экран:

Папки

Далее вам нужно будет добавить идентификатор устройства каждого сервера на другой сервер, чтобы синхронизировать файлы между обоими серверами. Для этого нажмите на кнопку Действия > Показать ID на обоих серверах. Вы должны увидеть следующий экран:

Идентификация устройства

идентифицировать узел 2

На первом сервере нажмите на Добавить удаленное устройство. Вы должны увидеть следующий экран:

Добавить устройство

Укажите идентификатор устройства второго сервера и нажмите кнопку Сохранить.

На втором сервере нажмите на Добавить удаленное устройство. Вы должны увидеть следующий экран:

Идентификатор устройства

Укажите идентификатор устройства первого сервера и нажмите кнопку Сохранить. Вы должны увидеть следующий экран:

Папки и устройства

Теперь вам нужно будет добавить и поделиться папкой, которую вы хотите синхронизировать со вторым сервером. Нажмите на кнопку Добавить папку. Вы должны увидеть следующий экран:

Добавить папку

Укажите метку вашей папки, путь к папке и нажмите на вкладку Общий доступ. Вы должны увидеть следующий экран:

Общий доступ к папке

Установите флажок для второго сервера и нажмите кнопку Сохранить. Вы должны увидеть следующий экран:

Папки и устройства в Syncthing

Далее перейдите ко второму серверу и нажмите кнопку Пересканировать Все. Вы должны увидеть следующий экран:

Пересканировать все

Нажмите на Добавить, чтобы добавить папку резервного копирования, общую на первом сервере. Вы должны увидеть следующий экран:

Синхронизация папок

Теперь, когда вы создаете или изменяете любые файлы в папке резервного копирования на первом сервере, они будут автоматически синхронизироваться со вторым сервером.

Настройка Nginx в качестве обратного прокси для Syncthing

Вы также можете настроить Nginx в качестве обратного прокси, чтобы получить доступ к серверу Syncthing через порт 80.

Сначала установите сервер 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.

Теперь вы можете получить доступ к серверу Syncthing, используя URL-адрес http://syncthing.example.com.

Заключение

Поздравляем! Вы успешно установили и настроили Syncthing на двух серверах Ubuntu 20.04 и настроили синхронизацию между обоими серверами. Надеюсь, это руководство поможет вам создать резервную копию вашего сервера.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.