Tropic Host

Syncthing: какво представлява и как да настроите синхронизация на файлове във VPS

6 минути четене
Tropic
Syncthing: какво представлява и как да настроите синхронизация на файлове във VPS

Language: bg

Syncthing: синхронизиране на файлове между устройства без чужд облак

Сутрин редактирате документ на лаптопа си и го изключвате. Вечер отваряте домашния компютър — последната версия вече е там. Файлът никога не е минавал през Google Drive или Dropbox: получил го е вашият собствен Syncthing възел.

Syncthing синхронизира директно избрани папки между доверени устройства, а вие запазвате контрола върху мястото, където се съхраняват данните. Централният сървър е по избор.

Ако обаче два компютъра рядко са онлайн едновременно, обменът на промените става труден. Постоянно включен VPS решава този проблем: той получава файловете от едното устройство и по-късно ги предава на другото.

Важно е да разберете за какво е предназначен Syncthing. Това не е мрежов диск или файлов мениджър в браузър, а инструмент за автоматично репликиране на избрани папки.

Syncthing в пет стъпки

Минималната настройка изглежда така:

  1. Инсталирайте Syncthing на необходимите компютри.
  2. Стартирайте още един екземпляр на Syncthing във VPS.
  3. Отворете таблото на сървъра чрез SSH тунел.
  4. Обменете идентификаторите на устройствата и одобрете връзката.
  5. Добавете споделена папка, изберете режим на синхронизация и включете версионирането на файловете.

Какво е Syncthing и как работи

Syncthing е безплатен софтуер с отворен код за непрекъсната синхронизация на файлове. Работи под Windows, macOS, Linux и други настолни и сървърни операционни системи.

Всяка инсталация получава уникален Device ID — криптографски идентификатор. Преди два възела да могат да обменят данни, трябва да ги добавите един към друг и изрично да разрешите достъп до конкретна папка. Няма един общ акаунт в Syncthing, в който да се съхраняват вашите устройства и файлове.

Когато файлът се промени, Syncthing го разделя на блокове, сравнява контролните суми и прехвърля само липсващите части. Така малка редакция в голям файл не винаги изисква повторно изпращане на целия файл.

Услугите за откриване помагат на устройствата да се намерят, но не съхраняват файлове. Ако директната връзка е невъзможна, криптираният трафик може да премине през по-бавен relay.

Какво променя VPS

Без сървър лаптопът може да се синхронизира директно с домашен компютър, но и двете устройства трябва да са онлайн едновременно, дори за кратко. VPS превръща настройката в постоянно достъпна точка за обмен.

Например лаптопът ви качва проект на сървъра сутринта и след това се изключва. Вечер домашният компютър изтегля новата версия от VPS.

Syncthing работи добре за документи, бележки в Obsidian, програмен код, снимки и семейни папки. Кешовете, node_modules и резултатите от компилация е по-добре да се изключат чрез .stignore. Активни бази данни и образи на виртуални машини не бива да се синхронизират.

VPS създава и копие на данните ви извън дома. Това копие обаче става истински резервен архив едва когато се комбинира с версиониране и отделен архив: случайното изтриване може да се разпространи и към всяко устройство.

Syncthing или Nextcloud: кое да изберете?

Двата инструмента често се сравняват, въпреки че решават различни задачи.

КритерийSyncthingNextcloud
МоделПапките се копират между устройстватаФайловете се съхраняват на централен сървър
Нужен ли е сървърНе, VPS е по изборДа
Достъп до файлове през браузърНяма пълноценен уеб дискДа
Публични връзкиНеДа
Съвместно редактиранеНе се предоставяМоже да се добави
Най-подходящо използванеПоддържане на едни и същи папки на собствените ви устройстваЛичен или екипен облак

Изберете Syncthing за ненатрапчива синхронизация във фонов режим. Изберете Nextcloud, когато са ви нужни достъп през браузър, споделяеми връзки, потребителски акаунти, календар и функции за съвместна работа.

Как да инсталирате Syncthing във VPS с Docker Compose

Стъпките по-долу са за VPS с Ubuntu 24.04. Таблото ще остане свързано към локалния адрес на сървъра и ще се свързвате с него чрез SSH тунел.

1. Инсталирайте Docker

sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker

2. Създайте папката и Compose файла

sudo mkdir -p /opt/syncthing/data
sudo chown -R 1000:1000 /opt/syncthing/data
cd /opt/syncthing
sudo nano compose.yaml

Поставете следното съдържание:

services:
  syncthing:
    image: syncthing/syncthing:latest
    container_name: syncthing
    hostname: syncthing-vps
    environment:
      - PUID=1000
      - PGID=1000
      - STGUIADDRESS=
    volumes:
      - ./data:/var/syncthing
    network_mode: host
    restart: unless-stopped

Тази конфигурация използва официалния образ на Syncthing. Режимът на мрежата host улеснява директните връзки, а празната стойност на STGUIADDRESS оставя таблото на 127.0.0.1:8384.

Стартирайте контейнера:

sudo docker compose up -d
sudo docker compose ps

3. Разрешете връзките за синхронизация

Първо разрешете SSH, за да не се заключите извън сървъра:

sudo ufw allow OpenSSH
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw enable

22000/TCP се използва от основния протокол за синхронизация, а 22000/UDP — за QUIC. Не е необходимо да излагате таблото през порт 8384. Локалният порт за откриване 21027/UDP обикновено не е нужен в публичен VPS.

4. Отворете таблото чрез SSH

Изпълнете следната команда на компютъра си:

ssh -L 9999:127.0.0.1:8384 root@SERVER_IP

Оставете терминала отворен и посетете:

http://127.0.0.1:9999

След като отворите таблото, отидете на Actions → Settings → GUI и задайте потребителско име и парола. Ако по-късно искате да достъпвате таблото през домейн, поставете го зад reverse proxy с HTTPS и оставете удостоверяването включено.

5. Добавете устройства и папка

Инсталирайте Syncthing на компютъра си, след което:

  1. На компютъра и във VPS изберете Actions → Show ID.
  2. Добавете Device ID на всеки възел към другото устройство.
  3. На компютъра натиснете Add Folder, изберете директория и я споделете със сървъра.
  4. Във VPS приемете папката и изберете път като /var/syncthing/Files.

Оставете Send & Receive включено на компютрите за двупосочна синхронизация. Във VPS Receive Only често е удобен: сървърът продължава да получава и препраща промените между възлите, но случайни локални редакции директно във VPS няма да се разпространят в цялата мрежа.

Защо Syncthing не заменя резервното копиране

Ако файл бъде изтрит или криптиран на едно устройство, промяната може да се разпространи към останалите. Затова отворете настройките на папката във VPS и включете File Versioning.

Практичен вариант е Staggered File Versioning със срок на съхранение 30–90 дни. Когато отдалечен възел замени или изтрие файл, предишната версия се премества в .stversions. Старите копия заемат дисково пространство, затова задайте ограничение за срока на съхранение.

Надеждната настройка има три слоя:

  1. Syncthing поддържа работните копия актуални.
  2. Версионирането помага да отмените някои грешки.
  3. Отделен планиран архив се съхранява независимо от Syncthing.

Може ли VPS да съхранява файлове, без да вижда съдържанието им?

Syncthing включва режим за недоверено устройство. Задавате парола за папката на основния компютър и избирате Receive Encrypted във VPS. Сървърът съхранява криптирани данни и може да ги предаде на друго доверено устройство, което използва същата парола.

Съдържанието, имената на файловете, времевите отпечатъци и структурата на директориите са скрити. Информацията за споделената папка и приблизителният размер на файловете остават видими.

Разработчиците все още считат тази функция за експериментална. Съхранявайте паролата и Folder ID отделно: без тях възстановяването на криптираната папка може да е невъзможно.

Какъв VPS е нужен на Syncthing?

Използването на ресурси зависи не само от количеството данни, но и от броя на файловете, честотата на промените и първоначалното индексиране. За личен възел с документи и няколко десетки гигабайта данни обикновено е достатъчна следната начална конфигурация:

  • 1 vCPU;
  • 1 GB RAM;
  • SSD или NVMe хранилище;
  • достатъчно дисково пространство за файловете и .stversions;
  • стабилна мрежова връзка.

Голяма колекция от снимки или стотици хиляди файлове ще изисква повече ресурси. Най-голямото натоварване обикновено възниква при първото сканиране и изчисляването на контролните суми.

За тази задача е подходящ базов Ubuntu VPS от tropic.host. Можете да започнете с малка конфигурация и да увеличавате ресурсите с нарастването на колекцията. При избора на капацитет на диска вземете предвид не само текущите папки, но и бъдещите файлове, временните данни и историята на версиите.

Пет грешки, които да избягвате

  • Излагане на порт 8384 към целия интернет. Използвайте SSH тунел за настройката. За постоянен уеб достъп използвайте HTTPS, парола и reverse proxy.
  • Приемане на копието на сървъра за пълен резервен архив. Включете версиониране и създавайте отделни архиви.
  • Синхронизиране на кешове и зависимости. Изключете ненужните директории с .stignore.
  • Пренебрегване на дисковото пространство. Директорията .stversions може значително да нарасне с времето.
  • Оставяне на изгубено устройство като доверено. Премахнете го от останалите възли и защитете конфигурацията на Syncthing, която съдържа ключовете на устройствата.

Какво трябва да знаете за смартфоните

Официалното приложение за Android беше прекратено в края на 2024 г., но са налични клиенти от общността. Няма и официален iOS клиент: ограниченията за работа във фонов режим затрудняват непрекъснатата синхронизация. Преди да свържете основната си фотобиблиотека, тествайте избраното мобилно приложение с малка папка.

Заключение

Syncthing е подходящ за всеки, който иска едни и същи папки на няколко устройства, без да разчита на задължителен облачен посредник. VPS прави системата по-удобна: компютрите вече не трябва да са онлайн едновременно, а получавате постоянно достъпно копие извън дома.

За сигурна настройка не излагайте административното табло директно, включете версионирането и допълнете синхронизацията с независим резервен архив.

FAQ

Нужен ли ми е VPS за Syncthing?

Не. Устройствата могат да се синхронизират директно. VPS служи като постоянно включен възел, който им позволява да обменят промените по различно време.

Мога ли да отварям файловете на Syncthing в браузър?

Уеб таблото е предназначено за конфигуриране, а не за разглеждане на документи като в Google Drive. Nextcloud е по-добър избор, ако ви е нужен уеб диск.

Syncthing решение за резервно копиране ли е?

Не. Изтриванията и повредите могат да се разпространят към другите устройства. Версионирането помага, но не заменя независим резервен архив.

Трябва ли да отварям порт 8384?

Не. Оставете таблото на 127.0.0.1:8384 и се свързвайте чрез SSH тунел. Отворете 22000/TCP и 22000/UDP за синхронизация.

Може ли собственикът на VPS да прочете файловете?

При стандартна настройка потенциално да. Receive Encrypted съхранява файловете в криптиран вид, но функцията все още се счита за експериментална и изисква да пазите паролата и Folder ID.