Ich hatte vor kurzem einen Artikel über die Software Syncthing gelesen. Syncthing ist eine Software die die Dateisynchronisation mittels Peer-to-Peer (P2P) ermöglicht. Sie ist zudem Open-Source (MIT-Lizenz) und läuft sowohl auf Linux, Windows, Mac OS und Smartphones mit Android.
Mit Syncthing lässt sich die eigene private Cloud zum Austausch der Dateien über alle Clients hinweg realisieren.
Da als Technik P2P eingesetzt wird, gibt es keinen zentralen Server, alle Clients = Devices sind eigenständige Knoten im dezentralen Netzwerk. Die Devices werden untereinander mittels einer 46-stelligen ID erkannt und verbunden. Die Verbindung selbst erfolgt verschlüsselt über ein eigenes TLS Zertifikat mit128bit AES Algorithmus, aber auch ein gekauftes Zertifikat kann verwendet werden.
Die aktuelle Version ist die 0.14.10, welche sich noch in der Beta-Phase befindet und von daher mit etwas Vorsicht zu genießen ist. Einen Blick bzw. Einsatz ist sie dennoch wert.
Ich fand das Thema recht spannend und wollte mehr wissen. Nachfolgend eine Anleitung zur Installation von Syncthing (0.14.10) unter Debian (8.6) als auch unter Windows 10.
Für ein erstes Kennenlernen soll ein Windows10 Client Daten mit einem Debian Server synchronisieren. In diesem Artikel geht es um die Installation und Einrichgung unter Debian. Windows10 wird in einem weiteren Artikel behandelt.
Syncthing unter Debian einrichten
Da es für Debian offizielle Repository Quellen von Syncthing gibt, werde ich diese nun auf dem Debian Server hinterlegen.
- PGP Keys für Syncthing hinterlegen (-s = silent):
- # curl -s https://syncthing.net/release-key.txt | sudo apt-key add –
- den „release“ Channel zur APT-Sourcelist hinzufügen:
- # echo „deb http://apt.syncthing.net/ syncthing release“ | sudo tee /etc/apt/sources.list.d/syncthing.list
- Quellen aktualisieren
- # aptitude update
- Syncthing installieren
- # aptitude install syncthing
Syncthing – Systemd als Dienst einrichten
Als nächstes gilt es Syncthing mit eigenem Benutzer zu versehen und für den Systemstart automatisch mit zustarten:
- User Syncthing erstellen
- # useradd -r syncthing -m -d /home/syncthing
- r = erstellt einen Systemuser
- m = Home Verzeichnis für User erstellen
- d = gibt den Pfad zum Home Verzeichnis an
- Autostart bei Systemstart einrichten
- # systemctl enable syncthing@syncthing.service
- Created symlink from /etc/systemd/system/multi-user.target.wants/syncthing@syncthing.service to /lib/systemd/system/syncthing@.service.
- erstellt einen symbolischen Link mit dem Servicenamen syncthing und dem Benutzer von oben syncthing
- starten des Syncthing Dienstes
- # systemctl start syncthing@syncthing.service
- prüfen des Status
- # systemctl status syncthing@syncthing.service
syncthing@syncthing.service – Syncthing – Open Source Continuous File Synchronization for syncthing
Loaded: loaded (/lib/systemd/system/syncthing@.service; enabled)
Active: active (running) since So 2016-11-13 02:22:23 CET; 9s ago
Docs: man:syncthing(1)
Main PID: 2726 (syncthing)
CGroup: /system.slice/system-syncthing.slice/syncthing@syncthing.service
\u2514\u25002726 /usr/bin/syncthing -no-browser -no-restart -logflags=0syncsrv01 syncthing[2726]: [GVB7M] INFO: Using discovery server https://discovery-v6-3.syncthi…ZRDQZ
syncsrv01 syncthing[2726]: [GVB7M] INFO: Using discovery server https://discovery-v6-4.syncthi…2MIAW
syncsrv01 syncthing[2726]: [GVB7M] INFO: TCP listener ([::]:22000) starting
syncsrv01 syncthing[2726]: [GVB7M] INFO: Device xxx-xxx…amic]
syncsrv01 syncthing[2726]: [GVB7M] INFO: Loading HTTPS certificate: open /home/syncthing/.conf…ctory
syncsrv01 syncthing[2726]: [GVB7M] INFO: Creating new HTTPS certificate
syncsrv01 syncthing[2726]: [GVB7M] INFO: Completed initial scan (rw) of folder vqpae-pyzhr
syncsrv01 syncthing[2726]: [GVB7M] INFO: GUI and API listening on 127.0.0.1:8384
syncsrv01 syncthing[2726]: [GVB7M] INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
syncsrv01 syncthing[2726]: [GVB7M] INFO: Joined relay relay://212.51.138.60:80
Hint: Some lines were ellipsized, use -l to show in full. - Syncthing ist aktiviert und läuft
- Syncthing lauscht per Default auf 127.0.0.1 und Port 8384
- Syncthing erstellt eine Konfigurationsdatei unter /home/syncthing/.config/syncthing/ und den Hauptordner /home/syncthing/Sync, sowie der Hauptkonfigurationsdatei .config/syncthing/config.xml
- # systemctl status syncthing@syncthing.service
- prüfen der Verbindung zur GUI
- # curl -I 127.0.0.1:8384
HTTP/1.1 200 OK
Content-Length: 41740
Content-Type: text/html
Set-Cookie: CSRF-Token-GVB7M=xxx
X-Syncthing-Id: xxx-xxx
X-Syncthing-Version: v0.14.10
- # curl -I 127.0.0.1:8384
Syncthing – anpassen der Konfiguration
Als nächstes ändere ich das Homeverzeichnis und erlaube den Remotezugriff.
# nano /home/syncthing/.config/syncthing/config.xml
- Anpassen des Sync-Hauptordners von:
- path=“/home/syncthing/Sync/“
- Zugriff von außen ermöglichen und IP und Port ändern von:
- <address>127.0.0.1:8384</address>
- in: <address>0.0.0.0:29333</address>
Syncthing Dienst neustarten und Änderungen übernehmen
# systemctl restart syncthing@syncthing.service
Aufruf der Syncthing Web-GUI über: https://syncthingserver:29333/ oder http://syncthingserver:29333/
Syncthing – Sicherheit Benutzer und Passwort setzen
In der Web-GUI sollte als erstes der Benutzer und ein Passwort festgelegt werden.
Unter Aktion -> Einstellung die Optionen:
- Nutzername für Zugang zur Benutzeroberfläche
- Passwort für Zugang zur Benutzeroberfläche
festlegen.
Im selben Menü kann auch der Zugang zur Web-GUI fest auf HTTPS gesetzt werden.
Fehler – Creating folder marker: open /mnt/cluster/backup/syncthing/.stfolder: permission denied und Stopping folder „vqpae-pyzhr“ – folder marker missing
Webseite Syncthing: https://syncthing.net/
Lösung
- prüfen der Berechtigungen für den User Syncthing
- und ich musste die Option „Berechtigungen ignorieren“ in der Web-GUI auf „Ja“ setzen
Damit konnte auch die Datei .stfolder erstellt werden.
Interessiert in verschiedenste IT Themen, schreibe ich in diesem Blog über Software, Hardware, Smart Home, Games und vieles mehr. Ich berichte z.B. über die Installation und Konfiguration von Software als auch von Problemen mit dieser. News sind ebenso spannend, sodass ich auch über Updates, Releases und Neuigkeiten aus der IT berichte. Letztendlich nutze ich Taste-of-IT als eigene Dokumentation und Anlaufstelle bei wiederkehrenden Themen. Ich hoffe ich kann dich ebenso informieren und bei Problemen eine schnelle Lösung anbieten. Wer meinen Aufwand unterstützen möchte, kann gerne eine Tasse oder Pod Kaffe per PayPal spenden – vielen Dank.