GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Synchronisieren Sie Dateien zwischen mehreren Systemen mit Syncthing

In diesem Schritt-für-Schritt-Tutorial lernen wir, was Syncthing ist , wie man Syncthing unter Linux installiert, wie man Dateien zwischen mehreren Systemen mit Syncthing in Echtzeit synchronisiert und schließlich wie man allgemeine Syncthing-Probleme behebt.

1. Einführung in Syncthing

Syncthing ist ein kostenloses Open-Source-Peer-to-Peer (P2P)-Dateisynchronisierungsprogramm, mit dem Sie Dateien zwischen zwei oder mehr Geräten im LAN oder entfernten Geräten über das Internet sicher synchronisieren können.

Das Gerät kann ein Desktop-System, ein Server oder ein Mobiltelefon sein. Die auf einem Gerät vorgenommenen Änderungen (d. h. Dateierstellung, -änderung und -löschung usw.) werden automatisch auf andere Geräte repliziert.

Syncthing benötigt keine Konfiguration! Es funktioniert einfach out-of-the-box. Jedes Gerät wird durch eine ID identifiziert . Geben Sie einfach die Geräte-ID an, um Dateien auszutauschen.

Da es sich um ein P2P-Dateisynchronisierungsprogramm handelt, werden Ihre Daten nicht in eine öffentliche Cloud oder einen zentralen Server hochgeladen. Syncthing tauscht einfach die Daten zwischen Ihren Geräten aus, wenn diese gleichzeitig online sind.

Syncthing ist eine plattformunabhängige Anwendung, sodass Sie Dateien zwischen mehreren Computern synchronisieren können, die mit demselben oder unterschiedlichen Betriebssystemen ausgeführt werden, oder Dateien zwischen einem Computer und einem Mobilgerät und umgekehrt synchronisieren können. Es ist auch möglich, einen einzelnen Ordner mit mehreren Speicherorten auf verschiedenen Geräten zu synchronisieren.

Das Synchronisierungstool für Dateien von Syncthing ist in Go geschrieben Programmiersprache. Es funktioniert unter GNU/Linux, Mac OS, Solaris und mehreren Versionen von BSD.

Es gibt auch eine offizielle Syncthing-Android-App für diejenigen, die Dateien zwischen Mobilgeräten und Computern synchronisieren möchten.

Vorsicht: Bitte beachten Sie, dass Syncthing keine lokale Synchronisierung unterstützt . Bedeutung - Sie können keine Dateien zwischen Ordnern auf demselben System synchronisieren. Wenn Sie eine lokale Synchronisierung durchführen möchten, sollten Sie entweder rsync verwenden oder Unisono .

1.1. Wie funktioniert Syncthing?

Syncthing teilt Dateien in mehrere Teile auf, die Blöcke genannt werden und von einem Gerät auf ein anderes übertragen. Daher können sich mehrere Geräte die Synchronisationslast teilen, ähnlich wie bei einem Torrent-Protokoll. Daher ist die Datenübertragungsrate normalerweise schnell. Je mehr Geräte Sie online haben, desto schneller ist die Datenübertragungsrate.

Wenn der Inhalt der Dateien gleichzeitig geändert wird und auf lokalen und Remote-Geräten unterschiedlich ist, führt dies zu einem Konflikt. Syncthing behandelt die Dateikonflikte effizient, indem es eine der Dateien in <filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext> umbenennt .

Normalerweise wird die Datei mit der älteren Änderungszeit als Konfliktdatei markiert und dann umbenannt. Wenn die Änderungszeiten gleich sind, die Datei, die von dem Gerät stammt, das den größeren Wert der ersten 63 Bit für seine device ID hat wird als die in Konflikt stehende Datei markiert.

Wenn der Konflikt zwischen einer Änderung und einem Löschen der Datei besteht, wird die geänderte Datei ohne Umbenennung auf dem Gerät wiederhergestellt, auf dem sie gelöscht wurde.

Eine weitere bemerkenswerte Sache bei Syncthing ist, dass es niemals direkt in eine Zieldatei schreibt. Es erstellt eine temporäre Kopie der Daten, bevor die alte Version überschrieben wird. Sobald die Dateiübertragung erfolgreich abgeschlossen ist, werden die temporären Dateien gelöscht.

Wenn während der Dateisynchronisierung Fehler auftreten, wird die temporäre Datei standardmäßig 24 Stunden lang aufbewahrt. Sie können diese Einstellung natürlich nach Belieben ändern. Die temporären Dateien heißen .syncthing.original-filename.ext.tmp und sie sind standardmäßig ausgeblendet.

Wie bereits erwähnt, überträgt Syncthing Dateien direkt zwischen zwei Geräten. Wenn keine direkte Verbindung zwischen den beiden Geräten hergestellt werden kann, verbindet Syncthing sie über ein Relais .

Die weitergeleiteten Verbindungen werden mit TLS verschlüsselt Verschlüsselungsverfahren, um Daten sicher zwischen den Geräten zu übertragen. Es verwendet ein eigenes kostenloses Protokoll namens Block Exchange Protocol, um die Kommunikation mit allen Geräten herzustellen.

2. Syncthing-Funktionen

Die Kernfunktionen von Syncthing sind unten aufgeführt:

  • Privat - Die Daten werden nie woanders als auf den konfigurierten Geräten repliziert.
  • Sicher - Die gesamte Kommunikation zwischen den Geräten wird mit TLS verschlüsselt.
  • Authentifizierung - Jedes Gerät wird durch eine eindeutige Geräte-ID identifiziert. Die Geräte-ID wird zur Adressauflösung, Authentifizierung und Autorisierung verwendet. Nur die Geräte, die Sie ausdrücklich zugelassen haben, können sich mit Ihrem Cluster verbinden.
  • Transparenz - Syncthing ist ein Open-Source-Projekt. So kann jeder seinen Code überprüfen und verstehen, wie Syncthing andere aktive Geräte zum Synchronisieren findet, wie es Daten von Knoten zu Knoten überträgt und wie es Daten zwischen verschiedenen Geräten synchronisiert.
  • Kosten - Syncthing ist eine Cloud-lose, dezentrale Filesharing-Anwendung. Es gibt keinen zentralen Server oder Cloud-Dienst, für den bezahlt werden muss. Es ist also völlig kostenlos!
  • Einschränkung - Es gibt keine Grenzen. Sie können eine unbegrenzte Anzahl von Dateien beliebiger Größe freigeben, solange Sie genügend freien Speicherplatz auf Ihren Geräten haben.
  • Plattformübergreifend undtragbar - Syncthing ist plattformunabhängig. Es funktioniert auf vielen Betriebssystemen, einschließlich Linux, Windows, Solaris, BSDs und Android.

3. Installieren Sie Syncthing unter Linux

Sie müssen Syncthing auf allen Systemen installieren, die Sie synchron halten möchten.

Syncthing ist für viele Linux-Distributionen gepackt und in den offiziellen Repositories verfügbar.

So installieren Sie Syncthing unter Arch Linux und seine Varianten wie EndeavourOS und Manjaro Linux, führen Sie aus:

$ sudo pacman -S syncthing

Auf Debian, Ubuntu:

$ sudo apt install syncthing

Bitte beachten Sie, dass Sie in Ubuntu [universe] aktivieren müssen -Repository, um Syncthing zu installieren.

Auf RHEL 8, CentOS 8, AlmaLinux 8, Rocky Linux 8, Fedora 31 und neueren Versionen:

Aktivieren Sie [EPEL] Aufbewahrungsort:

$ sudo dnf install epel-release

Installieren Sie dann Syncthing mit dem folgenden Befehl:

$ sudo dnf install syncthing

Auf CentOS 7 und 6 Editionen können Sie Syncthing von vorkompilierten Binärdateien installieren, wie im nächsten Abschnitt beschrieben.

openSUSE:

$ sudo zypper install syncthing

3.1. Installieren Sie Syncthing aus Binärdateien

Wenn Syncthing nicht in den Standard-Repositories verfügbar ist, können Sie die vorkompilierten Binärdateien von der Release-Seite herunterladen , und verschieben Sie es in Ihren $PATH wie unten gezeigt.

$ wget https://github.com/syncthing/syncthing/releases/download/v1.11.1/syncthing-linux-amd64-v1.11.1.tar.gz

Extrahieren Sie es:

$ tar xvf syncthing-linux-amd64-v1.11.1.tar.gz

Und verschieben Sie es in Ihren $PATH , zum Beispiel /usr/local/bin/ .

$ sudo cp syncthing-linux-amd64-v1.11.1/syncthing /usr/local/bin/

Um zu überprüfen, ob es korrekt installiert ist, versuchen Sie, seine Version mit dem Befehl anzuzeigen:

$ syncthing --version

Wenn Sie eine Ausgabe wie unten sehen, herzlichen Glückwunsch! Sie haben Syncthing erfolgreich installiert!

syncthing v1.11.1 "Fermium Flea" (go1.15.3 linux-amd64) [email protected] 2020-11-03 11:29:54 UTC

3.2. Installieren Sie den syncthing-gtk-Client

Syncthing hat auch eine grafische Benutzeroberfläche namens syncthing-gtk . Wenn Sie Desktop-Benachrichtigungen und die Integration mit Ihren Dateimanagern wie Nautilus, Nemo, Caja wünschen, installieren Sie die grafische Syncthing-GTK-Oberfläche.

Syncthing-gtk ist in den offiziellen Repositories verfügbar, sodass Sie es auch mit dem Standardpaketmanager Ihrer Linux-Distribution installieren können. Um beispielsweise syncthing-gtk auf Debian-basierten Systemen zu installieren, führen Sie Folgendes aus:

$ sudo apt install syncthing-gtk

Wenn Syncthing-gtk nicht in den offiziellen Repositories verfügbar ist, holen Sie sich stattdessen die Flatpak-App. Stellen Sie sicher, dass Sie flatpak installiert haben auf Ihrem Linux-Rechner und führen Sie dann den folgenden Befehl aus, um syncthing-gtk zu installieren:

$ flatpak install flathub me.kozec.syncthingtk

4. Syncthing auf allen Geräten initialisieren

Für die Zwecke dieses Leitfadens werde ich die folgenden zwei Systeme verwenden.

System1:

Operating system   - Ubuntu 20.04 LTS desktop system
Hostname           - ostechnix
IP Address         - 192.168.225.37/24

System2:

Operating system   - Fedora 32 silverblue desktop
Hostname           - toolbox
IP Address         - 192.168.225.46/24

Sie müssen die folgenden Schritte auf allen Systemen ausführen, die Sie synchron halten möchten.

Öffnen Sie Ihr Terminal und führen Sie Syncthing aus, um es zu initialisieren:

$ syncthing

Wenn Syncthing mit Flatpak installiert wird, starten Sie es, indem Sie diesen Befehl ausführen:

$ flatpak run me.kozec.syncthingtk

Wenn Sie Syncthing zum ersten Mal ausführen, generiert es die erforderlichen Schlüssel, erstellt Standardkonfigurationsdateien und richtet einen Standardsynchronisierungsordner mit dem Namen "Sync" ein in Ihrem $HOME Verzeichnis.

Hier ist eine Beispielausgabe von meinem Ubuntu-Desktopsystem bei der erstmaligen Initialisierung von Syncthing:

[monitor] 17:23:06 INFO: Starting syncthing
[start] 17:23:06 INFO: Generating ECDSA key and certificate for syncthing...
[R7FIO] 17:23:06 INFO: syncthing unknown-dev "Erbium Earthworm" (go1.13.5 linux-amd64) [email protected] 1970-01-01 00:00:00 UTC
[R7FIO] 17:23:06 INFO: My ID: R7FIOSA-3ZO6FLJ-LFBAVWM-LUEDOR2-RPDXXH7-4P2HFWX-QCWBN4D-ENEGIAY
[R7FIO] 17:23:07 INFO: Single thread SHA256 performance is 118 MB/s using minio/sha256-simd (88 MB/s using crypto/sha256).
[R7FIO] 17:23:07 INFO: Default folder created and/or linked to new config
[R7FIO] 17:23:07 INFO: Default config saved. Edit /home/sk/.config/syncthing/config.xml to taste (with Syncthing stopped) or use the GUI
[R7FIO] 17:23:07 INFO: Hashing performance is 103.85 MB/s
[R7FIO] 17:23:07 INFO: Starting deadlock detector with 20m0s timeout
[R7FIO] 17:23:07 INFO: No stored folder metadata for "default": recalculating
[R7FIO] 17:23:07 INFO: Ready to synchronize "Default Folder" (default) (sendreceive)
[R7FIO] 17:23:07 INFO: Overall send rate is unlimited, receive rate is unlimited
[R7FIO] 17:23:07 INFO: Using discovery server https://discovery-v4.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[R7FIO] 17:23:07 INFO: TCP listener ([::]:22000) starting
[R7FIO] 17:23:07 INFO: Using discovery server https://discovery-v6.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[R7FIO] 17:23:07 INFO: Using discovery server https://discovery.syncthing.net/v2/?noannounce&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[R7FIO] 17:23:07 INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) starting
[R7FIO] 17:23:08 INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
[R7FIO] 17:23:08 INFO: Loading HTTPS certificate: open /home/sk/.config/syncthing/https-cert.pem: no such file or directory
[R7FIO] 17:23:08 INFO: Creating new HTTPS certificate
[R7FIO] 17:23:08 INFO: GUI and API listening on 127.0.0.1:8384
[R7FIO] 17:23:08 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
[R7FIO] 17:23:08 INFO: My name is "ostechnix"
[R7FIO] 17:23:18 INFO: Detected 0 NAT services
[R7FIO] 17:24:42 INFO: Joined relay relay://210.23.25.77:22067

Sobald die Initialisierung abgeschlossen ist, wird die Web-GUI von Syncthing automatisch in Ihrem Standardbrowser geöffnet:

Wie Sie im obigen Screenshot sehen können, ist die Weboberfläche von Syncthing sehr einfach zu verstehen und zu verwenden. Die meisten Optionen sind selbsterklärend.

Die Webschnittstelle besteht aus drei Abschnitten, nämlich

  1. Ordner,
  2. Dieses Gerät
  3. und Remote-Geräte.

Die "Ordner" Abschnitt zeigt die Liste der freigegebenen Ordner. Standardmäßig das freigegebene Standardverzeichnis ~/Sync ist hier aufgelistet.

Unter "Dieses Gerät" Abschnitt finden Sie Details wie den Namen des Computers, die Download-/Upload-Rate, die RAM-/CPU-Auslastung, die Gesamtbetriebszeit und einiges mehr.

Unterhalb des Abschnitts „Das Gerät“ befindet sich ein weiterer Abschnitt namens „Remote-Geräte“ Abschnitt, in dem Sie alle Remote-Geräte zur Synchronisierung hinzufügen können. Da wir noch keine Geräte hinzugefügt haben, wird es als leer angezeigt.

Oben auf der Syncthing-Weboberfläche können Sie Ihre bevorzugte Sprache auswählen, den Hilfebereich öffnen und unter Aktionen verschiedene Verwaltungsaufgaben erledigen Tab.

Die Liste der Dinge, die Sie auf der Registerkarte "Aktionen" konfigurieren können, ist unten aufgeführt:

  • Gerätenamen ändern,
  • API-Schlüssel generieren,
  • mindestens erforderlicher freier Speicherplatz im $HOME-Verzeichnis,
  • anonymen Nutzungsbericht aktivieren oder deaktivieren
  • Standardordnerpfad ändern,
  • GUI-Abhöradresse ändern,
  • GUI-Admin-Benutzernamen und -Passwort festlegen
  • HTTPS aktivieren
  • eingehende und ausgehende Ratenbegrenzung festlegen,
  • fügen Sie Geräte oder Ordner hinzu, die von der Synchronisierung ignoriert werden sollen,
  • und mehr.

Die meisten Optionen auf der Registerkarte Aktionen sollten unberührt bleiben. Die Standardkonfiguration reicht gerade aus. Wenn Sie mit allen Optionen vertraut sind, ändern Sie sie nach Ihren Wünschen.

Gehen Sie nun zu den anderen Systemen und initialisieren Sie Syncthing, um die erforderlichen Konfigurationsdateien zu generieren und einen Standard-Synchronisierungsordner zu erstellen.

Sie können die aktuell konfigurierten Syncthing-Pfade mit dem Befehl anzeigen:

$ syncthing --paths

Beispielausgabe:

Configuration file:
	/home/sk/.config/syncthing/config.xml

Database directory:
	/home/sk/.config/syncthing/index-v0.14.0.db

Device private key & certificate files:
	/home/sk/.config/syncthing/key.pem
	/home/sk/.config/syncthing/cert.pem

HTTPS private key & certificate files:
	/home/sk/.config/syncthing/https-key.pem
	/home/sk/.config/syncthing/https-cert.pem

Log file:
	-

GUI override directory:
	/home/sk/.config/syncthing/gui

Default sync folder directory:
	/home/sk/Sync

4.1. Legen Sie den administrativen Benutzernamen und das Passwort für die Web-GUI von Syncthing fest

Standardmäßig können Sie ohne Benutzernamen und Passwort auf die Web-GUI von Syncthing zugreifen. Um Ihre Syncthing-Instanz etwas sicherer zu machen, legen Sie einen administrativen Benutzer und ein Passwort fest.

Klicken Sie auf "Aktionen" Tab in der oberen rechten Ecke und wählen Sie "Einstellungen" aus dem Dropdown-Menü.

Unter der "GUI" geben Sie Ihren administrativen Benutzernamen und sein Passwort ein. Stellen Sie sicher, dass das Passwort stark und nicht leichter zu erraten ist. Aktivieren Sie außerdem "HTTPS für GUI verwenden" Möglichkeit.

Klicken Sie auf die Schaltfläche Speichern, um das Administrator-Benutzerkonto zu erstellen.

Aktualisieren Sie nun Ihren Webbrowser und Sie sehen eine Zertifikatswarnmeldung. Dies liegt daran, dass wir gerade HTTPS für die Web-GUI aktiviert haben.

Um diese Warnung zu umgehen, klicken Sie auf "Erweitert" und klicken Sie dann auf "Das Risiko akzeptieren und fortfahren" Option, um Ihren lokalen Host zur Ausnahmeliste hinzuzufügen.

Geben Sie als Nächstes den administrativen Benutzernamen und sein Passwort ein, um auf die Web-GUI von Syncthing zuzugreifen.

Sie können auch den syncthing-gtk-Client starten, um Syncthing zu initialisieren.

Wiederholen Sie die gleichen Schritte auf dem zweiten Computer, um den Administratorbenutzer für die Web-GUI einzurichten.

5. Synchronisieren Sie Dateien zwischen mehreren Systemen mit Syncthing

Starten Sie Syncthing auf beiden Rechnern, indem Sie diesen Befehl ausführen:

$ syncthing

Die Syncthing-Web-GUI wird automatisch im Standardbrowser geöffnet.

Um Dateien zwischen Systemen zu synchronisieren, müssen wir sie mithilfe ihrer device ID miteinander koppeln . Sie können die Geräte-ID auf der Registerkarte "Aktionen" anzeigen.

Hier ist die Geräte-ID meines Ubuntu 20.04-Desktop-Rechners:

Sie sollten die obige ID mit einem anderen System austauschen, damit die beiden Systeme miteinander kommunizieren können.

Klicken Sie dazu auf "Remote-Gerät hinzufügen" Schaltfläche aus dem Abschnitt Remote-Geräte.

Auf dem nächsten Bildschirm sollte die Geräte-ID des nahe gelegenen Systems angezeigt werden. Klicken Sie auf die Geräte-ID, um sie mit Ihrem aktuellen System zu koppeln.

Gehen Sie als Nächstes zu "Freigabe" und wählen Sie die Ordner aus, die für das aktuelle Gerät freigegeben werden sollen. Optional können Sie "Auto Accept" aktivieren , um automatisch Ordner zu erstellen oder freizugeben, die dieses Gerät unter dem Standardpfad ankündigt. FYI, der freigegebene Standardpfad ist ~/Sync .

Unter "Erweitert" Auf der Registerkarte können Sie die Komprimierungsmethode auswählen und Geräteratenlimits festlegen.

Klicken Sie abschließend auf "Speichern" Taste, um das System2 mit der Maschine System1 zu koppeln.

Falls die Geräte-ID nicht angezeigt wird, kopieren Sie sie manuell aus dem System2 und fügen Sie sie hier ein.

Auf einem anderen System (z. B. System2) wird eine Benachrichtigung angezeigt, in der Sie aufgefordert werden, das erste System hinzuzufügen. Klicken Sie auf "Gerät hinzufügen" um die Anfrage anzunehmen und sie zu koppeln.

Wiederholen Sie auf ähnliche Weise die obigen Schritte auf System2, um es mit der Maschine System1 zu koppeln. Nachdem Sie die beiden Systeme erfolgreich miteinander gekoppelt haben, werden sie unter "Remote Devices" aufgeführt Abschnitt in der Syncthing-Weboberfläche.

Hier, "Toolbox" ist der Name meines Fedora-Desktops.

Sie werden auch "Aktuell" angezeigt Nachricht neben dem Remote-Gerät und auch in den "Standardordner" Registerkarte im linken Bereich. Das heißt - sie sind bereit für die Synchronisierung!

Um die Details des freigegebenen Ordners anzuzeigen, klicken Sie auf "Standardordner" Registerkarte im linken Bereich, um es zu erweitern. Sie sehen verschiedene Details des freigegebenen Ordners wie;

  • ID des freigegebenen Ordners,
  • Pfad des freigegebenen Ordners,
  • Status des Ordners,
  • Zeitintervall zwischen periodischen Scans,
  • mit welchem ​​Gerät es derzeit geteilt wird,
  • Zeit des letzten Scans etc.

Wir sind jetzt fertig. Wir haben Synchthing auf beiden Systemen erfolgreich installiert und konfiguriert und beide sind miteinander gekoppelt.

Von nun an, was auch immer Sie in ~/Sync eingeben Ordner auf einem der Systeme werden mit dem anderen System synchronisiert. Sie können den Synchronisierungsfortschritt über die Syncthing-Oberfläche anzeigen:

Wann immer Sie etwas aus ~/Sync erstellen, ändern oder löschen Ordner in einem der Systeme, werden die Änderungen automatisch auf andere Systeme repliziert und umgekehrt.

Sobald die Synchronisierung abgeschlossen ist, schließen Sie die Syncthing-Weboberfläche und beenden Sie dann syncthing Befehl durch Drücken von Ctrl+C .

5.1. Erstellen Sie einen neuen freigegebenen Ordner

Sie können mehrere freigegebene Verzeichnisse erstellen und alle mit anderen gekoppelten Geräten synchronisieren.

Um ein neues freigegebenes Verzeichnis zu erstellen, klicken Sie auf "Ordner hinzufügen" unter "Ordner" Abschnitt auf der linken Seite.

Im "Allgemein" Geben Sie auf der Registerkarte die Ordnerbezeichnung, die Ordner-ID und den Ordnerpfad ein, die Sie mit anderen Geräten teilen möchten.

Gehen Sie als Nächstes zu "Freigabe" und wählen Sie die Geräte aus, um diesen Ordner freizugeben.

Sie können einen freigegebenen Ordner auch als Nur-Senden oder Nur-Empfangen oder als Senden und Empfangen festlegen. Diese Option ist unter "Ordnertyp" verfügbar Dropdown-Feld unter "Erweitert" Tab.

Klicken Sie abschließend auf "Speichern" Schaltfläche, um diese Freigabe zu aktivieren.

Das neue freigegebene Verzeichnis wird nun unter "Ordner" aufgeführt Sektion. Sie können die Einstellungen des freigegebenen Ordners jederzeit ändern, indem Sie auf "Bearbeiten" klicken Schaltfläche.

5.2. Firewall konfigurieren

Wenn Sie sich hinter einer lokalen Firewall oder einem Router eines Drittanbieters befinden, lassen Sie die Ports 22000/TCP zu und 21027/UDP für eingehenden und ausgehenden Datenverkehr. Bitte beachten Sie, dass Sie dies auf allen Systemen tun müssen.

Wenn Sie ufw konfiguriert haben (unkomplizierte Firewall) in Ihrem Linux-Rechner können Sie die Syncthing-Ports mit dem folgenden Befehl zulassen:

$ sudo ufw allow syncthing

Wenn Sie firewalld verwenden , führen Sie dann die folgenden Befehle aus, um die erforderlichen Ports zu öffnen:

$ sudo firewall-cmd --zone=public --add-service=syncthing --permanent

Starten Sie schließlich firewalld neu Dienst, um die Änderungen zu übernehmen:

$ sudo firewall-cmd --reload

5.3. Remote-Web-GUI aktivieren (optional)

Der Standardport für die Web-GUI ist 8384 . Sie können auf die Web-GUI von Syncthing zugreifen, indem Sie zur URL http://localhost:8384 navigieren oder http://127.0.0.1:8384 aus dem Webbrowser.

Standardmäßig kann auf die Syncthing-Web-GUI nur vom Localhost selbst aus zugegriffen werden. Wenn Sie von anderen Systemen im Netzwerk auf die Web-GUI zugreifen möchten, sollten Sie den Port 8384 zulassen in Ihrer lokalen Firewall/Ihrem Router.

Wenn Sie ufw verwenden , führen Sie den folgenden Befehl aus, um syncthing-gui zuzulassen Dienst:

$ sudo ufw allow syncthing-gui

Ebenso können Sie über firewalld den externen Zugriff auf die Web-GUI von Syncthing zulassen wie unten:

$ sudo firewall-cmd --zone=public --add-service=syncthing-gui --permanent

Starten Sie den Firewalld-Dienst neu, um die Änderungen zu übernehmen:

$ sudo firewall-cmd --reload

Nachdem Sie den Standardport über die Firewall zugelassen haben, ändern Sie die GUI listen address über die Web-GUI von 127.0.0.1:8384 zu 0.0.0.0:8384 :

Alternativ bearbeiten Sie Syncthing config.xml Datei:

$ nano ~/.config/syncthing/config.xml

Suchen Sie die folgende Zeile:

<address>127.0.0.1:8384</address>

Und ändern Sie es in:

<address>0.0.0.0:8384</address>

Drücken Sie CTRL+O gefolgt von CTRL+X um die Datei zu speichern und zu beenden.

Jetzt können Sie mit "https://IPAddress:8384" von jedem Remote-Rechner aus auf die Web-GUI zugreifen URL.

Vorsicht: Bitte beachten Sie, dass dies optional ist und die Aktivierung des Remote-Web-GUI-Zugriffs nicht empfohlen wird. Dadurch wird Ihr System der Öffentlichkeit zugänglich gemacht. Aktivieren Sie den Web-GUI-Zugriff auf alle Systeme nur, wenn sie sich innerhalb des vertrauenswürdigen Netzwerks befinden.

Stellen Sie außerdem sicher, dass Sie einen Admin-Benutzer eingerichtet haben, um sich bei der Web-GUI anzumelden, und "HTTPS für GUI verwenden" aktiviert haben Option wie zuvor beschrieben.

5.4. Tunneln über SSH

Wenn auf beide Systeme über SSH zugegriffen werden kann, können Sie über einen SSH-Tunnel auf die Web-GUI des Remote-Systems auf Ihrem lokalen Computer zugreifen. Es ist etwas sicherer, als den Web-GUI-Port von Syncthing für die Außenwelt zu öffnen.

Führen Sie zum Starten eines SSH-Tunnels Folgendes aus:

$ ssh -L 9999:127.0.0.1:8384 [email protected]

Ersetzen Sie "[email protected]" mit Ihrem Remote-Benutzernamen und Ihrer IP-Adresse. Dies bindet an Ihren lokalen Port 9999 und leitet alle Verbindungen von dort an Port 8384 auf dem Zielcomputer weiter. Dies funktioniert auch dann noch, wenn Syncthing nur auf localhost lauschen muss.

Jetzt können Sie von Ihrem lokalen System aus auf die Remote-Web-GUI zugreifen, indem Sie zu https://localhost:9999/ navigieren .

5.5. Syncthing automatisch starten

Wann immer Sie etwas synchronisieren möchten, müssen Sie die Syncthing-Instanz manuell starten. Wenn Sie es bei jedem Neustart automatisch starten möchten, gehen Sie wie folgt vor.

Erstellen Sie ein neues systemd Dienst für Syncthing:

$ sudo nano /etc/systemd/system/[email protected]

Fügen Sie darin die folgenden Zeilen hinzu:

[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target

[Service]
User=%i
ExecStart=/usr/local/bin/syncthing -no-browser -gui-address="0.0.0.0:8384" -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

Ersetzen Sie "ExecStart=/usr/local/bin/syncthing" mit dem korrekten Pfad der ausführbaren Syncthing-Datei.

Wenn Sie Syncthing mit dem Paketmanager der Distribution installiert haben, wäre der ausführbare Pfad hier verfügbar - /usr/bin/syncthing .

Wenn Syncthing aus vorkompilierten Binärdateien installiert wird, wäre der Pfad "/usr/local/bin/syncthing" .

Nachdem Sie den richtigen Pfad aktualisiert haben, speichern und schließen Sie die Datei.

Als nächstes laden Sie systemd neu Einheiten mit dem Befehl:

$ sudo systemctl daemon-reload

Starten Sie abschließend den Syncthing-Dienst und aktivieren Sie den automatischen Start beim Systemneustart:

$ sudo systemctl start [email protected]$USER
$ sudo systemctl enable [email protected]$USER

Überprüfen Sie mit dem Befehl, ob Syncthing läuft:

$ sudo systemctl status [email protected]$USER

Beispielausgabe von meiner CentOS-Box:

● [email protected] - Syncthing - Open Source Continuous File Synchronization for ostechnix
   Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-11-24 18:07:34 IST; 1s ago
     Docs: man:syncthing(1)
 Main PID: 10932 (syncthing)
    Tasks: 11 (limit: 11480)
   Memory: 20.8M
   CGroup: /system.slice/system-syncthing.slice/[email protected]
           ├─10932 /usr/local/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0
           └─10937 /usr/local/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0

Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: [email protected]: Service RestartSec=100ms expired, scheduling restart.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: [email protected]: Scheduled restart job, restart counter is at 23.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: Stopped Syncthing - Open Source Continuous File Synchronization for ostechnix.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: Started Syncthing - Open Source Continuous File Synchronization for ostechnix.
Nov 24 18:07:34 centos8.ostechnix.lan syncthing[10932]: [start] INFO: syncthing v1.11.1 "Fermium Flea" (go1.15.3 linux-amd64) [email protected]>
Nov 24 18:07:34 centos8.ostechnix.lan syncthing[10932]: [4ZC47] INFO: My ID: 4ZC47V7-KW3P2BH-FSLG3QN-2D2W3OO-LI2KEQ5-JJOBXWY-QMFOAI3-FP>
Nov 24 18:07:35 centos8.ostechnix.lan syncthing[10932]: [4ZC47] INFO: Single thread SHA256 performance is 117 MB/s using minio/sha256-s>
lines 1-18/18 (END)

Von nun an startet Syncthing automatisch beim Start und synchronisiert die Dateien zwischen den konfigurierten Systemen.

5.6. Fehlerbehebung

Manchmal kann es zu Datenbankfehlern kommen und Syncthing weigert sich, die Dateien zwischen Geräten zu synchronisieren. In solchen Fällen können Sie Dateien zwangsweise erneut scannen und die Datenbank mit dem folgenden Befehl neu synchronisieren:

$ syncthing -reset-database

6. Fazit

Sie wissen jetzt, wie Sie mit Syncthing unter Linux Dateien zwischen mehreren Systemen synchronisieren. Wie Sie sehen können, ist die Dateisynchronisierung mit Syncthing ziemlich einfach und unkompliziert.

Obwohl viele Cloud-Dienste zum Speichern der Daten verfügbar sind, gibt es viele Bedenken hinsichtlich des Datenschutzes, der Sicherheit und der fehlenden Kontrolle über Ihre wertvollen Daten.

Dank Syncthing können Sie jetzt beruhigter sein. Es gibt keinen zentralen Server, es gibt kein Abhören! Sie kontrollieren Ihre eigenen Daten!


Linux
  1. Ventoy:So erstellen Sie ein Multiboot-USB-Laufwerk mit mehreren ISO-Dateien

  2. Schreckliche Situation – Dateisysteme gleichzeitig von mehreren unabhängigen Betriebssysteminstanzen gemountet?

  3. Dd:Mehrere Eingabedateien?

  4. Wie teilt man Assets zwischen mehreren Webservern?

  5. So holen Sie mit Ansible mehrere Dateien vom Remote-Computer auf den lokalen Computer

Übertragen Sie Dateien und Ordner zwischen Computern mit Croc

Teilen Sie Dateien zwischen mehreren Geräten mit Snapdrop über einen Webbrowser

Teilen Sie Dateien zwischen Linux-Desktops mit Warpinator

Übertragen Sie Dateien zwischen Computern und Mobilgeräten, indem Sie QR-Codes scannen

Übertragen Sie Dateien zwischen beliebigen Geräten mit Piping Server

So übertragen Sie Dateien mit Warp einfach zwischen Linux-Desktops