Syncthing - это очень удобное средство для синхронизации файлов, размещаемых на ваших компьютерах и серверах.
Почему именно Syncthing? Масса плюсов:
Может работать как служба (работа тогда идет через веб-интерфейс) или как GUI-клиент (для Windows нужно тогда ставить SyncTrayzor).
Основной сайт: https://syncthing.net/
Установка на Ubuntu/Debian: https://apt.syncthing.net/
Ставим нужные компоненты:
sudo apt install curl apt-transport-https
Импортируем GPG-ключ:
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
Добавляем репозиторий:
echo "deb https://apt.syncthing.net/ syncthing release" > /etc/apt/sources.list.d/syncthing.list
Обновляем список пакетов и ставим:
sudo apt-get update sudo apt-get install syncthing
После установки проверяем версию:
$ syncthing --version
Если планируется хранить большое количество файлов, необходимо увеличить лимит, иначе будем получать предупреждение в веб-интерфейсе и синхронизация не будет работать:
sudo echo 'fs.inotify.max_user_watches=204800' >> /etc/sysctl.conf sudo sysctl -p
Создаем отдельного пользователя:
sudo useradd -m syncthing
Создаем файл конфигурации для systemd:
sudo vim /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
Перечитываем настройки:
sudo systemctl daemon-reload
Настраиваем запуск службы, чтобы запускалась от определенного пользователя должно быть в виде: systemctl start syncthing@$USER т.е. в нашем случае:
sudo systemctl start syncthing@syncthing
Включаем автоматический запуск службы при загрузке системы:
sudo systemctl enable syncthing@syncthing
Доступ к управлению через браузер по адресу: http://xxx.xxx.xxx.xxx:8384/ где xxx.xxx.xxx.xxx - IP или FQDN-имя
Крайне желательно закрыть доступ к админке паролем: Действия → Настройки → Интерфейс и заполнить поля «Имя пользователя для доступа к панели управления», «Пароль для доступа к панели управления». Так же желательно включить «Использовать HTTPS для панели управления» для работы по безопасному HTTPS. Нужно обратить внимание что по умолчанию используется самоподписанный сертификат и браузер попросит подтверждение.
Готово, можно устанавливать утилиту на другие компьютеры, добавлять их и расшаривать папки.
Установка на Windows возможна двумя способами:
Установка в виде SyncTrayzor проста: скачиваем пакет, запускаем, Далее-Далее-Далее и все работает. Минус данного решения: если установка производится на сервер или многопользовательский клиент у каждого пользователя будет запускаться GUI-клиент. Это далеко не всегда нужно, поэтому рассмотрим установку в виде службы.
Загружаем пакет для соответствующей платформы (x86 или x64), распаковываем в папку C:\Program Files\Syncthing
Можно установить как сервис при помощи PowerShell как описано тут: Windows: создаем и удаляем сервис из Powershell или с помощью старого доброго NSSM.
При помощи утилиты NSSM https://nssm.cc/ регистрируем службу:
nssm.exe install Syncthing
Готово, запускаем службу. Доступ к управлению через браузер по адресу: http://127.0.0.1:8384/