Syncthing ist ein kostenloses Open-Source-Programm zum Synchronisieren von Dateien zwischen Geräten aus einem lokalen Netzwerk oder entfernten Geräten über das Internet. Es verwendet eine Peer-to-Peer-Architektur und die kontinuierliche Dateisynchronisierung tauscht Daten auf vollautomatische Weise direkt zwischen Geräten aus.
Synchronisieren kann verwendet werden, um Dateien und Verzeichnisse in Echtzeit zu synchronisieren. Die gesamte Datenübertragung zwischen mehreren Geräten ist sicher und mit TLS verschlüsselt.
Die wichtigsten Synchronisierungsfunktionen sind:
- Unterstützung für die LDAP-Authentifizierung.
- Unterstützung für die Synchronisierung in eine Richtung.
- Schnelle Synchronisierungsgeschwindigkeit.
- Verwenden Sie sowohl CLI als auch GUI
- Plattformübergreifend verfügbar auf: Linux, Android, Unix, Solaris, Windows und Mac OS X.
In diesem Tutorial lernen wir, wie man Syncthing installieren an Ubuntu 20.04.
Voraussetzungen
- Zwei Server mit installiertem Ubuntu 20.04.
- Benutzer mit sudo und Root-Zugriff.
- Zwei konfigurierte öffentliche IP-Adressen.
Syncthing unter Ubuntu installieren
Syncthing ist im offiziellen Repository verfügbar. Befolgen Sie die Installationsschritte, um das Syncthing-Repository hinzuzufügen und auf Ubuntu zu installieren.
Aktualisieren Sie zunächst die Systempakete mit dem folgenden Befehl:
apt update
Installieren Sie alle Abhängigkeiten mit dem folgenden Befehl:
apt-get install gnupg2 curl apt-transport-https
Fügen Sie den Freigabeschlüssel hinzu und laden Sie ihn herunter:
curl -s https://syncthing.net/release-key.txt | apt-key add -
Fügen Sie das Syncthing-Repository mit dem folgenden Befehl zu APT hinzu:
echo "deb https://apt.syncthing.net/ syncthing release" > /etc/apt/sources.list.d/syncthing.list
Wenn Sie fertig sind, aktualisieren Sie die Systempakete noch einmal, und Syncthing installieren Paket:
apt-get update
apt-get install syncthing
Überprüfen Sie die Installation, indem Sie die Syncthing-Version überprüfen:
syncthing --version
Ausgabe:
syncthing v1.18.1 "Fermium Flea" (go1.16.6 linux-amd64) [email protected] 2021-07-30 12:41:57 UTC [noupgrade]
Wenn Sie eine ähnliche Ausgabe erhalten, wurde Syncthing erfolgreich installiert.
HINWEIS: Sie müssen diese Installationsschritte auf dem anderen Server wiederholen.
Erstellen Sie eine Systemd-Unit-Datei
Der nächste Schritt besteht darin, eine systemd-Unit-Datei zu erstellen, um den Syncthing-Dienst zu verwalten.
Erstellen Sie eine Datei in /etc/systemd/system/ mit dem folgenden Befehl.
nano /etc/systemd/system/[email protected]
Fügen Sie der Konfigurationsdatei 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/bin/syncthing -no-browser -gui-address="0.0.0.0:8384" -no-restart -logflags=0 Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
[Install]
WantedBy=multi-user.target
In [Service] Teil, in Reihe -gui-address="0.0.0.0:8384"
fügen Sie Ihre öffentliche IP-Adresse des ersten Servers hinzu und lassen Sie denselben 8384-Port.
Save Konfiguration und close die Datei.
Laden Sie nun den systemd-Daemon neu, um die Konfiguration anzuwenden:
systemctl daemon-reload
Nachdem der Daemon neu geladen wurde, starten Sie den Synchting-Dienst, der auf Ihren Benutzer zeigen mit folgendem Befehl.
systemctl start syncthing@yourUser
Überprüfen Sie den Status des Syncthing-Dienstes:
systemctl status syncthing@yourUser
Der Dienst sollte aktiv (laufend) sein.
Der Synchronisierungsdienst lauscht auf Port 8384, den Sie mit dem Befehl ss überprüfen können.
ss -antpl | grep 8384
Ausgabe:
LISTEN 0 4096 45.79.208.51:8384 0.0.0.0:* users:(("syncthing",pid=13837,fd=20))
HINWEIS: Wiederholen Sie diese Schritte für den anderen Server.
Syncthing Webinterface konfigurieren
Öffnen Sie Ihren Webbrowser und greifen Sie mit URLs auf das Syncthing Webinterface zu.
https://first-server-ip:8384
https://second-server-ip:8384
Das Syncthing-Webinterface verwendet Port 8384.
Nach der Anmeldung sollten Sie die folgenden Meldungen erhalten.
Weiter Gehen Sie zu Aktionen > Einstellungen > GUI, um einen Benutzernamen und ein Passwort einzurichten, und aktivieren Sie die Option ‘HTTPS für GUI verwenden.

Klicken Sie auf Save Schaltfläche, und Sie werden zur Syncthing-Anmeldeseite weitergeleitet, auf der Sie aufgefordert werden, neue Anmeldeinformationen für die Anmeldung einzugeben.

Wie Sie sehen, ist die Verbindung nach dem Anmelden jetzt mit HTTPS gesichert.
HINWEIS: Wiederholen und konfigurieren Sie diesen Vorgang auch auf dem zweiten Server.
Anschließen von Geräten
Für die Verzeichnissynchronisierung müssen wir die Geräte-IDs beider Server zusammenführen und verbinden, die Geräte-ID jedes Servers zu einem anderen Server hinzufügen, um Dateien zu synchronisieren.
Gehen Sie dazu auf beiden Servern zu Aktionen > ID anzeigen. Sie sehen die folgende Geräteidentifikation und den QR-Code.


Gehen Sie nun zum ersten Syncthing-Server. Unten, wo sich der Abschnitt für Remote-Geräte befindet, klicken Sie auf die Schaltfläche +Remote-Gerät hinzufügen.

Geben Sie die Geräte-ID Ihres zweiten Servers an und klicken Sie auf das Save Taste. Optional kann auch der Gerätename zur besseren Übersicht hinzugefügt werden.
Wiederholen Sie auf dem zweiten Server denselben Schritt. Gehen Sie zu Remote-Gerät hinzufügen.

Und fügen Sie die Geräte-ID vom ersten Server hinzu und klicken Sie auf das Save Taste.

Will sieht von beiden Seiten, dass die Geräte jetzt verbunden sind.
Verzeichnisse synchronisieren
Suchen Sie nach erfolgreichem Peering von Remote-Geräten den Abschnitt Ordner und klicken Sie auf die Schaltfläche +Ordner hinzufügen. Sie sollten das neue folgende Fenster sehen.

Geben Sie Ihren Backup-Ordnernamen in der Ordnerbezeichnung im allgemeinen Abschnitt an. Gehen Sie dann zum Abschnitt Karte teilen und Sie sehen den folgenden Bildschirm.

Aktivieren Sie Ihr Gerät, um diesen Ordner freizugeben. In meinem Fall ist der Name Server2, und klicken Sie auf das Save Taste.
Gehen Sie nun zum zweiten Server und klicken Sie auf die Schaltfläche Alle erneut scannen. Sie sollten den folgenden Bildschirm und eine neue Popup-Nachricht sehen, um diesen neuen Ordner hinzuzufügen.

Klicken Sie auf die Schaltfläche Hinzufügen, um den auf dem ersten Server freigegebenen Sicherungsordner hinzuzufügen. Sie sollten nun den folgenden Bildschirm sehen.

Kann jetzt sehen, dass die Ordnersicherung synchronisiert und auf dem neuesten Stand ist.
Immer wenn Sie Dateien im Backup-Ordner auf dem ersten Server erstellen oder ändern, werden sie automatisch mit dem zweiten Server synchronisiert, alle neuen Verzeichnisse und Dateien in diesem Backup-Ordner werden auf dem anderen Server gespiegelt.
Konfigurieren von Nur-Senden- und Nur-Empfangen-Ordnern
Eine weitere großartige Funktion von Syncthing ist, dass Sie gepaarte Server zum Senden und Empfangen konfigurieren können. Außerdem können sie nur zum Senden und Empfangen angegeben werden.
Gehen Sie zum Abschnitt Ordner > Gewünschten Sicherungsordner auswählen und klicken Sie auf die Schaltfläche Bearbeiten und dann auf die Abschnittskarte Erweitert. Sie sehen das folgende Bild.

Und wählen Sie Ordnertyp für Nur Senden/Nur Empfangen und klicken Sie auf Save Taste.
Ajust Scan-Intervalle konfigurieren
Wenn Sie die CPU freigeben möchten und nicht ständig auf Synchronisierungsänderungen achten müssen, können Sie auf Änderungen überwachen deaktivieren und manuell einstellen, wie viele Minuten oder Stunden Sie Änderungen synchronisieren möchten.

Systemctl-Dienst überprüfen
Gehen Sie entweder auf server1 oder server2 zum gewünschten Gerät und überprüfen Sie den systemctl service status, um zu sehen, wie dies im Backend mit dem folgenden Befehl funktioniert.
sudo systemctl status syncthing@yourUser
Ausgabe.
● [email protected] - Syncthing - Open Source Continuous File Synchronization for linoxide
Loaded: loaded (/etc/systemd/system/[email protected]; disabled; vendor preset: enabled)
Active: active (running) since Wed 2021-08-25 13:46:53 UTC; 1h 4min ago
Docs: man:syncthing(1)
Main PID: 15543 (syncthing)
Tasks: 13 (limit: 1071)
Memory: 29.2M
CGroup: /system.slice/system-syncthing.slice/[email protected]
├─15543 /usr/bin/syncthing -no-browser -gui-address=45.79.208.51:8384 -no-restart -logflags=0
└─15548 /usr/bin/syncthing -no-browser -gui-address=45.79.208.51:8384 -no-restart -logflags=0
Aug 25 13:52:58 li1307-51 syncthing[15543]: [6TZM3] INFO: Device BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY client is "syncthing v1.18.1>
Aug 25 13:52:58 li1307-51 syncthing[15543]: [6TZM3] INFO: Connection to BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY at [2600:3c02::f03c:9>
Aug 25 13:53:12 li1307-51 syncthing[15543]: [6TZM3] INFO: Established secure connection to BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY at>
Aug 25 13:53:12 li1307-51 syncthing[15543]: [6TZM3] INFO: Device BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY client is "syncthing v1.18.1>
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: Adding folder "Backup" (svkz5-mdnbo)
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: No stored folder metadata for "svkz5-mdnbo"; recalculating
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: Ready to synchronize "Backup" (svkz5-mdnbo) (sendreceive)
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: Completed initial scan of sendreceive folder "Backup" (svkz5-mdnbo)
Fazit
In diesem Tutorial haben wir gelernt, wie man Syncthing zum Synchronisieren von Verzeichnissen unter Ubuntu 20.04 installiert. Sie können mehr als zwei Geräte verwenden und synchronisieren und mit den Verzeichnissen auf allen Computern auf dem neuesten Stand sein.
Bitte teilen Sie Ihre Erfahrungen mit Syncthing im Kommentarbereich.