Syncthing: czym jest i jak skonfigurować synchronizację plików na VPS-ie

6 min czytania
Tropic
Syncthing: czym jest i jak skonfigurować synchronizację plików na VPS-ie

Language: pl

Syncthing: synchronizacja plików między urządzeniami bez cudzej chmury

Rano edytujesz dokument na laptopie i go wyłączasz. Wieczorem otwierasz domowy komputer — najnowsza wersja już tam jest. Plik nigdy nie przechodził przez Google Drive ani Dropboxa: odebrał go twój własny węzeł Syncthing.

Syncthing bezpośrednio synchronizuje wybrane foldery między zaufanymi urządzeniami, a ty zachowujesz kontrolę nad miejscem przechowywania danych. Centralny serwer jest opcjonalny.

Jeśli jednak dwa komputery rzadko są online jednocześnie, wymiana zmian staje się trudna. Zawsze włączony VPS rozwiązuje ten problem: odbiera pliki z jednego urządzenia, a później przekazuje je drugiemu.

Warto rozumieć, do czego służy Syncthing. Nie jest to dysk sieciowy ani przeglądarkowy menedżer plików, lecz narzędzie do automatycznego replikowania wybranych folderów.

Syncthing w pięciu krokach

Minimalna konfiguracja wygląda tak:

  1. Zainstaluj Syncthing na potrzebnych komputerach.
  2. Uruchom kolejną instancję Syncthing na VPS-ie.
  3. Otwórz panel serwera przez tunel SSH.
  4. Wymień identyfikatory urządzeń i zatwierdź połączenie.
  5. Dodaj współdzielony folder, wybierz tryb synchronizacji i włącz wersjonowanie plików.

Czym jest Syncthing i jak działa?

Syncthing to darmowe oprogramowanie open source do ciągłej synchronizacji plików. Działa w systemach Windows, macOS, Linux i innych desktopowych oraz serwerowych systemach operacyjnych.

Każda instalacja otrzymuje unikalny Device ID — kryptograficzny identyfikator. Zanim dwa węzły zaczną wymieniać dane, musisz dodać je wzajemnie i jawnie przyznać dostęp do konkretnego folderu. Nie ma jednego konta Syncthing przechowującego urządzenia i pliki.

Gdy plik się zmienia, Syncthing dzieli go na bloki, porównuje sumy kontrolne i przesyła tylko brakujące części. Dzięki temu niewielka edycja dużego pliku nie zawsze wymaga wysłania go w całości.

Usługi wykrywania pomagają urządzeniom znaleźć się nawzajem, ale nie przechowują plików. Jeśli bezpośrednie połączenie jest niemożliwe, zaszyfrowany ruch może przejść przez wolniejszy relay.

Co zmienia VPS?

Bez serwera laptop może synchronizować się bezpośrednio z komputerem domowym, ale oba urządzenia muszą być online w tym samym czasie, nawet jeśli tylko przez chwilę. VPS zamienia konfigurację w stale dostępny punkt wymiany.

Przykładowo laptop rano przesyła projekt na serwer i się wyłącza. Wieczorem domowy komputer pobiera nową wersję z VPS-a.

Syncthing dobrze sprawdza się w przypadku dokumentów, notatek Obsidian, kodu źródłowego, zdjęć i folderów rodzinnych. Cache, node_modules i wyniki kompilacji lepiej wykluczyć za pomocą .stignore. Aktywnych baz danych i obrazów maszyn wirtualnych nie należy synchronizować.

VPS tworzy również kopię danych poza domem. Staje się ona jednak prawdziwą kopią zapasową dopiero po połączeniu z wersjonowaniem i osobnym archiwum backupu: przypadkowe usunięcie może także rozprzestrzenić się na każde urządzenie.

Syncthing czy Nextcloud: co wybrać?

Te dwa narzędzia są często porównywane, choć rozwiązują różne problemy.

KryteriumSyncthingNextcloud
ModelFoldery są kopiowane między urządzeniamiPliki są przechowywane na centralnym serwerze
Wymagany serwerNie, VPS jest opcjonalnyTak
Dostęp do plików w przeglądarceBrak pełnoprawnego dysku webowegoTak
Publiczne linkiNieTak
Wspólna edycjaNie jest dostępnaMożna ją dodać
Najlepsze zastosowanieUtrzymywanie tych samych folderów na własnych urządzeniachPrywatna lub zespołowa chmura

Wybierz Syncthing do niezauważalnej synchronizacji w tle. Wybierz Nextcloud, gdy potrzebujesz dostępu przez przeglądarkę, udostępnianych linków, kont użytkowników, kalendarza i funkcji współpracy.

Jak zainstalować Syncthing na VPS-ie za pomocą Docker Compose?

Poniższe kroki dotyczą VPS-a z Ubuntu 24.04. Panel pozostanie przypisany do lokalnego adresu serwera, a połączysz się z nim przez tunel SSH.

1. Zainstaluj Dockera

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

2. Utwórz katalog i plik Compose

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

Wklej:

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

Konfiguracja korzysta z oficjalnego obrazu Syncthing. Tryb sieci host ułatwia połączenia bezpośrednie, a pusta wartość STGUIADDRESS utrzymuje panel pod adresem 127.0.0.1:8384.

Uruchom kontener:

sudo docker compose up -d
sudo docker compose ps

3. Zezwól na połączenia synchronizacyjne

Najpierw zezwól na SSH, aby się nie odciąć:

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

22000/TCP służy głównemu protokołowi synchronizacji, a 22000/UDP jest używany przez QUIC. Nie musisz wystawiać portu panelu 8384. Lokalny port wykrywania 21027/UDP zwykle nie jest potrzebny na publicznym VPS-ie.

4. Otwórz panel przez SSH

Uruchom na swoim komputerze:

ssh -L 9999:127.0.0.1:8384 root@SERVER_IP

Pozostaw terminal otwarty i przejdź do:

http://127.0.0.1:9999

Po otwarciu panelu przejdź do Actions → Settings → GUI i ustaw nazwę użytkownika oraz hasło. Jeśli później chcesz otwierać panel przez domenę, umieść go za reverse proxy z HTTPS i pozostaw włączone uwierzytelnianie.

5. Dodaj urządzenia i folder

Zainstaluj Syncthing na komputerze, a następnie:

  1. Na komputerze i VPS-ie wybierz Actions → Show ID.
  2. Dodaj Device ID każdego węzła do drugiego urządzenia.
  3. Na komputerze kliknij Add Folder, wybierz katalog i udostępnij go serwerowi.
  4. Na VPS-ie zaakceptuj folder i wybierz ścieżkę taką jak /var/syncthing/Files.

Na komputerach pozostaw włączoną opcję Send & Receive dla synchronizacji dwukierunkowej. Na VPS-ie często wygodny jest tryb Receive Only: serwer nadal odbiera i przekazuje zmiany między węzłami, ale przypadkowe lokalne edycje bezpośrednio na VPS-ie nie rozprzestrzenią się po całej sieci.

Dlaczego Syncthing nie zastępuje kopii zapasowej?

Jeśli plik zostanie usunięty lub zaszyfrowany na jednym urządzeniu, zmiana może rozprzestrzenić się na pozostałe. Z tego powodu otwórz ustawienia folderu na VPS-ie i włącz File Versioning.

Praktyczną opcją jest Staggered File Versioning z okresem przechowywania 30–90 dni. Gdy zdalny węzeł zastąpi lub usunie plik, poprzednia wersja zostanie przeniesiona do .stversions. Starsze kopie zajmują miejsce, więc ustaw limit przechowywania.

Niezawodna konfiguracja ma trzy warstwy:

  1. Syncthing aktualizuje działające kopie.
  2. Wersjonowanie pomaga cofnąć niektóre pomyłki.
  3. Osobna zaplanowana kopia zapasowa jest przechowywana niezależnie od Syncthing.

Czy VPS może przechowywać pliki bez dostępu do ich treści?

Syncthing zawiera tryb niezaufanego urządzenia. Ustawiasz hasło folderu na głównym komputerze, a na VPS-ie wybierasz Receive Encrypted. Serwer przechowuje zaszyfrowane dane i może przekazać je innemu zaufanemu urządzeniu używającemu tego samego hasła.

Treść, nazwy plików, znaczniki czasu i struktura katalogów są ukryte. Widoczne pozostają informacje o współdzielonym folderze i przybliżonych rozmiarach plików.

Deweloperzy nadal uznają tę funkcję za eksperymentalną. Przechowuj hasło i Folder ID osobno: bez nich odzyskanie zaszyfrowanego folderu może być niemożliwe.

Jakiego VPS-a potrzebuje Syncthing?

Zużycie zasobów zależy nie tylko od ilości danych, lecz także od liczby plików, częstotliwości zmian i początkowego indeksowania. Dla prywatnego węzła z dokumentami i kilkudziesięcioma gigabajtami danych zwykle wystarczy konfiguracja startowa:

  • 1 vCPU;
  • 1 GB RAM-u;
  • pamięć SSD lub NVMe;
  • wystarczająca ilość miejsca na pliki i .stversions;
  • stabilne połączenie sieciowe.

Duża biblioteka zdjęć lub setki tysięcy plików będą wymagać większych zasobów. Najwyższe obciążenie zwykle występuje podczas pierwszego skanowania i obliczania sum kontrolnych.

Podstawowy VPS Ubuntu od tropic.host nadaje się do tego zadania. Możesz zacząć od małej konfiguracji i zwiększać zasoby wraz ze wzrostem kolekcji. Przy wyborze pojemności dysku uwzględnij nie tylko obecne foldery, lecz także przyszłe pliki, dane tymczasowe i historię wersji.

Pięć błędów, których należy unikać

  • Wystawienie portu 8384 na cały Internet. Do konfiguracji użyj tunelu SSH. Przy stałym dostępie webowym użyj HTTPS, hasła i reverse proxy.
  • Traktowanie kopii serwerowej jako pełnego backupu. Włącz wersjonowanie i twórz osobne archiwa kopii zapasowych.
  • Synchronizowanie cache i zależności. Wyklucz niepotrzebne katalogi za pomocą .stignore.
  • Ignorowanie zużycia dysku. Katalog .stversions może z czasem znacznie urosnąć.
  • Pozostawienie zaufanego utraconego urządzenia. Usuń je z pozostałych węzłów i chroń konfigurację Syncthing zawierającą klucze urządzeń.

Co trzeba wiedzieć o smartfonach?

Oficjalna aplikacja na Androida została wycofana pod koniec 2024 roku, ale dostępne są klienci społeczności. Oficjalnego klienta iOS również nie ma: ograniczenia działania w tle utrudniają ciągłą synchronizację. Przed podłączeniem głównej biblioteki zdjęć przetestuj wybraną aplikację mobilną na małym folderze.

Podsumowanie

Syncthing jest odpowiedni dla osób, które chcą mieć te same foldery na kilku urządzeniach bez obowiązkowego pośrednika w chmurze. VPS ułatwia cały system: komputery nie muszą być online jednocześnie, a ty zyskujesz stale dostępną kopię poza domem.

W bezpiecznej konfiguracji nie wystawiaj bezpośrednio panelu administracyjnego, włącz wersjonowanie i uzupełnij synchronizację niezależną kopią zapasową.

FAQ

Czy potrzebuję VPS-a do Syncthing?

Nie. Urządzenia mogą synchronizować się bezpośrednio. VPS pełni rolę stale włączonego węzła, który pozwala im wymieniać zmiany w różnym czasie.

Czy mogę otworzyć pliki Syncthing w przeglądarce?

Panel webowy służy do konfiguracji, a nie do przeglądania dokumentów jak w Google Drive. Jeśli potrzebujesz dysku webowego, lepszym wyborem będzie Nextcloud.

Czy Syncthing jest rozwiązaniem do tworzenia kopii zapasowych?

Nie. Usunięcia i uszkodzenia mogą rozprzestrzenić się na inne urządzenia. Wersjonowanie pomaga, ale nie zastępuje niezależnej kopii zapasowej.

Czy muszę otworzyć port 8384?

Nie. Pozostaw panel na 127.0.0.1:8384 i łącz się przez tunel SSH. Otwórz 22000/TCP oraz 22000/UDP do synchronizacji.

Czy właściciel VPS-a może odczytać pliki?

Przy standardowej konfiguracji potencjalnie tak. Receive Encrypted przechowuje je w zaszyfrowanej postaci, ale funkcja jest nadal uznawana za eksperymentalną i wymaga bezpiecznego przechowywania hasła oraz Folder ID.