Syncthing bietet sich als freie Alternative zu Bittorrent Sync für die Synchronisation von Daten auf lokalen und entfernten Rechnern sowie mobilen Geräten unter verschiedenen Betriebssystemen an.
Für den Abgleich von Daten zwischen verschiedenen Geräten sprechen mehrere Gründe: Einerseits lassen sich so auf einer Workstation und einem Notebook bestimmte Verzeichnisse auf demselben Stand halten und mit anderen teilen. Andererseits sichern Sie auf diese Weise wachsende Datenbestände wie Video- oder Musiksammlungen von Zeit zu Zeit auf verschiedenen Systemen.
Diese Szenarien erfüllen weit verbreitete Dienste wie Dropbox, Google Drive, Box und zahlreiche andere Anbieter. Dabei geben Sie als Nutzer Ihre Daten allerdings in die Cloud des jeweiligen Dienstes – und damit auch auf Server in Ländern wie den USA, deren Geheimdienste ein nur noch als pathologisch zu bezeichnendes Interesse an Daten aller Art besitzen. Über diese Tatsache sollten Sie sich vor Benutzung eines solchen Dienstes klar sein.
Freiheit ist Trumpf
Mit Bittorrent Sync [1] steht seit 2013 eine Alternative zur Verfügung, die auf dem Peer-to-Peer-System des Bittorrent-Protokolls basiert. Peer-to-Peer (P2P) steht für ein Modell eines gleichberechtigten Rechnerverbunds, der nicht zwingend zentrale Server benötigt [2]. Somit existiert bei Bittorrent Sync keine zentrale Instanz, die Daten vorhält und verteilt, womit ein wichtiger Kritikpunkt an dieser Software-Gattung entfällt.
Viele Linux-Anwender wünschen sich nun jedoch möglichst freie Software: Diesen Punkt erfüllt Bittorrent Sync nicht – das Programm wird als Freeware vertrieben, der Quellcode liegt nicht offen. Als freie Alternative bietet sich seit 2014 Syncthing [3] an (Abbildung 1), das wie Bittorrent Sync Peer-to-Peer-Technik einsetzt, dessen Quellcode jedoch unter der Mozilla Public Licence [4] steht.
Im Gegensatz zu anderen freien Cloud-basierten Speicherlösungen wie etwa Owncloud lagert Syncthing wie Bittorrent Sync die hochgeladenen Daten nicht auf einem zentralen Server, sondern verteilt sie auf den am P2P-Netzwerk beteiligten Rechnern, im Fachjargon Nodes oder Knoten genannt. Für den dafür nötigen Datenaustausch entwickelte das Syncthing-Team das offene Block Exchange Protocol [5]. Starke Verschlüsselungsalgorithmen sorgen dafür, dass nur Sie als Benutzer an Ihre Daten kommen.
Syncthing gleicht Daten im lokalen Netzwerk sowie zwischen entfernten Rechnern ab. Um dies auch außerhalb des heimischen Netzes für den Anwender möglichst einfach zu gestalten, setzt die Software – wie das Vorbild Bittorrent Sync – auf UPNP [6], das Sie dazu gegebenenfalls im Router freischalten müssen. Bei den meisten Routern sollte diese Funktion von Haus aus aktiv sein und der Router die nötigen Portweiterleitungen automatisch einrichten. Bietet Ihr Router kein UPNP, müssen Sie das Port-Forwarding manuell konfigurieren. Hierzu reichen Sie für das Einbinden entfernter Rechner den TCP-Port 22000 zu Ihrem Rechner durch. Arbeitet der Computer hinter einer lokalen Firewall, so leiten Sie neben Port 22000/TCP und auch noch den UDP-Port 21025 weiter.
Das Syncthing-Team arbeitet ständig an der Entwicklung der Software und veröffentlicht regelmäßig im Turnus von etwa ein bis zwei Wochen Aktualisierungen. Syncthing unterstützt neben Linux, jeweils in 32- und 64-Bit, auch verschiedene BSD-Derivate, Solaris, Android, Windows und Mac OS X. Eine App für iOS steht demnächst zur Veröffentlichung an.
Unter Arch Linux installieren Sie Syncthing über das Community-Repository, bei aktuellen Ausgaben von Fedora und OpenSuse steht das Programm ebenfalls in den Paketquellen. Für Debian, Ubuntu und deren Abkömmlinge gibt es ein Repository zum Einbinden [7]. Syncthing versteht sich mit ARM-CPUs und läuft somit auf dem Raspberry Pi, Raspberry Pi 2 und anderen Mini-PCs sowie auf NAS-Systemen von Synology. Für Android finden Sie Syncthing im Google Play Store [8] oder im Open-Source-Market F-Droid [9].
Der erste Start
Nach der Installation in der jeweiligen Distribution rufen Sie Syncthing über das Menü oder in einem Terminal mit normalen Benutzerrechten auf. Das für diesen Test genutzte Szenario bestand aus einem System mit Debian “Sid”, jeweils einem Notebook mit Fedora 22 und Siduction sowie einem Android-Smartphone.
Beim ersten Start generiert Syncthing Schlüssel und Zertifikate, die einen sicheren Austausch der Daten im Netz garantieren. Das Programm öffnet danach automatisch das Web-Interface in einem Browser – eine herkömmliche Oberfläche bietet Syncthing von Haus aus nicht. Diese müssten Sie mit Syncthing-GTK noch nachinstallieren (Abbildung 2). Auf GitHub [10] stehen Pakete für verschiedene Distributionen bereit. Beim Einrichten der Pakete sollten Sie allerdings darauf achten, dass die angegebenen Abhängigkeiten vorab installiert sind.
Konfiguration
Die ersten Schritte setzen voraus, dass Sie Syncthing auf allen Knoten starten, also allen Rechnern, die dem Verbund angehören sollen. Im ersten Schritt wenden Sie sich den Einstellungen des Web-Interfaces zu, die Sie über das Zahnrad-Symbol oben rechts auf der Webseite erreichen (Abbildung 3). Achten Sie hier besonders auf die Unterpunkte Einstellungen und ID anzeigen.
Unter Einstellungen tragen Sie einen eindeutigen Gerätenamen ein, als Standard nutzt Syncthing den Hostnamen des Geräts. Sollten Sie mit der Bandbreite des Internetanschlusses sparsam umgehen müssen, beschränken Sie hier zudem die Datenraten. Der Standard 0 nutzt die komplett verfügbare Bandbreite. Falls vorhanden, aktivieren Sie hier UPNP und definieren, ob Syncthing den Rechner global und lokal bekannt machen soll. Zudem schalten Sie an dieser Stelle HTTPS ein und vergeben einen Nutzernamen mitsamt Passwort für die Weboberfläche.
Der Haken bei Anonymer Nutzungsbericht sendet Informationen an das Projekt, die Aufschluss über das Nutzerverhalten geben, um die Entwicklung dementsprechend anzupassen. Nähere Informationen vermittelt der Link hinter der Option. Die weiteren Optionen müssen Sie vorerst nicht weiter beachten. Alle Einstellungen lassen sich alternativ auch in ~/.config/syncthing/ einsehen und mit einem Texteditor bearbeiten.
Das Node-Netzwerk
Nachdem Sie die Einstellungen auf alle beteiligten Knoten übertragen haben, geht es an das Bekanntmachen der Geräte untereinander. Dazu dient die auf jedem Gerät beim ersten Start aus den Informationen im Zertifikat erzeugte, 46-stellige individuelle Geräte-ID, die Sie über den Unterpunkt ID anzeigen erreichen.
Diese ID übertragen Sie entweder in Form einer Textdatei mithilfe eines USB-Sticks, lesen sie mit einem Smartphone und einem Barcode-Scanner ein (Abbildung 4) oder verteilen sie per E-Mail oder diverse andere Webdienste. Im Syncthing-Frontend übernehmen Sie die ID dann über den Punkt Gerät hinzufügen samt des vorher vergebenen Gerätenamens. Mit der Option Verteilergerät bestimmen Sie, ob alle Knoten, die beim Verteilersystem eingetragen sind, auch auf dem neuen Gerät genutzt werden sollen.
Mittels der ID und des eindeutigen Gerätenamens halten Sie nun nicht nur Daten auf Ihren Geräten synchron, sondern teilen auch Inhalte mit Arbeitskollegen und Freunden. Die grafische Oberfläche von Syncthing-GTK konfigurieren Sie über das Syncthing-Icon oben links im Fenster unter UI-Settings. Dort erfolgt unter anderem das Einbinden des Dienstes in die Dateimanager von Gnome, Cinnamon oder Mate.
Weitere Verzeichnisse hinzufügen
Beim ersten Start erstellt Syncthing im Home-Verzeichnis des jeweiligen Geräts als Standard den Ordner ~/Sync. Alle hier abgelegten Dateien und rekursiv auch alle enthaltenen Unterverzeichnisse samt deren Inhalten bezieht es automatisch in den Datenabgleich mit ein. Bei größeren zu synchronisierenden Datenmengen ergibt es aber durchaus Sinn, weitere Ordner mit eigenen Einstellungen zur Syncthing-Konfiguration hinzuzufügen.
Nach einem Klick auf Verzeichnis hinzufügen oder Add Shared Folder aus dem Menü von Syncthing-GTK (Abbildung 5) tragen Sie in die Maske bei Verzeichnis ID eine eindeutige Bezeichnung des Ordners ein und navigieren anschließend zum Zielverzeichnis. Das Verzeichnis muss auf allen Rechnern eingerichtet sein und die ID identisch ausfallen. Das jeweilige Zielverzeichnis darf allerdings auf jedem Gerät unterschiedlich heißen.

File Versioning erstellt Syncthing automatisch Sicherheitskopien.” width=”286″ height=”300″ />
Abbildung 5: Mithilfe vonFile Versioning erstellt Syncthing automatisch Sicherheitskopien.Bei den weiteren Einstellungen sticht die Option Keine Veränderungen zulassen ins Auge. Aktivieren Sie diese, schützt Syncthing das entsprechende Verzeichnis vor Veränderung durch andere Geräte. Auf diesem Gerät erstellte Änderungen überträgt Syncthing hingegen nach wie vor auf den Rest des Verbunds. Erst wenn Sie eine Datei in einem der geschützten Verzeichnisse löschen, verschwindet sie auch auf den anderen Geräten.
Die Option Suchintervall (in aktuellen Versionen der Anwendung Scanintervall) bestimmt, wie oft Syncthing nach neuen oder geänderten Daten sucht. Auf leistungsschwächeren Systemen dürfen Sie die vordefinierte Ruhepause von 60 Sekunden ruhig etwas verlängern. Bei Bedarf lesen Sie mit einem Klick auf Alle überprüfen (auch Alle neu scannen) jederzeit alle beteiligten Verzeichnisse neu ein.
Unter dem Punkt Dateiversionierung bietet Syncthing verschiedene Modi zum Erstellen und Organisieren von Sicherungskopien der mit Syncthing verwalteten Daten [11]. Je nach Bedarf verzichten Sie komplett auf Sicherungen oder nutzen eine einfache Versionierung, bei der Syncthing eine festgelegte Anzahl von Kopien der gelöschten oder geänderten Dateien im versteckten Verzeichnis .stversions aufbewahrt. Bei der Spielart Stufenweise Versionierung lässt sich sogar ein Verfallsdatum der versionierten Kopien festlegen. Bei der externen Versionierung schiebt ein externer Befehl die Sicherheitskopie an.
Liegen die Daten des hinzugefügten Verzeichnis auf einem Dateisystem ohne Rechteverwaltung, wie etwa FAT, sorgt sie mit der Option Berechtigungen ignorieren dafür, dass Änderungen an den Dateirechten unter den Tisch fallen. Unter Teilen mit diesen Geräten wählen Sie nun die Syncthing-Geräte aus, mit denen dieses Verzeichnis abgeglichen werden soll. Bei Bedarf schließen Sie unter dem Punkt Ignoriermuster Unterverzeichnisse vom Abgleich aus. Nach dem Freigeben des neuen Ordners müssen Sie die Integration auf den angebundenen Rechnern bestätigen (Abbildung 6).

Abbildung 6: Ein neues Verzeichnis eines entfernten Rechners müssen Sie auf dem Zielrechner bestätigen.
Android-App
Die Syncthing-Android-App (Abbildung 7) steckt noch in einem frühen Entwicklungsstadium, lässt sich allerdings im Großen und Ganzen bereits sinnvoll nutzen. Die App gibt von Haus den Ordner frei, in dem die Kamera des Smartphones oder Tablets Bilder ablegt. Wie beim Desktop-Pendant teilt die App bei Bedarf aber auch weitere Verzeichnisse mit dem Syncthing-Netz. Die Konfiguration verläuft analog zur PC-Version; zusätzlich bietet die App die Möglichkeit, nur im WLAN oder beim Aufladen das Handys aktiv zu werden.

Abbildung 7: Syncthing für Android sollten Sie aufgrund des Leistungshungers nur bei Bedarf starten.
Der Leistungshunger der App gehört generell zu ihren größten Schwächen. Mit der Einstellung auf dem Handy ständig nach Änderungen suchen und neue Daten zu synchronisieren (Abbildung 8), bleibt Syncthing durchgehend aktiv, sodass sich das von uns zum Test genutzte Smartphone wesentlich aufheizte und die Akkulaufzeit spürbar abbaute. Daher empfiehlt es sich, Syncthing nur bei Bedarf zu starten, statt den Daemon im Hintergrund laufen zu lassen.

Abbildung 8: Syncthing beeinträchtigt aktuell die Akkulaufzeit nachhaltig, deaktivieren Sie daher den Hintergrunddienst.
Fazit
Syncthing ist in allen Bestandteilen frei, in ständiger Entwicklung und auf einem sehr guten Weg. Noch fehlt der Anwendung jedoch der letzte Schliff. Das soll aber keinesfalls heißen, Syncthing erfülle seinen Zweck nicht zuverlässig. Bei unserer Testreihe funktionierte die Synchronisation zwischen allen Geräten und in angemessener Zeit einwandfrei. Verzögerungen, wie etwa die rund einminütige Denkpause bei einem Neustart des Daemons (den es bei jeder Änderung an den Einstellung braucht), sind dem P2P-Prinzip geschuldet.
Der etwas unfertige Eindruck, der sich bei der vorliegenden Version 0.11.7 durchaus tolerieren lässt, entstand durch relativ häufige Fehlermeldungen, die trotz einwandfreier Synchronisation einen Fehler anzeigten, den es nicht gab. Beim vorherrschenden Entwicklungstempo sollte das Team rund um das Programm solche Kleinigkeiten aber bald ausräumen können.
Die Dokumentation, die derzeit ausschließlich auf Englisch vorliegt, hilft über die ersten Hürden bei der Einrichtung hinweg [12]; ein Youtube-Video erklärt auf Deutsch die Installation auf Debian und dessen Derivaten [13]. Dazu gibt es eine erweiterte Dokumentation [14], eine recht ausführliche FAQ [15] und eine Erklärung, wie man bei Bedarf die Netzwerkeinstellungen in Router und Firewall vornehmen muss [16].
Syncthing unterstützt viele Plattformen und eignet sich sowohl zur heimischen Datensynchronisation als auch zum Datenaustausch in Arbeitsgruppen oder mit Freunden. Die recht einfache Konfiguration und die fehlerfreie Synchronisation über mehrere Geräte lässt über die kleinen Nickeligkeiten hinwegsehen, die derzeit noch bestehen, und machen Syncthing zu einer empfehlenswerten freien Software, auf die vermutlich viele Anwender bereits gewartet haben.
Infos
[1] Bittorrent Sync: https://www.getsync.com/intl/de/platforms/desktop
[2] P2P: http://de.wikipedia.org/wiki/Peer-to-Peer
[3] Syncthing: https://syncthing.net
[4] Mozilla Public Licence: http://de.wikipedia.org/wiki/Mozilla_Public_License
[5] Block Exchange Protocol https://github.com/syncthing/specs/blob/master/BEPv1.md
[6] UPNP: http://de.wikipedia.org/wiki/Universal_Plug_and_Play
[7] Debian-Repo: http://apt.syncthing.net
[8] Syncthing auf Google Play: https://play.google.com/store/apps/details?id=com.nutomic.syncthingandroid
[9] Syncthing bei F-Droid: https://f-droid.org/repository/browse/?fdid=com.nutomic.syncthingandroid
[10] Syncthing-GTK: https://github.com/syncthing/syncthing-gtk
[11] “File Versioning”: http://docs.syncthing.net/users/versioning.html
[12] Startanleitung: http://docs.syncthing.net/intro/getting-started.html
[13] Youtube-Video: https://www.youtube.com/watch?v=Gh5nUlDzqJc
[14] Dokumentation: http://docs.syncthing.net
[15] FAQ: http://docs.syncthing.net/users/faq.html#faq
[16] Netzwerkeinstellungen: http://docs.syncthing.net/users/firewall.html#firewall-setup









