Wie man Syncthing auf Ubuntu 20.04 installiert
Syncthing ist ein Open-Source-Tool, das zum Synchronisieren von Dateien zwischen zwei oder mehreren Computern in einem Netzwerk verwendet wird. Es nutzt eine Peer-to-Peer Architektur und tauscht deine Daten direkt zwischen deinen Geräten aus. Alle Daten, die zwischen mehreren Geräten übertragen werden, sind mit TLS verschlüsselt. Wann immer du Daten auf einem Syncthing-Rechner erstellst, änderst oder löschst, werden sie automatisch auf andere Server repliziert. Es kann auf allen gängigen Betriebssystemen installiert werden, einschließlich Linux, Windows, Mac OS X, etc.
In dieser Anleitung zeigen wir dir, wie du den Syncthing Server auf Ubuntu 20.04 installieren und einrichten kannst.
Voraussetzungen
- Zwei Server, auf denen Ubuntu 20.04 läuft.
- Ein gültiger Domainname, der auf die IP deines Servers zeigt.
- Ein Root-Passwort ist auf beiden Servern konfiguriert.
Erste Schritte
Als erstes aktualisierst du die Systempakete auf die aktuelle Version, indem du den folgenden Befehl ausführst:
apt-get update -y
Sobald alle Pakete aktualisiert sind, kannst du mit dem nächsten Schritt fortfahren.
Syncthing Server auf beiden Servern installieren
Standardmäßig ist das Syncthing-Paket nicht im Standard-Repository von Ubuntu 20.04 enthalten. Daher musst du das Syncthing Repository zum APT hinzufügen.
Als erstes installierst du alle benötigten Abhängigkeiten auf beiden Servern mit dem folgenden Befehl:
apt-get install gnupg2 curl apt-transport-https -y
Als nächstes lädst du den Release Key herunter und fügst ihn mit dem folgenden Kommando hinzu:
curl -s https://syncthing.net/release-key.txt | apt-key add -
Als nächstes fügst du das Syncthing Repository mit dem folgenden Befehl zum APT hinzu:
echo "deb https://apt.syncthing.net/ syncthing release" > /etc/apt/sources.list.d/syncthing.list
Als nächstes aktualisiere das Repository und installiere den Syncthing Server mit dem folgenden Befehl:
apt-get update -y apt-get install syncthing -y
Sobald die Installation abgeschlossen ist, überprüfe die Version von Syncthing mit dem folgenden Kommando:
syncthing --version
Du solltest die folgende Ausgabe erhalten:
syncthing v1.18.0 "Fermium Flea" (go1.16.5 linux-amd64) deb@build.syncthing.net 2021-06-21 20:53:50 UTC [noupgrade]
An diesem Punkt ist Syncthing auf beiden Servern installiert. Du kannst nun mit dem nächsten Schritt fortfahren.
Erstelle eine Systemd Unit Datei auf beiden Servern
Als nächstes musst du eine systemd Unit Datei erstellen, um den Syncthing Dienst zu verwalten. Du kannst sie auf beiden Servern mit dem folgenden Befehl erstellen:
nano /etc/systemd/system/syncthing@.service
Füge 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
Speichere und schließe die Datei, wenn du fertig bist. Lade dann den systemd-Daemon neu, um die Konfiguration zu übernehmen:
systemctl daemon-reload
Starte als nächstes den Syncthing-Dienst mit dem folgenden Befehl:
systemctl start syncthing@root
Um den Status des Syncthing-Dienstes zu überprüfen, führe den folgenden Befehl aus:
systemctl status syncthing@root
Du solltest die folgende Ausgabe sehen:
? syncthing@root.service - Syncthing - Open Source Continuous File Synchronization for root Loaded: loaded (/etc/systemd/system/syncthing@.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2021-07-09 04:40:12 UTC; 5s ago Docs: man:syncthing(1) Main PID: 2878 (syncthing) Tasks: 14 (limit: 2353) Memory: 44.2M CGroup: /system.slice/system-syncthing.slice/syncthing@root.service ??2878 /usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0 ??2889 /usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0 Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: QUIC listener ([::]:22000) starting Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Loading HTTPS certificate: open /root/.config/syncthing/https-cert.pem: no such file or d> Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Creating new HTTPS certificate Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Completed initial scan of sendreceive folder "Default Folder" (default) Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: GUI and API listening on [::]:8384 Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Access the GUI via the following URL: http://127.0.0.1:8384/ Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: My name is "node1" Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] WARNING: Syncthing should not run as a privileged or system user. Please consider using a norma> Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: quic://0.0.0.0:22000 detected NAT type: Not behind a NAT Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: quic://0.0.0.0:22000 resolved external address quic://45.58.35.6:22000 (via stun.syncthin>
Zu diesem Zeitpunkt ist der Syncthing-Dienst gestartet und lauscht auf Port 8384. Du kannst es mit dem folgenden Befehl überprüfen:
ss -antpl | grep 8384
Du solltest die folgende Ausgabe sehen:
LISTEN 0 4096 *:8384 *:* users:(("syncthing",pid=2889,fd=12))
Access Syncthing Web Interface
Als nächstes öffnest du deinen Webbrowser und rufst das Syncthing Webinterface mit den URLs http://first-server-ip:8384 und http://first-server-ip:8384 auf.
Du solltest den folgenden Bildschirm sehen:
Klicke auf die Einstellungen, um den Admin-Benutzer und das Passwort wie unten gezeigt zu definieren:
Gib deinen Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche Speichern, um die Änderungen zu übernehmen. Du wirst auf die Syncthing Login Seite weitergeleitet:
Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf den Sign in Button. Du solltest den folgenden Bildschirm sehen:
Als nächstes musst du die Geräte-ID eines jeden Servers zu einem anderen Server hinzufügen, um Dateien zwischen beiden Servern zu synchronisieren. Klicke dazu auf Aktionen > ID anzeigen auf beiden Servern. Du solltest den folgenden Bildschirm sehen:
Auf dem ersten Server klickst du auf Remotegerät hinzufügen. Du solltest den folgenden Bildschirm sehen:
Gib die Geräte-ID des zweiten Servers ein und klicke auf die Schaltfläche Speichern.
Auf dem zweiten Server klickst du auf Remotegerät hinzufügen. Du solltest den folgenden Bildschirm sehen:
Gib die Geräte-ID des ersten Servers ein und klicke auf die Schaltfläche Speichern. Du solltest den folgenden Bildschirm sehen:
Jetzt musst du den Ordner hinzufügen und freigeben, den du mit dem zweiten Server synchronisieren möchtest. Klicke auf den Add Folder Button. Du solltest den folgenden Bildschirm sehen:
Gib deine Ordnerbezeichnung und den Ordnerpfad an und klicke auf den Reiter Freigabe. Du solltest den folgenden Bildschirm sehen:
Setze ein Häkchen beim zweiten Server und klicke auf den Speichern-Button. Du solltest den folgenden Bildschirm sehen:
Gehe als nächstes zum zweiten Server und klicke auf die Schaltfläche Alle neu scannen. Du solltest den folgenden Bildschirm sehen:
Klicke auf Hinzufügen, um den auf dem ersten Server freigegebenen Backup Ordner hinzuzufügen. Du solltest den folgenden Bildschirm sehen:
Wann immer du nun Dateien im Backup-Ordner auf dem ersten Server erstellst oder änderst, werden diese automatisch mit dem zweiten Server synchronisiert.
Nginx als Reverse Proxy für Syncthing konfigurieren
Du kannst auch Nginx als Reverse Proxy einrichten, um auf den Syncthing Server über Port 80 zuzugreifen.
Als erstes installierst du den Nginx Server mit dem folgenden Befehl:
apt-get install nginx -y
Als nächstes erstelle eine Nginx-Konfigurationsdatei für den virtuellen Host mit dem folgenden Befehl:
nano /etc/nginx/conf.d/syncthing.conf
Füge die folgenden Zeilen hinzu:
server { listen 80; server_name syncthing.example.com; access_log /var/log/nginx/syncthing.access.log; error_log /var/log/nginx/syncthing.error.log; location / { proxy_pass http://127.0.0.1:8384; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
Speichere und schließe die Datei und überprüfe dann Nginx auf Syntaxfehler mit dem folgenden Befehl:
nginx -t
Du solltest die folgende Ausgabe erhalten:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Als nächstes musst du den Nginx neu laden, um die Änderungen zu übernehmen.
systemctl reload nginx
Du kannst auch den Status des Nginx mit folgendem Befehl überprüfen:
systemctl status nginx
Du solltest die folgende Ausgabe sehen:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-07-09 05:01:36 UTC; 21s ago Docs: man:nginx(8) Main PID: 3394 (nginx) Tasks: 2 (limit: 2353) Memory: 6.2M CGroup: /system.slice/nginx.service ??3394 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??3395 nginx: worker process Jul 09 05:01:36 node1 systemd[1]: Starting A high performance web server and a reverse proxy server... Jul 09 05:01:36 node1 systemd[1]: Started A high performance web server and a reverse proxy server.
Jetzt kannst du auf den Syncthing Server über die URL http://syncthing.example.com zugreifen.
Fazit
Herzlichen Glückwunsch! Du hast Syncthing erfolgreich auf zwei Ubuntu 20.04 Servern installiert und konfiguriert und die Synchronisation zwischen beiden Servern eingerichtet. Ich hoffe, dieses Tutorial hilft dir bei der Sicherung deines Servers.