So installierst du Syncthing unter AlmaLinux 9

Syncthing ist ein Open-Source-Tool für die Peer-to-Peer-Dateisynchronisierung, mit dem Dateien sicher zwischen mehreren Geräten synchronisiert werden können. Im Gegensatz zu Cloud-basierten Diensten arbeitet Syncthing direkt zwischen den Geräten und speichert die Daten nicht auf externen Servern, sodass die Nutzer/innen die volle Kontrolle über ihre Dateien und ihre Privatsphäre haben. Die Kommunikation zwischen den Geräten ist verschlüsselt, so dass die Daten sicher übertragen werden können. Syncthing kann zum Synchronisieren von Dateien zwischen Computern, Mobilgeräten und sogar Servern verwendet werden und ist damit eine vielseitige Lösung für Nutzer/innen, die eine zuverlässige, private und Echtzeit-Dateisynchronisierung benötigen. Es ist einfach einzurichten, plattformübergreifend und läuft im Hintergrund, sodass Dateien automatisch synchronisiert werden, sobald Änderungen festgestellt werden.

In dieser Anleitung erfährst du, wie du die Syncthing Software auf AlmaLinux 9 Servern installierst. Außerdem lernst du, wie du eine Verbindung zwischen zwei Syncthing-Instanzen herstellst und einen gemeinsamen Ordner in Syncthing einrichtest.

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

  • Zwei AlmaLinux 9 Rechner.
  • Einen Nicht-Root-Benutzer mit Administrator-Rechten.
  • Ein SELinux mit permissivem Modus.

Herunterladen der Syncthing-Binärdatei

Bei RHEL-basierten Distributionen musst du Syncthing manuell per Binärdatei installieren. Schau auf jeden Fall auf der offiziellen GitHub-Seite für syncthing nach, um die neueste Version von syncthing zu erhalten.

Führe zunächst den folgenden Befehl aus, um die Pakete curl, wget und nano editor auf deinem System zu installieren.

sudo dnf install curl wget nano -y

Pakete installieren

Lade nun die syncthing-Binärdatei mit dem folgenden Befehl vom GitHub-Repository herunter.

curl -s https://api.github.com/repos/syncthing/syncthing/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -

Nach dem Download entpackst du die tar.gz-Datei von syncthing mit dem folgenden Befehl. Verschiebe dann die syncthing-Binärdatei in das Verzeichnis /usr/bin/.

tar xvf syncthing-linux-amd64*.tar.gz
sudo mv syncthing-linux-amd64-*/syncthing /usr/bin/

Überprüfe abschließend den Speicherort der syncthing-Binärdatei und die Version mit dem folgenden Befehl.

which syncthing
syncthing --version

Anhand der folgenden Ausgabe kannst du sehen, dass syncthing xxx unter /usr/bin/syncthing installiert ist.

verify syncthing herunterladen

Syncthing als Systemd-Dienst ausführen

Syncthing kann auch manuell ausgeführt werden, aber es ist einfacher, syncthing als Systemd-Dienst laufen zu lassen. Du kannst den Syncthing-Dienst mit dem Dienstprogramm systemctl steuern.

Führe den folgenden Befehl im nano-Editor aus, um eine neue systemd-Dienstdatei /etc/systemd/system/syncthing@.service zu erstellen.

sudo nano /etc/systemd/system/syncthing@.service

Füge die folgende Konfiguration in die Datei ein.

[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

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

[Install]
WantedBy=multi-user.target

Speichere die Datei und beende den Editor, wenn du fertig bist.

Zuletzt, und das ist das Wichtigste, lädst du den systemd Manager mit dem unten stehenden Befehl neu, um die Änderungen auf deinem System anzuwenden.

sudo systemctl daemon-reload

Firewalld einrichten

Nachdem du syncthing als systemd-Dienst konfiguriert hast, musst du die Ports für syncthing über firewalld öffnen. Standardmäßig enthält Firewalld die Syncthing-Anwendung, du kannst sie aber auch einfach aktivieren.

Führe den folgenden Befehl aus, um die Dienste syncthing und syncthing-gui in firewalld hinzuzufügen und zu aktivieren.

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

Lade nun die Firewalld neu, damit sie wirksam wird, und überprüfe dann die Liste der aktivierten Dienste in der Firewalld.

sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Wie du in der folgenden Ausgabe sehen kannst, ist das Syncthing-Profil aktiviert.

firewalld einrichten

Initialisierung des Syncthing-Knotens

Bevor du mit der Verbindung von Synchronisierungsinstanzen beginnst, musst du Syncthing pro Benutzer auf deinem System initialisieren. In diesem Beispiel verwenden wir zwei Almalinux-Server mit unterschiedlichen Benutzern:

  • node1 mit Benutzer tom
  • node2 Server mit dem Benutzer jerry

Führe nun den folgenden Befehl aus, um den syncthing-Dienst zu starten und die syncthing-Installation zu initialisieren. Achte darauf, dass du den Benutzer tom durch deinen Benutzernamen ersetzt.

sudo systemctl start syncthing@tom.service

Syncthing initialisieren

Sobald der syncthing-Dienst gestartet ist, wird das neue Konfigurationsverzeichnis ~/.local/state/synching und das Sync-Verzeichnis erstellt. Überprüfe es mit dem unten stehenden Befehl.

ls -ah ~/Sync
ls -ah ~/.local/state/syncthing/

Verzeichnisdateien erzeugen

Danach öffnest du die Syncthing-Konfiguration ~/.local/state/syncthing/config.xml mit dem unten stehenden nano-Editor-Befehl.

sudo nano ~/.local/state/syncthing/config.xml

Ändere im Abschnitt„gui“ die Option„tls=false“ in„tls=true„, um einen sicheren Zugang für syncthing zu ermöglichen.

 <gui enabled="true" tls="true" debugging="false" sendBasicAuthPrompt="false">
 <address>192.168.10.41:8384</address>
 <apikey>GENERATED-API-KEY</apikey>
 <theme>default</theme>
 </gui>

Speichere die Datei und beende den Editor, wenn du fertig bist.

Führe dann den folgenden Befehl aus, um syncthing neu zu starten und deine Änderungen zu übernehmen.

sudo systemctl restart syncthing@tom.service

Als Nächstes aktivierst und überprüfst du den Syncthing-Dienst mit dem unten stehenden Befehl. Vergewissere dich, dass du die Ausgabe enabled and active (running) erhältst, die bestätigt, dass der syncthing-Dienst läuft.

sudo systemctl enable syncthing@tom.service
sudo systemctl status syncthing@tom.service

Syncthing verifizieren

Benutzer und Passwort für Syncthing einrichten

Nachdem du syncthing gestartet und initialisiert hast, musst du im nächsten Schritt die Benutzerauthentifizierung für deine syncthing-Instanz konfigurieren.

Bevor du beginnst, führe den ss-Befehl aus, um sicherzustellen, dass sich Port 8384 im LISTEN-Status befindet.

ss -tulpn | grep 8384

In der folgenden Ausgabe kannst du sehen, dass Port 8384 von syncthing verwendet wird.

Synchronisierung prüfen

Öffne deinen Webbrowser und rufe die IP-Adresse des Servers gefolgt von Port 8384 auf (d.h.: https://192.168.5.15:8384/). Wenn deine Installation erfolgreich war, solltest du die unten stehende Willkommensseite erhalten.

Klicke auf das Menü Einstellungen, um die Benutzerauthentifizierung einzurichten.

Einstellung

Klicke auf die Registerkarte GUI und gib dann deinen Admin-Benutzer und dein Passwort ein. Achte darauf, dass du die Option HTTPS für die GUI verwenden aktivierst. Klicke auf Speichern, um deine Änderungen zu bestätigen.

Einrichtungsautorisierung

Jetzt wirst du zur Syncthing-Anmeldeseite weitergeleitet. Gib dort deinen Benutzernamen und dein Passwort ein und klicke dann auf Anmelden.

Anmeldung

Wenn deine Konfiguration erfolgreich war, wird dir ein Syncthing-Dashboard wie das folgende angezeigt:

Syncthing Dashboard

Unten siehst du das Syncthing-Dashboard von node2.

node2 Dashboard

Verbinden der Syncthing-Instanz

Jetzt hast du die Installation von Syncthing auf beiden Almalinux-Servern abgeschlossen. Jetzt ist es an der Zeit, beide Syncthing-Instanzen miteinander zu verbinden, was du über das Webadministrations-Dashboard tun kannst.

Klicke auf dem Dashboard von node1 auf Aktion und wähle ID anzeigen, um Details zur Node-ID zu erhalten.

ID anzeigen

Du kannst die ID und den Qrcode der node1-Instanz sehen. Kopiere die node1 ID, du brauchst sie für die Verbindung zur node2 Instanz.

Knoten1 kopieren

Gehe nun zum Dashboard von node2 und klicke im Abschnitt Remote Devices auf Add Remote Device.

Remote-Gerät hinzufügen

Füge die ID von node1 ein und gib den Namen als node1 ein.

Gerät hinzufügen

Wechsle dann zur Registerkarte Freigabe. Im Abschnitt Nicht freigegebene Ordner markierst du die Option Standardordner, um den Zielordner für node1 freizugeben.

Achte außerdem darauf, die Option Automatisch akzeptieren zu aktivieren, um automatisch Ordner zu erstellen oder freizugeben, die node1 im Standardpfad angibt.

Klicke zum Bestätigen auf Speichern.

Freigabeordner

Gehe zurück zum Dashboard von node1 und du solltest Anforderungsmeldungen von node2 sehen. Klicke zur Bestätigung auf Gerät hinzufügen.

Gerät annehmen

Wenn du dazu aufgefordert wirst, klicke auf Speichern, um zu bestätigen. Überprüfe auch die Geräte-ID von node2.

Gerät bestätigen node2

Als Nächstes erhältst du eine weitere Benachrichtigung, dass die Node2-Instanz den Ordner Standardordner freigeben wird. Klicke zur Bestätigung auf Freigeben.

Freigabeordner

Sobald der Vorgang abgeschlossen ist, kannst du auf Node1 die folgenden Informationen sehen:

  • Der Standardordner mit dem Pfad /home/tom/Sync wird mit node2 geteilt.
  • Im Abschnitt Entfernte Geräte siehst du node2 mit dem Status Up To Date.

Gemeinsamer Ordner des entfernten Geräts

Wenn du nun das Dashboard von node2 überprüfst, solltest du die gleiche Information sehen, dass der Standardordner mit node1 geteilt wird. Außerdem siehst du im Abschnitt Remote Devices den Node1 mit dem Status Up to Date.

gemeinsamer Erfolg

Dateisynchronisation testen

Jetzt hast du die Konfiguration des gemeinsamen Ordners zwischen zwei Sync-Instanzen abgeschlossen. Versuchen wir nun, neue Dateien im freigegebenen Verzeichnis zu erstellen, um die Synchronisierung zwischen zwei Syncthing-Instanzen zu überprüfen.

Wechsle auf dem Server node1 in das Verzeichnis ~/Sync und führe den folgenden Befehl aus, um neue Dateien zu erstellen.

cd ~/Sync/
touch file{1..50}.txt
ls -ah

node1 Dateien erstellen

Wechsle nun zum Server node2 und gehe in das Verzeichnis ~/Sync. Überprüfe dann die Listendateien im ~/Sync-Verzeichnis.

cd ~/Sync
ls -ah

Wenn die Synchronisierung erfolgreich war, solltest du die Dateien sehen, die du auf dem Server node1 erstellt hast.

Synchronisation prüfen

Damit ist deine Syncthing-Installation erfolgreich.

Fazit

Herzlichen Glückwunsch! Du hast syncthing erfolgreich auf AlmaLinux 9 Servern installiert. Außerdem hast du gelernt, wie du eine Verbindung zwischen syncthing-Instanzen herstellst, einen gemeinsamen Ordner einrichtest und die Synchronisierung von syncthing-Instanzen überprüfst.

Nun kannst du weitere Geräte hinzufügen und dich mit deiner aktuellen Instanz verbinden, um die gemeinsame Nutzung von Dateien und die Synchronisierung zwischen mehreren Geräten zu ermöglichen.

Das könnte dich auch interessieren …