Поиск по сайту:

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


На этой странице

  1. Предпосылки
  2. Начало работы
  3. Установить сервер Syncthing на обоих серверах
  4. Создайте файл модуля Systemd на обоих серверах
  5. Доступ к веб-интерфейсу Syncthing
  6. Настройка Nginx в качестве обратного прокси-сервера для синхронизации
  7. Заключение

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

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

Предпосылки

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

Начиная

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

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 на обоих серверах

Далее вам нужно будет создать файл модуля 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))    

Доступ к веб-интерфейсу синхронизации

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

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

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

Укажите свое имя пользователя, пароль и нажмите кнопку «Сохранить», чтобы применить изменения. Вы будете перенаправлены на страницу входа в 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 и настроили синхронизацию между обоими серверами. Я надеюсь, что это руководство поможет вам сделать резервную копию вашего сервера.