c't 14/2021
S. 140
Praxis
Raspi-Backup: Raspi einrichten
Bild: Albert Hulm

Ding zum Sichern

Plattformunabhängiges Backup mit Syncthing

Die quelloffene Software Syncthing gleicht Ordnerinhalte zwischen Geräten ab und lässt sich auch hervorragend zur Daten­sicherung einsetzen – zum ­Beispiel auf einem Raspberry Pi mit großer Festplatte als ­zentraler Backup-Speicher für all Ihre Rechner, Smartphones & Co.

Von Jan Schüßler

Syncthing eignet sich, um etwa die mit dem Smartphone geschossenen Fotos automatisch und ganz ohne Cloud auf den Rechner zu befördern, auf einem Raspi taugt es aber auch als zentraler Backup-Speicher für das digitale Hab und Gut der ganzen Familie. Nach der Einrichtung muss man sich um Syncthing nicht mehr kümmern, es erledigt still und zuverlässig seinen Job. Die Datenübertragung erfolgt stets Ende-zu-Ende-verschlüsselt.

Im Gegensatz zum funktional vergleichbaren Resilio Sync handelt es sich bei Syncthing um quelloffene Software, und anders als bei Tools wie Robocopy oder Synchredible geschieht die Synchronisierung nicht durch direktes Kopieren zwischen Dateisystemen, sondern via Peer-to-Peer-Übertragung (P2P). Es muss auf jedem beteiligten Gerät laufen. Um was für welche es sich dabei handelt, ist allerdings beinahe egal: Weil Syncthing quelloffen ist, gibt es die Software für die meisten gängigen Plattformen wie Windows, Linux und macOS und für ein paar weniger gängige Systeme. Auch für An­droid und iOS gibts passende Apps, und sogar für die NAS-Betriebssysteme von QNAP und Synology.

Das Charmante an Syncthing ist außerdem, dass man einen synchronisierten Speicherplatz auf einem Netzwerkgerät bekommt, ohne dafür groß mit NAS-Diensten, Netzwerkkonfigurationen und Benutzerrechten hantieren zu müssen – dank grafischer Oberfläche ist die Einrichtung sehr einfach und schnell erledigt. Wer will, kann Syncthing nicht nur im lokalen Netz nutzen, sondern auch übers Internet: Praktischerweise existiert ein Community-betriebenes Netz von Discovery- und Relay-Servern, damit Daten auf Wunsch auch über NAT-Grenzen hinweg synchronisiert werden können. Relays speichern Inhalte bei Bedarf zwischen, sodass die Synchronisierung zwar verzögert wird, nicht aber komplett abbricht, sollte ein Gerät zeitweilig die Internetverbindung verlieren. Die Verschlüsselung bleibt dabei bestehen.

Ideal ist ein Syncthing-gestütztes Backup für Nutzdaten wie Dokumente, Musik und Fotos. Das gilt vor allem, wenn man die integrierte Versionierung einschaltet: Dann speichert Syncthing Dateien beim Ändern oder Löschen in einem Versionsarchiv, aus dem sich ältere Versionen bei Bedarf wiederherstellen lassen. Das ist nicht nur ein Sicherheitsnetz gegen versehentliche Änderungen, sondern auch gegen Verschlüsselungstrojaner.

Bedenken Sie aber, dass zu einer umfassenden Backup-Strategie mitunter weitere Aspekte gehören können. Bei Windows-PCs mit lange gewachsenen, individuellen Installationen etwa empfehlen sich zusätzlich komplette System-Backups, mit denen man den kompletten Installations- und Konfigurationszustand eines Rechners im Handumdrehen wiederherstellen kann. Dafür eignet sich zum Beispiel unser Tool c’t-WIMage [1], aber auch andere Software wie Drive Snapshot, Acronis True Image und Ähnliche [2]. Ein gutes Backup folgt zudem der 3-2-1-Regel: Drei Kopien (das Original zählt mit), davon zwei auf verschiedenen Medien­typen, und eines davon außer Haus – mehr dazu lesen Sie in [3].

In diesem Artikel erklären wir die ­Installation von Syncthing auf Windows 10, Ubuntu Linux, Android und iOS sowie auf einem Raspi 4 mit dem regulären Raspberry Pi OS mit Desktopumgebung – macOS haben wir hier ausgeklammert, weil es mit Time Machine bereits eine eigene, ähnlich funktionierende Lösung mitbringt. Der Raspi 4 eignet sich dank USB 3.0 zusammen mit einer externen Festplatte hervorragend als dauerverfügbarer Backup-Speicher. Im nachfolgenden Artikel lesen Sie, wie Sie Syncthing auf den Clients für die Datensicherung auf einem zentralen Backup-Raspi konfigurieren und wie Sie Daten daraus im Falle eines Falles wiederherstellen.

Allgemeines

Syncthing arbeitet im Hintergrund und stellt zur Konfiguration ein Web-Frontend auf HTTP-Port 8384 bereit. Das heißt: Läuft Syncthing, lässt die Oberfläche im lokalen Webbrowser durch Eingabe der Adresse 127.0.0.1:8384 aufrufen. Ein separates Konfigurationsprogramm wird nicht mitgeliefert. Es ist nicht nötig und auf dem Desktop zunächst auch nicht enthalten. Wer trotzdem eins haben will: Für Linux gibt es Tools wie Syncthing-GTK, das auch in den Repositories einiger Distributionen enthalten ist. Auf Windows-Systemen empfiehlt sich SyncTrayzor (siehe ct.de/yg6h). Es bringt die Syncthing-Engine gleich mit und zeigt die bekannte Ober­fläche in einem eigenen Programmfenster. Außerdem legt es ein Status-Icon für den Infobereich in der Taskleiste ab.

Auf Windows und Linux hat Syncthing die Eigenart, nicht automatisch zu starten, weshalb dafür ein paar zusätzliche Handgriffe nötig sind.

Installation auf Windows

Für Windows gibt es keinen Installer, sodass Sie Syncthing händisch in einen Programmordner kopieren müssen, den Sie zunächst erstellen. Öffnen Sie den Datei-Explorer und dann Laufwerk C: per Doppelklick. Mit einem Rechtsklick in den leeren Bereich des Laufwerks und Auswahl von „Neu/Ordner“ erstellen Sie ein Verzeichnis für die Programmdateien. Nennen Sie ihn zum Beispiel „Syncthing“. Darin legen Sie nun die zuvor heruntergeladenen, entpackten Programmdateien ab.

Um Syncthing nach einem Neustart des Rechners automatisch starten zu lassen, empfiehlt sich die Windows-Aufgabenplanung: Drücken Sie die Windows-­Taste, tippen Sie taskschd.msc ein und bestätigen Sie mit der Eingabetaste. Klicken Sie rechts auf „Aufgabe erstellen“. Auf der Registerkarte „Allgemein“ vergeben Sie einen Namen wie „Syncthing automatisch starten“ und markieren die Sicherheitsoption „Unabhängig von der Benutzeranmeldung ausführen“.

Auf der Registerkarte „Trigger“ klicken Sie auf „Neu“. Für „Aufgabe starten“ wählen Sie „Beim Start“ und bestätigen mit OK. Wechseln Sie nun zur Registerkarte „Aktionen“ und klicken Sie auch hier auf „Neu“ und dann bei „Programm/Skript“ auf „Durchsuchen ...“. Wählen Sie die zuvor nach C:\Syncthing kopierte Programmdatei namens „syncthing.exe“ per Doppelklick aus. Ins Feld „Argumente hinzufügen (optional)“ tragen Sie

--no-console --no-browser

ein. Entfernen Sie dann noch auf der Registerkarte „Einstellungen“ das Häkchen vor „Aufgabe beenden, falls Ausführung länger als ...“. Wenn Syncthing auf Notebooks auch im Akkubetrieb funktionieren soll, entfernen Sie außerdem auf der Registerkarte „Bedingungen“ noch die Häkchen vor „Beenden, wenn Computer in den Akkubetrieb wechselt“ und vor „Aufgabe nur starten, falls Computer im Netzbetrieb ausgeführt wird“. Prinzipiell ist das sinnvoll, es kann beim Sync größerer Datenmengen allerdings zu einem höheren Stromverbrauch führen – und auch das Datenvolumen einer eventuellen Mobilfunkverbindung stark belasten (Tipps zur Schonung des Datenvolumens finden Sie in [4]).

Läuft Syncthing im Hintergrund? Das können Sie einfach durch Eingabe der Adresse 127.0.0.1:8384 in einem beliebigen Browser prüfen. Es öffnet sich das Webinterface, über das Syncthing auch konfiguriert wird.

Bestätigen Sie nun den Aufgabendialog mit OK – nach Bestätigung durch Eingabe Ihres Windows-Kennworts ist der Syncthing-Autostart eingerichtet. Testen können Sie das ganz einfach, indem Sie nach einem Windows-Neustart die Syncthing-Oberfläche unter 127.0.0.1:8384 aufrufen. Beim ersten Start von Syncthing bekommen Sie im Regelfall auch eine Firewall-Abfrage – erlauben Sie dem Programm die Kommunikation.

Linux

Syncthing ist in den Repositorys vieler Desktop-Linux-Distributionen enthalten, etwa bei Ubuntu und seinen Derivaten, bei OpenSUSE Leap und bei Debian – es lässt sich einfach über die Softwareverwaltung finden und installieren. Alternativ installieren Sie es unter Ubuntu & Co. auch per Konsole mit dem Bash-Kommando

sudo apt install syncthing

Leider startet Syncthing damit noch nicht automatisch. Damit das bei der Benutzeranmeldung geschieht, kann man einen Autostart-Manager verwenden, wenn die Distribution einen bietet. Falls nicht, tut es unter Ubuntu auch das Bash-Kommando

cp /usr/share/applications/syncthing-start.desktop ~/.config/autostart/

Der Befehl legt eine Syncthing-Programmverknüpfung in den Autostart-Ordner des gerade angemeldeten Benutzerprofils – nach dem nächsten Einloggen in Ihr Profil sollte Syncthing automatisch laufen und im Browser unter 127.0.0.1.8384 aufrufbar sein.

Damit Syncthing mit Windows startet, müssen Sie eine passende Aufgabe in die Aufgabenplanung eintragen.

Raspberry Pi OS

Im regulären Software-Repository der Linux-Variante Raspberry Pi OS ist Syncthing zwar enthalten. Wir empfehlen allerdings die Installation aus dem APT-Repository von Syncthing selbst – die Einrichtung des Autostarts lief damit glatter ab. Zunächst importiert der Konsolenbefehl

sudo curl -s -o /usr/share/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg

den PGP-Schlüssel des Repositorys. Fügen Sie dann die Paketquelle hinzu:

echo "deb [signed-by=/usr/share/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

Nun sorgen Sie noch dafür, dass Syncthings eigenes Repository bei der Installation bevorzugt wird:

printf "Package: *\nPin: origin apt.syncthing.net\nPin-Priority: 990\n" | sudo tee /etc/apt/preferences.d/syncthing

Nun aktualisieren Sie die Paketquellen per

sudo apt-get update

und installieren Syncthing mit

sudo apt-get install syncthing

Jetzt müssen Sie noch dafür sorgen, dass Syncthing beim Systemstart automatisch geladen wird. Das lässt sich einfach mit systemd erledigen, und zwar mit

sudo systemctl enable syncthing@pi

sowie

sudo systemctl start syncthing@pi

Nach einem Neustart sollte Syncthing automatisch starten, was Sie einfach prüfen können, indem Sie versuchen, die Weboberfläche von Syncthing im Browser via 127.0.0.1:8384 aufzurufen.

Android

Für Android steht die Syncthing-App sowohl im Play Store als auch in F-Droid zur Verfügung. Beim ersten Start verlangt es nach der Berechtigung, auf den Speicher und optional auf den Standort zuzugreifen – letzteres, damit Syncthing auch im Hintergrund erkennen kann, ob und mit welchem WLAN das Smartphone verbunden ist, um je nach Konfiguration nur in bestimmten WLANs zu synchronisieren. Je nach Android-Version und -Anbieter zeigt die Erlaubnis-Abfrage für den Standortzugriff allerdings nicht die erforderliche Option „Immer zulassen“ an. Setzen Sie die Erlaubnis stattdessen von Hand in den App-Berechtigungen – bei einem Google Pixel 4 mit Android 11 in den Android-Einstellungen unter „Apps & Benachrichtigungen/Alle Apps ansehen/Syncthing/Berechtigungen/Standort“.

Außerdem empfiehlt die App, auch die Ausführung im Hintergrund zu erlauben. Sinnvoll ist diese Einstellung, um Syncthing nicht jedes Mal extra öffnen zu müssen, um die Synchronisierung zum Beispiel neuer Fotos anzustoßen; sie kann sich allerdings negativ auf die Akkulaufzeit auswirken, wenn Syncthing viel und oft synchronisieren muss. Je nach Hersteller und Android-Version finden Sie diese Einstellung an einer anderen Stelle, bei unserem Pixel 4 zum Beispiel in den Einstellungen unter „Apps & Benachrichtigungen/Alle Apps ansehen/Syncthing/Akku“.

iOS

Eine offizielle Syncthing-App existiert für iOS und iPadOS nicht, stattdessen gibt es Möbius Sync. Die App fußt auf der quelloffenen Syncthing-Engine, bringt aber eine kleine Modifikation mit: Übersteigt der synchron zu haltende Datenbestand eine Gesamtgröße von 20 MByte, wird eine Freischaltung des „Unlimited File Sync“ per In-App-Kauf nötig. Derzeit kostet das einmalig 20 Euro. In Sachen Bedienung gleichen sich Syncthing und Möbius Sync ansonsten weitgehend.

Unter iOS beziehungsweise iPadOS muss man allerdings damit leben, dass die Synchronisierung im Hintergrund stark eingeschränkt ist, weil das Betriebssystem Hintergrundaufgaben restriktiv und in nicht genau vorhersehbarer Weise einschränkt. Die FAQ zur App (siehe ct.de/yg6h) nennen rund ein bis zwei Stunden Sync-Aktivität pro Tag als realistischen Wert.

Neben den genannten Betriebssystemen ist Syncthing auch für weitere Systeme wie macOS, FreeBSD und OpenBSD zu haben – und natürlich als Quellcode. Auch für NAS-Betriebssysteme von QNAP und Synology stehen Pakete bereit – die Downloads haben wir unter ct.de/yg6h verlinkt.

Nachdem Sie Syncthing auf allen gewünschten Geräten installiert haben, ist es bereit zur Einrichtung als Backup-­Lösung. Wie das geht, steht im nachfolgenden Artikel. (jss@ct.de)

Syncthing-Downloads: ct.de/yg6h

Kommentare lesen (8 Beiträge)