Как установить и использовать Syncthing в Ubuntu 20.04 | Ubuntu 18.08
Syncthing — это бесплатная программа с открытым исходным кодом для синхронизации файлов между устройствами из локальной сети или удаленными устройствами через Интернет. Он использует одноранговую архитектуру и непрерывную синхронизацию файлов, обменивается данными напрямую между устройствами в полностью автоматическом режиме.
Синхронизация может использоваться для синхронизации файлов и каталогов в режиме реального времени. Вся передача данных между несколькими устройствами безопасна и зашифрована с помощью TLS.
Ключевые особенности Syncthing:
- Поддержка аутентификации LDAP.
- поддержка односторонней синхронизации.
- Быстрая скорость синхронизации.
- Используйте как CLI, так и GUI
- Кроссплатформенность доступна на: Linux, Android, Unix, Solaris, Windows и Mac OS X.
В этом руководстве мы узнаем, как установить Syncthing в Ubuntu 20.04 .
Предпосылки
- Два сервера с установленной Ubuntu 20.04.
- Пользователь с доступом sudo и root.
- Два настроенных общедоступных IP-адреса.
Установите Syncthing в Ubuntu
Syncthing доступен в официальном репозитории. Следуя инструкциям по установке, добавьте репозиторий Syncthing и установите его в Ubuntu.
Сначала обновите системные пакеты с помощью следующей команды:
apt update
Установите все зависимости с помощью следующей команды:
apt-get install gnupg2 curl apt-transport-https
Добавьте и загрузите ключ выпуска:
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
apt-get install syncthing
Проверьте установку, проверив версию Syncthing:
syncthing --version
Вывод:
syncthing v1.18.1 "Fermium Flea" (go1.16.6 linux-amd64) deb@build.syncthing.net 2021-07-30 12:41:57 UTC [noupgrade]
Если вы получили аналогичный результат, значит, Syncthing успешно установлен.
ПРИМЕЧАНИЕ. Вам нужно будет повторить эти же действия по установке на другом сервере.
Создайте файл модуля Systemd
Следующим шагом является создание файла модуля systemd для управления службой Syncthing.
Создайте файл в /etc/systemd/system/ с помощью следующей команды.
nano /etc/systemd/system/syncthing@.service
Добавьте в файл конфигурации следующие строки:
[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
В части [Служба] в строке -gui-address="0.0.0.0:8384"
добавьте свой публичный IP-адрес первого сервера и оставьте тот же порт 8384.
Сохраните конфигурацию и закройте файл.
Теперь перезагрузите демон systemd, чтобы применить конфигурацию:
systemctl daemon-reload
После перезагрузки демона запустите службу синхронизации, которая указывает на вашего пользователя, с помощью следующей команды.
systemctl start syncthing@yourUser
Проверьте статус службы Syncthing:
systemctl status syncthing@yourUser
Сервис должен быть активен (запущен).
Служба синхронизации прослушивает порт 8384, вы можете проверить это с помощью команды ss .
ss -antpl | grep 8384
Вывод:
LISTEN 0 4096 45.79.208.51:8384 0.0.0.0:* users:(("syncthing",pid=13837,fd=20))
ПРИМЕЧАНИЕ. Повторите эти же действия для другого сервера.
Настройка Syncthing Web Interface
Откройте свой веб-браузер и получите доступ к веб-интерфейсу Syncthing с URL-адресами.
http://first-server-ip:8384
http://second-server-ip:8384
Syncthing Web Interface использует порт 8384.
После входа в систему вы должны получить следующие сообщения.
Затем перейдите в Действия> Настройки> Графический интерфейс, чтобы настроить имя пользователя и пароль, и включите опцию «Использовать HTTPS для графического интерфейса».
Нажмите кнопку «Сохранить», и вы будете перенаправлены на страницу входа в систему Syncthing, где вам будет предложено ввести новые учетные данные для входа.
После входа в систему, как вы видите, соединение теперь защищено HTTPS.
ПРИМЕЧАНИЕ. Повторите и настройте этот процесс также на втором сервере.
Подключение устройств
Для синхронизации каталогов нам необходимо объединить и подключить идентификаторы устройств обоих серверов, добавить идентификатор устройства каждого сервера на другой сервер для синхронизации файлов.
Для этого перейдите в Действия> Показать ID на обоих серверах. Вы увидите следующий идентификатор устройства и QR-код.
Теперь перейдите к первому серверу Syncthing. Внизу, где находится раздел для удаленных устройств, нажмите кнопку + Добавить удаленное устройство.
Укажите идентификатор устройства вашего второго сервера и нажмите кнопку «Сохранить». Необязательно, также можно добавить имя устройства для более четкого обзора.
На втором сервере повторите тот же шаг. Перейдите в Добавить удаленное устройство.
И добавьте идентификатор устройства с первого сервера и нажмите кнопку « Сохранить» .
Укажите имя вашей резервной папки в метке папки в разделе «Общие». Затем перейдите в раздел «Совместное использование карты», и вы увидите следующий экран.
Уилл с обеих сторон видит, что устройства подключены.
Синхронизировать каталоги
После успешного пиринга удаленных устройств найдите раздел Папки и нажмите кнопку + Добавить папку. Вы должны увидеть новое следующее окно.
Укажите имя вашей резервной папки в метке папки в разделе «Общие». Затем перейдите в раздел «Совместное использование карты», и вы увидите следующий экран.
Отметьте свое устройство, чтобы поделиться этой папкой. В моем случае имя — server2 , и нажмите кнопку « Сохранить» .
Теперь перейдите на второй сервер и нажмите кнопку Rescan All. Вы должны увидеть следующий экран и новое всплывающее сообщение, чтобы добавить эту новую папку.
Нажмите кнопку «Добавить», чтобы добавить папку резервного копирования, доступную на первом сервере. Теперь вы должны увидеть следующий экран.
Теперь можно увидеть, что резервное копирование папок синхронизировано и обновлено.
Каждый раз, когда вы создаете или изменяете какие-либо файлы в папке резервного копирования на первом сервере, они будут автоматически синхронизироваться со вторым сервером, все новые каталоги и файлы в этой папке резервного копирования будут зеркалироваться на другом сервере.
Настройка папок только для отправки и только для получения
Еще одна замечательная функция Syncthing заключается в том, что вы можете настроить парные серверы для отправки и получения, а также их можно указать только для отправки и только для приема.
Перейдите в раздел «Папки»> «Выбрать желаемую папку для резервного копирования» и нажмите кнопку «Изменить», а затем перейдите в раздел «Дополнительно». Вы увидите следующее изображение.
И выберите «Тип папки» для «Только отправка» / «Только получение» и нажмите кнопку «Сохранить».
Настроить точные интервалы сканирования
Если вы хотите освободить процессор и вам не нужно постоянно следить за изменениями синхронизации, вы можете отключить отслеживание изменений и вручную настроить, сколько минут и часов вы хотите синхронизировать изменения.
Проверка службы systemctl
Перейдите к желаемому устройству на server1 или server2 и проверьте статус службы systemctl, чтобы увидеть, как это работает на бэкэнде, с помощью следующей команды.
sudo systemctl status syncthing@yourUser
Вывод.
● syncthing@infoit.service - Syncthing - Open Source Continuous File Synchronization for infoit
Loaded: loaded (/etc/systemd/system/syncthing@.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2021-08-25 13:46:53 UTC; 1h 4min ago
Docs: man:syncthing(1)
Main PID: 15543 (syncthing)
Tasks: 13 (limit: 1071)
Memory: 29.2M
CGroup: /system.slice/system-syncthing.slice/syncthing@infoit.service
├─15543 /usr/bin/syncthing -no-browser -gui-address=45.79.208.51:8384 -no-restart -logflags=0
└─15548 /usr/bin/syncthing -no-browser -gui-address=45.79.208.51:8384 -no-restart -logflags=0
Aug 25 13:52:58 li1307-51 syncthing[15543]: [6TZM3] INFO: Device BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY client is "syncthing v1.18.1>
Aug 25 13:52:58 li1307-51 syncthing[15543]: [6TZM3] INFO: Connection to BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY at [2600:3c02::f03c:9>
Aug 25 13:53:12 li1307-51 syncthing[15543]: [6TZM3] INFO: Established secure connection to BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY at>
Aug 25 13:53:12 li1307-51 syncthing[15543]: [6TZM3] INFO: Device BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY client is "syncthing v1.18.1>
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: Adding folder "Backup" (svkz5-mdnbo)
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: No stored folder metadata for "svkz5-mdnbo"; recalculating
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: Ready to synchronize "Backup" (svkz5-mdnbo) (sendreceive)
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: Completed initial scan of sendreceive folder "Backup" (svkz5-mdnbo)
Заключение
В этом руководстве мы узнали, как установить Syncthing для синхронизации каталогов в Ubuntu 20.04. Вы можете использовать и синхронизировать более двух устройств и быть в курсе всех каталогов на всех машинах.
Пожалуйста, поделитесь своим опытом использования Syncthing в разделе комментариев.