Как установить Syncthing на Ubuntu 20.04
На этой странице
- Предпосылки
- Начало работы
- Установить сервер Syncthing на обоих серверах
- Создайте файл модуля Systemd на обоих серверах
- Доступ к веб-интерфейсу Syncthing
- Настройка Nginx в качестве обратного прокси-сервера для синхронизации
- Заключение
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 и настроили синхронизацию между обоими серверами. Я надеюсь, что это руководство поможет вам сделать резервную копию вашего сервера.