[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: syncthing-Discovery-Server der UUGRN?
[Thread Prev] | [Thread Next]
[Date Prev] | [Date Next]
- Subject: Re: syncthing-Discovery-Server der UUGRN?
- From: Marc Haber <mh+uugrn@xxxxxxxxxxxx>
- Date: Mon, 1 Dec 2025 08:40:27 +0100
- To: UUGRN Mailingliste <uugrn@xxxxxxxxx>
Hallo, On Tue, Oct 28, 2025 at 01:05:53PM +0100, Marc Haber wrote:
syncthing ist ein plattformübergreifende Tool mit dem man transparent Directories auf seinen Rechnern und "Devices" synchron halten kann. der Datentransfer erfolg Peer-to-Peer, aber damit die Devices sich gegenseitig finden braucht es einen "Discovery Server".
Ich bin endlich soweit dass ich es selbst eingerichtet habe. Das war eine ordentliche Knacknuss, unter anderem weil die Debuggingoptionen gut versteckt über eine Environmentvariable aktiviert werden und ich keine Idee habe wie man in Android Apps mit bestimmtem Environment starten kann.
Mein erster Usecase sind ein Linux-Desktop mit Debian Unstable und ein aktuelles Android-Telefon (Android 16 von Samsung).
Syncthing öffnet sowohl auf dem Linux als auch auf dem Android einen Port und bietet darauf das Konfigurationsinterface an. Die Android-App selbst hat nur rudimentäre Einstellmöglichkeiten, auch hier wird die Konfiguration über das Web UI vorgenommen. Auf dem Linux muss man den URL selbst aufrufen, die Android-App hat in ihrem Burgermenü einen Menüpunkt "WebUI". Wenn man auf dem Linux nicht der einzige Benutzer ist, sollte man das WebUI mit einem Passwort schützen, sonst können das alle anderen Benutzer des Rechners auch aufrufen. Unter Linux startet syncthing als systemd user unit, man schaltet sie mit
$ systemctl --user enable --now syncthing ein.Der Discovery-Server unter https://syncthing-discovery.uugrn.org:8443/ wird auf jeden Fall benötigt. Inzwischen hat er auch ein "richtiges" Zertifikat, was die Ursache gewesen sein dürfte, dass es bei Valentin anfänglich nicht funktioniert hat. Die Clients lehnen den Server sonst ohne Logeinträge ab und schauen nur noch regelmäßig nach ob inzwischen ein genehmes Zertifikat vorliegt. Der Prozess über Netzwerkgrenzen hinweg benötig einen Discovery-Server und heißt "Global Discovery".
Die Kommunikation zwischen den Clients ist eigentlich als Peer-to-Peer vorgesehen, was auch wunderbar funktionieren würde, wenn wir flächendeckend IPv6 hätten. Haben wir aber nicht. Es muss daher davon ausgegangen werden, dass mindestens einer der Kommunikationpartner hinter NAT ist. Syncthing benutzt dafür dann NAT-PMP und seinen älteren Bruder UPnP um den Router um einen dynamischen Portforward zu bitten.
Da spielt sofort die traurige Trompete, denn das schaltet man als erstes ab, wenn man einen Router einrichten möchte. Und wenn man von seinem Provider Internet nur per CGNAT oder DS-Lite bekommt, geht das sowieso nicht. Wer noch eine "richtige" IPv4 hat und gewillt ist, seinen Syncthing-Geräten eine feste IP-Adresse im lokalen Netz zu geben, kann mit einem statischen Portforward arbeiten, was natürlich nur mit einem einzigen Gerät pro Anschluss funktioniert. Am ehesten kommen hier noch diejenigen zum Zug, deren Provider anständiges IPv6 anbietet, da kann man dann für jedes Gerät einzeln den benötigten Port freischalten. Aber das habe ich nicht probiert.
Theoretisch könnte es auch noch gehen, z.B. auf seiner UUGRN-VM ein syncthing zu installieren: Diese ist nicht hinter NAT und könnte auf diese Weise quasi einen Hub für die eigene Syncthing-Installatio spielen¹. Das habe ich auch nicht probiert.
Als letzte Möglichkeit kann man noch einen Relayserver verwenden, der irgendwo im Internet steht und die (verschlüsselten) Daten nur durchreicht. Syncthing stellt relayserver-Pools zur Verfügung. Und die UUGRN hat seit gestern einen eigenen Relayserver, der nicht an den öffentlichen Pools teilnimmt.
Mit Infrastruktur der UUGRN könnt Ihr also Syncthing komplett autonom benutzen.
Dazu konfiguriert Ihr Eure Clients im Webinterface unter Actions (das ist das ganz rechte Menü in der oberen Zeile mit dem Zahnrad) > Settings
Connections.
Dort tragt Ihr unter "Sync Protocol Listen Address" anstelle von "default" (was u.a. den öffentlichen Pool benutzt) die Adresse und ID des UUGRN-Relayservers ein. Das lautet:
relay://syncthing-relay.uugrn.org:22067/?id=Die ID ist zwar eigentlich nicht vertraulich, ich möchte sie aber trotzdem nicht im Mailinglistenarchiv haben. Ihr findet den kompletten URL für das relay auf shell in /usr/local/doc/localhost/syncthing-relay
Bei "Global Discovery" und "Enable Relaying" wird jeweils der Haken gesetzt.
In das Feld "Global Discovery Server" kommt https://syncthing-discovery.uugrn.org:8443/Dann ist es nur noch wichtig, in dem Dialog auf "Save" zu klicken und die Dienste danach manuell neu zu starten (Actions > Restart).
Dann macht man seine Devices einander gegenseitig durch Eingabe der jeweils anderen ID bekannt (auf der Androidseite kann man den vom Client im Linux angezeigten QR-Code fotografieren, für die andere Richtung kann man E-Mail (die wäre dann immerhin transportverschlüsselt) oder einen sicheren Messenger mit Desktopclient benutzen. Oder man beißt ganz fest die Zähne zusammen und tippt die ID ab.
Wenn man dann auf der einen Seite den ersten Ordner shared, sollte auf der anderen Seite die "Einladung" zum Sharen des Ordners aufpoppen, und dann kann man noch festlegen wo im lokalen Dateisystem die geshareten Daten liegen sollen.
Und das war's. Mag das jemand (anderes) ins Wiki gießen? Wenn noch Fragen sind, sprecht mich gerne an. Grüße Marc¹ wer der VM nicht traut: Man kann auf seinen Clients für die Daten ein Passwort hinterlegen, mit dem die Daten bei der Übertragung verschlüsselt werden. Ein Client, der das Passwort nicht hat, nimmt zwar an der Verteilung teil, aber die Daten landen verschlüsselt und unlesbar im Dateisystem. Ob man diese Daten nachträglich durch Eingabe des Passworts wieder herausbekommt, habe ich nicht probiert, aber eigentlich würde ich erwarten dass das geht.
-- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Leimen, Germany | lose things." Winona Ryder | Fon: *49 6224 1600402 Nordisch by Nature | How to make an American Quilt | Fax: *49 6224 1600421 -- Unix User Group Rhein-Neckar e.V.: https://www.uugrn.org Archiv und An-/Abmeldung: https://mail2.uugrn.org Social Media: https://social.uugrn.org