Syncthing P2P Dateiaustausch – Installation unter Debian

Ich hatte vor kurzem einen Artikel über die Software Syncthing gelesen. Syncthing ist eine Software die die Dateisynchronisation mittels Peer-to-Peer (P2P) ermöglicht. Sie ist zudem Open-Source (MIT-Lizenz) und läuft sowohl auf Linux, Windows, Mac OS und Smartphones mit Android.

Mit Syncthing lässt sich die eigene private Cloud zum Austausch der Dateien über alle Clients hinweg realisieren.

Da als Technik P2P eingesetzt wird, gibt es keinen zentralen Server, alle Clients = Devices sind eigenständige Knoten im dezentralen Netzwerk. Die Devices werden untereinander mittels einer 46-stelligen ID erkannt und verbunden. Die Verbindung selbst erfolgt verschlüsselt über ein eigenes TLS Zertifikat mit128bit AES Algorithmus, aber auch ein gekauftes Zertifikat kann verwendet werden.

Die aktuelle Version ist die 0.14.10, welche sich noch in der Beta-Phase befindet und von daher mit etwas Vorsicht zu genießen ist. Einen Blick bzw. Einsatz ist sie dennoch wert.

Ich fand das Thema recht spannend und wollte mehr wissen. Nachfolgend eine Anleitung zur Installation von Syncthing (0.14.10) unter Debian (8.6) als auch unter Windows 10.

Für ein erstes Kennenlernen soll ein Windows10 Client Daten mit einem Debian Server synchronisieren. In diesem Artikel geht es um die Installation und Einrichgung unter Debian. Windows10 wird in einem weiteren Artikel behandelt.

Syncthing unter Debian einrichten

Da es für Debian offizielle Repository Quellen von Syncthing gibt, werde ich diese nun auf dem Debian Server hinterlegen.

  • PGP Keys für Syncthing hinterlegen (-s = silent):
    • # curl -s https://syncthing.net/release-key.txt | sudo apt-key add –
    • den „release“ Channel zur APT-Sourcelist hinzufügen:
      • # echo „deb http://apt.syncthing.net/ syncthing release“ | sudo tee /etc/apt/sources.list.d/syncthing.list
    • Quellen aktualisieren
      • # aptitude update
    • Syncthing installieren
      • # aptitude install syncthing

Syncthing – Systemd als Dienst einrichten

Als nächstes gilt es Syncthing mit eigenem Benutzer zu versehen und für den Systemstart automatisch mit zustarten:

  • User Syncthing erstellen
    • # useradd -r syncthing -m -d /home/syncthing
    • r = erstellt einen Systemuser
    • m = Home Verzeichnis für User erstellen
    • d = gibt den Pfad zum Home Verzeichnis an
  • Autostart bei Systemstart einrichten
    • # systemctl enable syncthing@syncthing.service
    • Created symlink from /etc/systemd/system/multi-user.target.wants/syncthing@syncthing.service to /lib/systemd/system/syncthing@.service.
    • erstellt einen symbolischen Link mit dem Servicenamen syncthing und dem Benutzer von oben syncthing
  • starten des Syncthing Dienstes
    • # systemctl start syncthing@syncthing.service
  • prüfen des Status
    • # systemctl status syncthing@syncthing.service
      syncthing@syncthing.service – Syncthing – Open Source Continuous File Synchronization for syncthing
      Loaded: loaded (/lib/systemd/system/syncthing@.service; enabled)
      Active: active (running) since So 2016-11-13 02:22:23 CET; 9s ago
      Docs: man:syncthing(1)
      Main PID: 2726 (syncthing)
      CGroup: /system.slice/system-syncthing.slice/syncthing@syncthing.service
      \u2514\u25002726 /usr/bin/syncthing -no-browser -no-restart -logflags=0syncsrv01 syncthing[2726]: [GVB7M] INFO: Using discovery server https://discovery-v6-3.syncthi…ZRDQZ
      syncsrv01 syncthing[2726]: [GVB7M] INFO: Using discovery server https://discovery-v6-4.syncthi…2MIAW
      syncsrv01 syncthing[2726]: [GVB7M] INFO: TCP listener ([::]:22000) starting
      syncsrv01 syncthing[2726]: [GVB7M] INFO: Device xxx-xxx…amic]
      syncsrv01 syncthing[2726]: [GVB7M] INFO: Loading HTTPS certificate: open /home/syncthing/.conf…ctory
      syncsrv01 syncthing[2726]: [GVB7M] INFO: Creating new HTTPS certificate
      syncsrv01 syncthing[2726]: [GVB7M] INFO: Completed initial scan (rw) of folder vqpae-pyzhr
      syncsrv01 syncthing[2726]: [GVB7M] INFO: GUI and API listening on 127.0.0.1:8384
      syncsrv01 syncthing[2726]: [GVB7M] INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
      syncsrv01 syncthing[2726]: [GVB7M] INFO: Joined relay relay://212.51.138.60:80
      Hint: Some lines were ellipsized, use -l to show in full.
    • Syncthing ist aktiviert und läuft
    • Syncthing lauscht per Default auf 127.0.0.1 und Port 8384
    • Syncthing  erstellt eine Konfigurationsdatei unter /home/syncthing/.config/syncthing/ und den Hauptordner /home/syncthing/Sync, sowie der Hauptkonfigurationsdatei .config/syncthing/config.xml
  • prüfen der Verbindung zur GUI
    • # curl -I 127.0.0.1:8384
      HTTP/1.1 200 OK
      Content-Length: 41740
      Content-Type: text/html
      Set-Cookie: CSRF-Token-GVB7M=xxx
      X-Syncthing-Id: xxx-xxx
      X-Syncthing-Version: v0.14.10

Syncthing – anpassen der Konfiguration

Als nächstes ändere ich das Homeverzeichnis und erlaube den Remotezugriff.

# nano /home/syncthing/.config/syncthing/config.xml

  • Anpassen des Sync-Hauptordners von:
    • path=“/home/syncthing/Sync/“
  • Zugriff von außen ermöglichen und IP und Port ändern von:
    • <address>127.0.0.1:8384</address>
    • in: <address>0.0.0.0:29333</address>

Syncthing Dienst neustarten und Änderungen übernehmen

# systemctl restart syncthing@syncthing.service

Aufruf der Syncthing Web-GUI über: https://syncthingserver:29333/ oder http://syncthingserver:29333/

Syncthing – Sicherheit Benutzer und Passwort setzen

In der Web-GUI sollte als erstes der Benutzer und ein Passwort festgelegt werden.

Unter Aktion -> Einstellung die Optionen:

Syncthing Menü

Syncthing Menü

  • Nutzername für Zugang zur Benutzeroberfläche
  • Passwort für Zugang zur Benutzeroberfläche

festlegen.

Syncthing User Password

Syncthing User Password

Im selben Menü kann auch der Zugang zur Web-GUI fest auf HTTPS gesetzt werden.

Syncthing use HTTPS

Syncthing use HTTPS

Fehler – Creating folder marker: open /mnt/cluster/backup/syncthing/.stfolder: permission denied und Stopping folder „vqpae-pyzhr“ – folder marker missing

Syncthing Permission Denied

Syncthing Permission Denied

Webseite Syncthing: https://syncthing.net/

Lösung

  • prüfen der Berechtigungen für den User Syncthing
  • und ich musste die Option „Berechtigungen ignorieren“ in der Web-GUI auf  „Ja“ setzen
Syncthing Permission Ignore

Syncthing Permission Ignore

Damit konnte auch die Datei .stfolder erstellt werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.