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

So installieren Sie Syncthing auf einem Debian-Desktop/Server

Dieses Tutorial zeigt Ihnen, wie Sie Syncthing installieren auf Debian. Syncthing ist ein kostenloses, kontinuierliches Peer-to-Peer-Dateisynchronisierungsprogramm, mit dem Sie Ihre Dateien auf mehreren Geräten synchronisieren können, verfügbar für Linux, BSD, macOS, Windows, Android und Solaris.

Es ist eine Open-Source-Alternative zum beliebten Resilio Sync (früher bekannt als BitTorrent Sync ) Anwendung. Das Erstellen, Ändern oder Löschen von Dateien auf einem Computer wird automatisch auf Ihre anderen Geräte repliziert. Syncthing lädt Ihre Dateien nicht auf einen zentralen Server wie Nextcloud hoch , sondern tauschen Sie Ihre Daten direkt zwischen Ihren Geräten aus. Alle Ihre Daten werden mit TLS verschlüsselt bei der Übertragung zwischen Ihren Geräten.

Installieren Sie Syncthing auf Debian über das offizielle Deb-Repository

Verwenden Sie curl Um den GPG-Schlüssel herunterzuladen, importieren Sie den Schlüssel mit apt-key .

sudo apt-get install curl

curl -s https://syncthing.net/release-key.txt | sudo apt-key add -

Wenn Sie OK sehen im Terminal bedeutet das, dass der GPG-Schlüssel erfolgreich importiert wurde. Fügen Sie dann das offizielle Deb-Repository mit dem folgenden Befehl hinzu.

echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

Da dieses Repository https verwendet, müssen wir apt-transport-https installieren Paket, damit der APT-Paketmanager eine https-Verbindung mit diesem Repository herstellen kann.

sudo apt-get install apt-transport-https

Aktualisieren Sie den lokalen Paketindex und installieren Sie Syncthing auf Debian.

sudo apt-get update

sudo apt-get install syncthing

Mit Systemd Syncthing als Systemdienst einrichten

Das offizielle Syncthing-deb-Paket wird mit der erforderlichen systemd-Dienstdatei geliefert. Unter /lib/systemd/system/ Verzeichnis finden Sie einen [email protected] Datei. Aktivieren Sie Syncthing so, dass es beim Booten automatisch startet, indem Sie den folgenden Befehl ausführen. Ersetzen Sie username mit Ihrem tatsächlichen Benutzernamen.

sudo systemctl enable [email protected]username.service

Der obige Befehl erstellt einen symbolischen Link, der auf [email protected] verweist Datei.

Created symlink from /etc/systemd/system/multi-user.target.wants/[email protected] to /lib/systemd/system/[email protected]

Jetzt können wir den Syncthing-Dienst mit dem folgenden Befehl starten.

sudo systemctl start [email protected]username.service

Status prüfen

systemctl status [email protected]username.service

Ausgabe:

Tipp:Wenn der obige Befehl nicht sofort beendet wird, drücken Sie Q um die Kontrolle über das Terminal zurückzugewinnen.

Wir können sehen, dass der Autostart von Syncthing aktiviert ist und ausgeführt wird.

Der systemd-Dienst syncthing erstellt Konfigurationsdateien unter /home/username/.config/syncthing/ und einen Ordner /home/username/Sync als standardmäßiger Synchronisierungsordner. Die Hauptkonfigurationsdatei ist /home/username/.config/syncthing/config.xml .

Installieren Sie Syncthing auf einem anderen Betriebssystem

Gehen Sie zur Download-Seite von Syncthing und installieren Sie Syncthing auf anderen Betriebssystemen wie Windows, macOS, BSD, Android.

Port 22000 in der Firewall öffnen

Syncthing verwendet Port 22000, um mit Peers zu kommunizieren. Wenn Ihr Computer oder Server die UFW-Firewall aktiviert hat, müssen Sie Port 22000 mit dem folgenden Befehl zulassen.

sudo ufw allow 22000/tcp

Zugriff auf die Debian-Syncthing-Weboberfläche

Standardmäßig lauscht der Syncthing-Dienst auf 127.0.0.1:8384. Geben Sie nun in die Adressleiste Ihres Webbrowsers 127.0.0.1:8384 ein um auf die Syncthing-Weboberfläche zuzugreifen. Sie können andere Syncthing-Geräte hinzufügen und Ordner mit ihnen teilen.

Wenn Sie Syncthing auf einem entfernten Debian-Server installieren, können Sie den Fernzugriff auf die Syncthing-Weboberfläche aktivieren, indem Sie die Konfigurationsdatei bearbeiten.

nano /home/username/.config/syncthing/config.xml

Suchen Sie die folgenden zwei Zeilen.

    <gui enabled="true" tls="false" debugging="false">
        <address>127.0.0.1:8384</address>

Ändern Sie tls="false" zu tls="true" , sodass der HTTP-Datenverkehr verschlüsselt wird. Und ändern Sie 127.0.0.1 an die öffentliche IP-Adresse des Debian-Servers. Speichern und schließen Sie die Datei. Starten Sie Syncthing neu, damit die Änderungen wirksam werden.

sudo systemctl start [email protected]username.service

Geben Sie nun server-ip-address:8384 ein im Webbrowser, um auf die Syncthing-Weboberfläche zuzugreifen. Offensichtlich müssen Sie die echte IP-Adresse des Debian-Servers verwenden. Sie werden aufgefordert, einen Benutzernamen und ein Passwort zum Schutz der Syncthing-Weboberfläche festzulegen.

Sie können auch einen Reverse-Proxy mit Nginx oder Apache einrichten, um auf die Web-Benutzeroberfläche zuzugreifen, was später in diesem Tutorial erklärt wird.

Beginnen Sie mit der Synchronisierung von Dateien zwischen Ihren Geräten

Sobald wir zwei Geräte haben, auf denen Syncthing läuft, können wir mit der Synchronisierung von Dateien zwischen ihnen beginnen.

Klicken Sie in der Syncthing-Weboberfläche auf Aktionen> ID anzeigen in der oberen rechten Ecke. Sie sehen die Geräte-ID, die aus einer langen Folge von Buchstaben und Zahlen besteht. Der QR-Code, der auch die Geräte-ID ist, wird zur Konfiguration von Syncthing auf Smartphones verwendet.

Kopieren Sie die Geräte-ID, öffnen Sie dann die Syncthing-Weboberfläche des zweiten Geräts und klicken Sie auf Remote-Gerät hinzufügen in der unteren rechten Ecke. Fügen Sie dann die Geräte-ID ein und geben Sie dem Gerät einen Namen. Klicken Sie auf die Schaltfläche Speichern.

Jetzt versucht das zweite Gerät, sich mit dem ersten Gerät zu verbinden. Aktualisieren Sie die Weboberfläche auf dem ersten Gerät, Sie sehen die folgende Meldung. Klicken Sie auf Gerät hinzufügen um das zweite Gerät zur Geräteliste des ersten Geräts hinzuzufügen.

Jetzt sind die beiden Geräte verbunden.

Einer der linken Bereiche der Webschnittstelle ist der standardmäßige Synchronisierungsordner (/home/username/Sync ). Klicken Sie auf Add Folder Schaltfläche, um einen neuen Ordner hinzuzufügen. Geben Sie diesem Ordner eine aussagekräftige Bezeichnung und legen Sie den Ordnerpfad fest.

Syncthing wird als Ihr eigenes Benutzerkonto ausgeführt, daher benötigen Sie Schreibrechte für den freigegebenen Ordner. Wenn beim Freigeben eines Ordners die folgende Fehlermeldung angezeigt wird, bedeutet dies, dass Sie keine Schreibberechtigung für diesen Ordner haben.

2020-06-21 20:05:49: Failed to create folder marker: mkdir .stfolder: read-only file system

Sie können Schreibrechte mit setfacl erteilen .

sudo apt install acl
sudo setfacl -R -m u:username:rx /folder/path/

Im Sharing Wählen Sie auf der Registerkarte Ihr anderes Syncthing-Gerät aus.

Unter Advanced Auf der Registerkarte können Sie den Ordnertyp, das Intervall für die erneute Überprüfung usw. auswählen.

Klicken Sie auf die Schaltfläche Speichern, um mit der Synchronisierung zu beginnen. Auf der Weboberfläche des anderen Geräts wird eine Meldung angezeigt. Klicken Sie auf Hinzufügen um Dateien zu empfangen.

Jetzt synchronisieren die beiden Geräte Dateien. Auf der rechten Seite sehen Sie die Downloadrate, Uploadrate, lokale Ordnergröße usw.

Reverse-Proxy einrichten

Da es auf 127.0.0.1:8384 lauscht, ist die Syncthing-Webschnittstelle nur für Verbindungen von demselben Computer verfügbar. Um von einem entfernten Computer aus auf die Syncthing-Weboberfläche zugreifen zu können, können wir einen Reverse-Proxy für Syncthing mit Nginx oder Apache einrichten.

Nginx

Nginx ist ein sehr beliebter Webserver und Reverse-Proxy. Wenn Sie lieber Nginx verwenden, führen Sie den folgenden Befehl aus, um es zu installieren.

sudo apt install nginx

Erstellen Sie dann eine Serverkonfigurationsdatei.

sudo nano /etc/nginx/conf.d/syncthing.conf

Fügen Sie dieser Datei den folgenden Inhalt hinzu. Ersetzen Sie syncthing.example.com mit Ihrem bevorzugten Domainnamen. Sie sollten auch einen DNS-A-Eintrag für diese Subdomain hinzufügen. Wenn Sie keinen echten Domainnamen haben, empfehle ich, zu NameCheap zu gehen, um einen zu kaufen. Der Preis ist niedrig und sie bieten Whois-Datenschutz lebenslang kostenlos.

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;
  }
}

Speichern und schließen Sie die Datei. Testen Sie die Nginx-Konfiguration und laden Sie Nginx neu.

sudo nginx -t

sudo systemctl reload nginx

Nachdem Sie Ihren Domainnamen auf die IP-Adresse von Debian verweisen, geben Sie Ihren Domainnamen in die Adressleiste des Browsers ein und Sie sollten die Syncthing-Weboberfläche sehen.

Wenn Ihr Browser keine Verbindung zur Syncthing-Weboberfläche herstellen kann, müssen Sie möglicherweise Port 80 in der Firewall öffnen. Wenn Sie beispielsweise UFW verwenden, führen Sie den folgenden Befehl aus.

sudo ufw allow 80/tcp

Apache

Apache ist ein bekannter Webserver, der auch als Reverse-Proxy verwendet werden kann. Wenn Sie Apache Nginx vorziehen, installieren Sie es mit:

sudo apt install apache2

Starten Sie Apache und aktivieren Sie den automatischen Start.

sudo systemctl start apache2

sudo systemctl enable apache2

Um Apache als Reverse-Proxy zu verwenden, müssen wir den proxy aktivieren Module und das Header-Modul.

sudo a2enmod proxy proxy_http headers proxy_wstunnel

Erstellen Sie nun eine virtuelle Hostdatei für Syncthing.

sudo nano /etc/apache2/sites-available/syncthing.conf

Kopieren Sie die folgenden Zeilen und fügen Sie sie in die Datei ein. Ersetzen Sie syncthing.example.com mit Ihrem echten Domainnamen. Sie sollten auch einen DNS-A-Eintrag für diese Subdomain hinzufügen. Wenn Sie keinen echten Domainnamen haben, empfehle ich, zu NameCheap zu gehen, um einen zu kaufen. Der Preis ist niedrig und sie bieten Whois-Datenschutz lebenslang kostenlos.

<VirtualHost *:80>
   ServerName syncthing.example.com
   ErrorDocument 404 /404.html

   ProxyPass / http://127.0.0.1:8384/
   ProxyPassReverse / http://127.0.0.1:8384/

   ErrorLog ${APACHE_LOG_DIR}/syncthing_error.log
   CustomLog ${APACHE_LOG_DIR}/syncthing_access.log combined

</VirtualHost>

Speichern und schließen Sie die Datei. Aktivieren Sie dann diesen virtuellen Host.

sudo a2ensite syncthing.conf

Starten Sie Apache neu

sudo systemctl restart apache2

Jetzt können Sie über syncthing.example.com auf die Web-Benutzeroberfläche zugreifen .

Wenn Ihr Browser keine Verbindung zur Syncthing-Weboberfläche herstellen kann, müssen Sie möglicherweise Port 80 in der Firewall öffnen. Wenn Sie beispielsweise UFW verwenden, führen Sie den folgenden Befehl aus.

sudo ufw allow 80/tcp

Sichern Sie die Syncthing-Web-UI mit HTTPS

Um den HTTP-Verkehr zu verschlüsseln, wenn Sie die Syncthing-Web-UI über einen Domainnamen besuchen, können wir HTTPS aktivieren, indem wir ein kostenloses TLS-Zertifikat installieren, das von Let’s Encrypt ausgestellt wurde. Öffnen Sie zuerst Port 443 in der Firewall.

sudo ufw allow 443/tcp

Führen Sie dann den folgenden Befehl aus, um den Let’s Encrypt-Client (certbot) zu installieren.

sudo apt install certbot

Wenn Sie Nginx verwenden, müssen Sie auch das Certbot Nginx-Plugin installieren.

sudo apt install python3-certbot-nginx

Führen Sie als Nächstes den folgenden Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d syncthing.example.com

Wenn Sie Apache verwenden, installieren Sie das Certbot Apache-Plugin.

sudo apt install python3-certbot-apache

Und führen Sie diesen Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d syncthing.example.com

Wo

  • --nginx :Verwenden Sie das nginx-Plugin.
  • --apache :Verwenden Sie das Apache-Plugin.
  • --agree-tos :Nutzungsbedingungen akzeptieren.
  • --redirect :HTTPS durch 301-Umleitung erzwingen.
  • --hsts :Fügen Sie jeder HTTP-Antwort den Strict-Transport-Security-Header hinzu. Erzwingen, dass der Browser immer TLS für die Domäne verwendet. Schützt vor SSL/TLS-Stripping.
  • --staple-ocsp :Aktiviert OCSP-Heften. Eine gültige OCSP-Antwort wird an das Zertifikat geheftet, das der Server während TLS anbietet.

Das Zertifikat sollte nun abgerufen und automatisch installiert werden.

Aktualisieren Sie Ihre Syncthing-Web-GUI, Sie werden feststellen, dass die HTTP-Verbindung automatisch auf eine sichere HTTPS-Verbindung umgeleitet wird.

Benutzerauthentifizierung aktivieren

Standardmäßig kann jeder auf Ihre Syncthing-Weboberfläche zugreifen, nachdem der Reverse-Proxy eingerichtet wurde. Wir können die Benutzerauthentifizierung aktivieren, um den Zugriff einzuschränken. Klicken Sie auf Aktionen Schaltfläche oben rechts und wählen Sie dann Einstellungen aus -> Benutzeroberfläche.

Geben Sie unter GUI-Authentifizierungsbenutzer einen Benutzernamen ein Geben Sie im GUI-Authentifizierungspasswortfeld ein Passwort ein . Speichern Sie dann Ihre Einstellungen.

Bitte beachten Sie, dass Sie HTTPS für GUI verwenden nicht ankreuzen müssen Box, die es Syncthing ermöglicht, ein selbstsigniertes Zertifikat zu verwenden. Wir haben bereits ein gültiges Zertifikat in Apache/Nginx installiert, dem gängige Webbrowser vertrauen.

Sobald Sie die Änderungen gespeichert haben, starten Sie den Syncthing-Systemd-Dienst neu, oder Sie sehen möglicherweise einen 502 Bad Gateway-Fehler, wenn Sie die Seite neu laden.

sudo systemctl restart [email protected]username.service

Melden Sie sich jetzt mit Ihrem neuen Benutzernamen und Passwort bei der Syncthing-Weboberfläche an.

Nur-Senden- und Nur-Empfangen-Ordner

Wenn Sie einen Ordner in Syncthing freigeben, können Sie zur Registerkarte Erweitert gehen und einen von drei Ordnertypen auswählen:

  • Senden &Empfangen (Standard)
  • Nur senden
  • Nur empfangen

Möglicherweise möchten Sie „Nur Senden“ oder „Nur Empfangen“ auswählen. Beispiel:Sie haben 3 Computer:A, B und C, und Sie möchten Ordner auf Computer A und B zu einem einzigen Ordner auf Computer C zusammenfassen. Dann können Sie den Ordnertyp auf Computer C auf „Nur Empfangen“ festlegen. Auf diese Weise hat Computer C alle Dateien in einem einzigen Ordner. Computer A und B haben noch die Originaldateien. Nicht mehr und nicht weniger.

Wenn Sie denselben Ordnerpfad auf Computer C verwenden, warnt Syncthing Sie möglicherweise, dass „dieser Pfad ein Unterverzeichnis eines vorhandenen Ordners ist“. Sie können diese Warnung ignorieren, da Sie über einen Nur-Empfangs-Ordner verfügen. Vorhandene Dateien im Ordner werden nicht gelöscht.

Synchronisierung über Relay-Server

Wenn zwei Syncthing-Instanzen keine Verbindung zueinander herstellen können, versucht Syncthing, einen Relay-Server zum Übertragen von Dateien zu verwenden.

Ein häufiger Grund, warum sie sich nicht miteinander verbinden können, ist, dass sich einer von ihnen hinter einem NAT-Gerät befindet und keine Portweiterleitung konfiguriert hat. Sobald Sie die Portweiterleitung konfiguriert haben, können Sie Relay-Server deaktivieren. Hier ist wie. Klicken Sie auf Edit Schaltfläche und wählen Sie Advanced Registerkarte, ändern Sie die Adresse von dynamic an tcp://ip-address:22000 . Natürlich müssen Sie Ihre echte IP-Adresse verwenden.

Fehlerbehebung

Wenn sich Ihre Syncthing-Instanzen nicht miteinander verbinden können, können Sie den ss verwenden (socket stats) Dienstprogramm, um zu überprüfen, ob Syncthing auf TCP-Port 22000 lauscht.

sudo ss -lnpt | grep syncthing

Wie Sie dem Screenshot unten entnehmen können, lauscht mein Syncthing auf Port 8384 (Webinterface) und 22000 (Peer-to-Peer-Verbindung).

Wenn nicht, können Sie die Konfigurationsdatei bearbeiten.

nano ~/.config/syncthing/config.xml

Suchen Sie die folgende Zeile.

<listenAddress>default</listenAddress>

default ändern an tcp://your-IP-address .

<listenAddress>tcp://12.34.56.78</listenAddress>

Speichern und schließen Sie die Datei. Starten Sie dann Syncthing neu.

sudo systemctl restart [email protected]username.service

Fehlende .stfoler-Datei

Die .stfoler Datei wird von Syncthing benötigt, um zu funktionieren. Dies ist eine leere Datei. Sie müssen nichts hinzufügen. Wenn der .stfolder Datei in Ihrem Synchronisierungsordner fehlt, wird die Synchronisierung beendet. Sie können den folgenden Cron-Job erstellen, um die Datei automatisch zu erstellen.

@hourly touch /path/to/sync/folder/.stfolder

Der Touch-Befehl erstellt die Datei, falls sie fehlt. Wenn die Datei bereits existiert, wird der Zeitstempel der Datei aktualisiert.


Debian
  1. So installieren Sie Minecraft-Server unter Debian 9

  2. So installieren Sie Redis Server unter Debian 11

  3. So installieren Sie MySQL 8.0 / 5.7 unter Debian 11 / Debian 10

  4. So installieren Sie ProFTPD unter Debian 8

  5. So installieren Sie MySQL Server unter Debian 9

So installieren Sie Syncthing auf Ubuntu Desktop/Server

So installieren Sie FastPanel unter Debian 11

So installieren Sie I2P auf einem Debian-Server:

So installieren Sie GNOME Desktop unter Debian 8

So installieren Sie VNC unter Debian 10

So installieren Sie GNOME Desktop unter Debian 10