Dateien schnell und elegant über das lokale Netzwerk teilen

Dateien via Docker mit Geräten im lokalen Netz teilen
Dateien via Docker mit Geräten im lokalen Netz teilen

Sicher kennt ihr das: Man sitzt mit dem Laptop bei Freund:in und/oder Kunden:in und möchte schnell mal ein paar Bilder oder einen Installer teilen. Bei kleinen Dateien mag eine E-Mail gerechtfertigt sein, aber schon bei wenigen MB dauert das gut und gern mal ewig, wenn der Mailserver nicht schon aus Prinzip bei größeren Dateien zickt. Diejenigen, die verstehen wo die Mail überall lang muss, können sicher nachvollziehen, dass das eine äußerst unelegante Lösung ist.

Alternativ bietet sich ein USB-Stick an. Aber wer hat schon immer einen Stick dabei? Und dann ist der auch noch so formatiert, dass er auf dem Zielsystem eventuell gar nicht gelesen werden kann…
Diese Lösungen sind eher so… neunziger… ;-)

Eleganter ist es einen Webserver am eigenen Rechner zu starten, der die Dateien über das lokale Netzwerk ausliefert!

Für so einen Pippifax einen ganzen Webserver installieren und konfigurieren? Wie viel schneller soll das Betriebssystem denn noch altern??

Ja, genau! Aber nicht nativ auf dem Laptop, sondern virtualisiert im Container. Heutzutage hat wahrscheinlich jeder gute IT-ler sowieso Docker oder ähnliches auf dem Laptop, und ein Image von einem Webserver ist in der Regel auch schon heruntergeladen (ansonsten lädt Docker das auch relativ fix bei der ersten Benutzung nach).
Damit lässt sich dann jedenfalls sehr schnell und einfach jede Datei teilen. Ich benutze beispielsweise gern den Nginx Webserver (das geht aber natürlich auch mit dem httpd von Apache, lighttpd oder anderen). Wenn ich die Datei /path/to/file.zip teilen will, mach’ ich das einfach so:

docker run --rm -v /path/to/file.zip:/usr/share/nginx/html/file.zip -p 80:80 nginx

Thada..! Jetzt kann file.zip vom Laptop als http://IP_DES_LAPTOPS/file.zip heruntergeladen werden. Falls der Laptop im Netzwerk einen Namen bekommen hat geht es natürlich noch komfortabler.

Das funktioniert wirklich erstaunlich schnell und zuverlässig in fast jedem Netzwerk. Wesentlich schneller jedenfalls , als wenn man es zu seinem Mailserver schickt, der das dann zum nächsten Mailserver weiterleitet, etc…
Einzige Voraussetzung ist, dass sich die Rechner im Netzwerk sehen können (einige wenige Netze haben das aus Sicherheitsgründen ausgeschaltet). Es werden auch ausschließlich Dateien geteilt, die in den Container gemountet werden. Alle anderen Dateien auf dem Laptop sieht der Webserver gar nicht!

Am Ende dann nicht vergessen den Container wieder zu stoppen, damit man nicht versehentlich im nächsten Netzwerk weiter “teilt” und/oder teilende Webserver akkumuliert ;-)
Dank des --rm ist danach alles wieder sauber aufgeräumt. Das System bleibt jung!

Mehr Alternativen

  • Wenn beide Personen das gleiche Chat-System benutzen, kann man Dateien auch schnell per Matrix oder Threema oder so übertragen.
  • Wer eine Cloud hat (Nextcloud, Dropbox, Onedrive, Google Drive, Mega, etc), kann Dateien natürlich auch darüber komfortabel teilen. Es gibt auch eine Reihe von Anbietern im Netz, bei denen man Dateien ohne Anmeldung hochladen und teilen kann.

Diese Ansätze bedeuten jedoch, dass die Dateien die lokale Infrastruktur verlassen müssen. Das ist hinsichtlich Sicherheit und Privatsphäre eher nicht so schön und dauert tendenziell länger.
Die Lösung mit dem lokalen Webserver im Docker-Container wäre sicher zu bevorzugen.