Website-Suche

So synchronisieren Sie Dateien und Verzeichnisse auf verschiedenen Geräten mit syncthing unter Linux


Syncthing ist definiert als ein kontinuierliches Dateisynchronisierungsprogramm: Es kann verwendet werden, um Dateien und Verzeichnisse über verschiedene Geräte oder "Knoten" hinweg zu synchronisieren. Die Anwendung verwendet TLS als Verschlüsselungsmethode und ist zusammen mit ihrem Protokoll kostenlose und Open-Source-Software. Bei der Verwendung von Syncthing bleiben unsere Daten auf unserem Gerät und werden direkt an das Ziel übertragen, ohne dass sie auf einen zentralen Server (Peer-to-Peer) weitergeleitet werden. In diesem Tutorial werden wir sehen, wie Sie Syncthing unter Linux installieren, konfigurieren und verwenden.

In diesem Tutorial lernen Sie:

  • So installieren Sie Syncthing auf den am häufigsten verwendeten Linux-Distributionen
  • So richten Sie die Firewall ein, damit Syncthing korrekt funktioniert
  • So geben Sie ein Verzeichnis frei und halten es auf zwei Geräten synchronisiert
  • So starten Sie den Syncthing-Daemon automatisch bei der Benutzeranmeldung

Software-Anforderungen

Installation



Grundsätzlich gibt es zwei Methoden, die wir verwenden können, um Syncthing in unserer bevorzugten Linux-Distribution zu installieren: Wir können die Version verwenden, die in den nativen Repositories verpackt ist, oder wir können einen Tarball von der offiziellen Syncthing-Website herunterladen. Darüber hinaus können wir nur bei Verwendung von Debian oder Ubuntu das offizielle Syncthing-Repository als zusätzliche Softwarequelle hinzufügen und das Paket von dort installieren.

Installieren der nativen Version

Syncthing ist in den nativen Repositories der am häufigsten verwendeten Linux-Distributionen wie Fedora, Debian/Ubuntu und Archlinux verfügbar, daher können wir es einfach mit unserem bevorzugten Paketmanager installieren. Dies ist immer der empfohlene Weg, um Software zu erhalten. Das einzige Problem ist, dass das Repository insbesondere bei Distributionen wie Debian "stable" veraltete Versionen der Pakete enthalten kann. Um Syncthing auf Fedora zu installieren, können wir den dnf-Paketmanager verwenden und den folgenden Befehl ausgeben:

sudo dnf install syncthing

Unter Debian und seinen vielen Derivaten können wir stattdessen Folgendes ausführen:

sudo apt install syncthing

Unter Archlinux können wir pacman verwenden, um das syncthing-Paket zu installieren, das Teil des "Community"-Repositorys ist. Um die Software zu erhalten, müssen Sie nur unseren Terminal-Emulator starten und Folgendes ausführen:

sudo pacman -Sy syncthing

Herunterladen eines Tarballs



Die zweite Methode zur Installation von Syncthing besteht darin, den dedizierten Linux-Tarball aus dem Download-Bereich der offiziellen Website herunterzuladen. Wir sollten das Archiv herunterladen, das die Version enthält, die mit der Architektur unseres Systems kompatibel ist. Wenn wir Debian oder Ubuntu verwenden, können wir auch das offizielle Repository zu unseren Softwarequellen hinzufügen und es dann mit apt installieren.

Einrichten der Firewall

Bevor wir Syncthing ausführen, müssen wir einige Firewall-Regeln einrichten, um eingehenden Datenverkehr über bestimmte Ports zuzulassen, damit es korrekt funktioniert. Neuere Versionen der Firewalld- und Ufw-Firewall-Manager bringen bereits einen vorkonfigurierten Dienst für Syncthing mit (hier meinen wir mit dem Wort "Service" ein definiertes Regelwerk). Wenn wir Firewalld verwenden, um den Dienst zu aktivieren und somit den Datenverkehr über die erforderlichen Ports zu ermöglichen), sollten wir Folgendes ausführen:

sudo firewall-cmd --permanent --add-service=syncthing && sudo firewall-cmd --reload

Beachten Sie, dass mit dem obigen Befehl, da keine Zone angegeben ist, der Dienst zum "Standard" hinzugefügt wird. Wenn wir den Dienst zu einer bestimmten Zone hinzufügen möchten, sollten wir ihn mit der Option --zone angeben und den Zonennamen als Argument übergeben. Um Informationen über den Dienst zu sammeln und zu sehen, welche Ports darin enthalten sind, können wir Folgendes ausführen:

sudo firewall-cmd --info-service=custom

Die Ausgabe des obigen Befehls lautet wie folgt:

syncthing
  ports: 22000/tcp 21027/udp
  protocols:
  source-ports:
  modules:
  destination:
  includes:
  helpers:


Wie wir sehen können, sind die Ports, die an dem Dienst "beteiligt" sind, 22000/tcp und 21027/udp. Wenn wir Ufw (Unkomplizierte Firewall) verwenden, sollten wir zur Aktivierung des Dienstes Folgendes ausführen:

sudo ufw allow syncthing

Verwenden von Syncthing

Um den Syncthing-Daemon zu starten, müssen wir lediglich die Syncthing-Binärdatei von unserem Terminal aus aufrufen:

syncthing

Syncthing wird mit einer Weboberfläche geliefert, die zum Verwalten der Anwendung, zum Hinzufügen von freigegebenen Verzeichnissen und Remote-Geräten verwendet werden kann. Sobald wir den obigen Befehl ausführen, wird der Syncthing-Daemon gestartet und ein Webbrowser-Tab wird automatisch mit der Adresse 127.0.0.1:8384 geöffnet, wo die Schnittstelle erreichbar ist.

Das standardmäßige freigegebene Syncthing-Verzeichnis ist ~/Sync; Es und alle anderen, die synchronisiert werden sollen, werden in der linken Spalte der Benutzeroberfläche angezeigt. In der rechten Spalte sehen wir stattdessen Informationen über das Gerät, auf dem Syncthing ausgeführt wird, und eine Liste der zugehörigen Remote-Geräte. In unserem Fall ist die Liste noch leer:

Die Syncthing-Weboberfläche



Um einen Remote-Computer hinzuzufügen und ein Verzeichnis mit ihm zu teilen, müssen wir lediglich die Geräte-IDs austauschen. Um eine Geräte-ID zu überprüfen, können wir auf die Schaltfläche "Aktionen" oben rechts auf der Weboberfläche klicken und auf "ID anzeigen" klicken. Die aktuelle Geräte-ID wird zusammen mit dem entsprechenden QRCode angezeigt:

Damit die Anwendung ordnungsgemäß funktioniert, sollten die beiden (oder mehr Geräte) ihre jeweiligen IDs kennen. Im nächsten Abschnitt werden wir sehen, wie Sie ein Remote-Gerät hinzufügen.

Hinzufügen eines Geräts

Um mit der Synchronisierung eines Verzeichnisses zu beginnen, müssen wir unserer Konfiguration ein Remote-Gerät hinzufügen. Für dieses Tutorial werde ich den Linux-Rechner verwenden, auf dem wir Syncthing als Synchronisationsquelle installiert haben, während das Remote-System ein Android-Gerät ist (Syncthing kann einfach aus dem Google Play Store installiert werden); Die beiden Geräte müssen mit demselben LAN verbunden sein.

Wir klicken auf die Schaltfläche "Remote-Gerät hinzufügen" unten rechts auf der Weboberfläche. Auf der ersten Registerkarte des Popup-Fensters, das geöffnet wird, müssen wir die ID des Begleitgeräts und einen optionalen benutzerfreundlichen Namen eingeben:



Wie Sie sehen können, sollte das andere Syncthing-Gerät im LAN automatisch erkannt und in der Liste "Geräte in der Nähe" gemeldet werden, wenn die automatische Erkennung so funktioniert, wie sie sollte. In diesem Fall genügt ein Klick auf den Link
correspondent, und das ID-Eingabefeld wird automatisch ausgefüllt.

Auf der zweiten Registerkarte "Freigabe" können wir auswählen, welche Verzeichnisse wir für das Begleitgerät freigeben möchten. In diesem Fall haben wir die Standardeinstellung ausgewählt:

Eine bequeme Sache ist es, das Kontrollkästchen "Auto Accept" zu aktivieren: Auf diese Weise fordert uns das System nicht auf, zu bestätigen, ob wir die vom Remote-System angebotene Synchronisierung des Verzeichnisses akzeptieren möchten, sondern erstellt sie automatisch.



Der dritte Reiter enthält "Erweiterte Einstellungen". Hier können wir wählen, ob wir eine statische Adresse für das Remote-Gerät eingeben möchten, wenn es eine hat und die dynamische Erkennung nicht funktioniert. Wir könnten auch die Begrenzung der eingehenden und ausgehenden Rate für das Gerät festlegen und festlegen, welche Daten komprimiert werden sollen (alle Daten vs. nur Metadaten – die Standardeinstellung).

Sobald dies erledigt ist, können wir auf die Schaltfläche "Speichern" klicken. Das Remote-Gerät sollte dann in der Liste auf der Hauptseite erscheinen. Auf dem anderen Gerät führen wir den gleichen Vorgang durch (beachten Sie, dass wir in der Android-App durch Klicken auf das Menü "Hamburger" die Möglichkeit haben, die Weboberfläche zu verwenden) und fügen unsere "Quell"-Geräte-ID hinzu. Sobald die beiden Geräte korrekt gekoppelt sind, sollte ihr Status synchronisiert werden. Sobald der Synchronisationsprozess abgeschlossen ist, werden sie als "Up to Date" gemeldet:

Zu diesem Zeitpunkt sollte unsere (bidirektionale) Synchronisation fertig sein, und das Verzeichnis wird auf den beiden Geräten synchron gehalten.

Den Syncthing-Daemon automatisch starten



Um den Syncthing-Daemon automatisch starten zu lassen, können wir Systemd verwenden, den Linux-Init-Manager. In diesem Fall starten wir ihn als Dienst pro Benutzer, sodass wir keine Administratorrechte benötigen. Wenn ein Dienst auf diese Weise konfiguriert ist, wird er erst gestartet, wenn sich der Benutzer anmeldet.

Das erste, was wir tun möchten, ist, die systemd-Dienstdatei in das entsprechende Verzeichnis zu kopieren. Wenn wir Syncthing aus den nativen Repositories unserer Linux-Distribution installiert haben, sollte diese Datei wie folgt lauten: /usr/lib/systemd/user/syncthing.service; Wenn wir den Tarball von der offiziellen Syncthing-Seite heruntergeladen haben, sollte sich die Datei im Verzeichnis etc/linux-systemd/user befinden.

Wir erstellen das Verzeichnis ~/.config/systemd/user, falls es noch nicht existiert, und kopieren die Datei darin:

mkdir -p ~/.config/systemd/user && cp /usr/lib/systemd/user/syncthing.service ~/.config/systemd/user

Sobald die Datei an Ort und Stelle ist, führen wir den folgenden Befehl aus, um den Dienst zu aktivieren:

systemctl --user enable syncthing.service

Schlüsse

In diesem Tutorial haben wir gelernt, wie man Syncthing installiert und konfiguriert, eine sehr handvolle Anwendung, die es uns ermöglicht, ein oder mehrere Verzeichnisse zwischen mehreren Geräten synchron zu halten, ohne einen "zentralen" Server verwenden zu müssen. Wir haben gesehen, wie man die Anwendung installiert, wie man die Firewall so einrichtet, dass der Datenverkehr über die erforderlichen Ports läuft, wie man ein Verzeichnis zwischen zwei Geräten teilt und wie man den Syncthing-Daemon automatisch startet, wenn sich ein Benutzer anmeldet.

Verwandte Artikel: