Skip to content

Der 1-Sekunden-Webserver: Wie du mit Python sofort Dateien im Netzwerk freigibst

Python Webserver Linux Fileshare

Es ist ein klassisches Szenario im Tech-Alltag: Du hast gerade eine HTML-Demo gebaut, ein paar Skripte geschrieben oder einen Ordner voller Urlaubsfotos auf deinem Linux-Rechner liegen. Jetzt möchtest du das Ergebnis kurz deinem Kollegen im Büro zeigen oder die Dateien auf dein Smartphone schubsen.

Der umständliche Weg? Erst alles auf einen USB-Stick ziehen, per E-Mail senden oder umständlich einen Cloud-Upload starten. Der komplizierte Linux-Weg? Einen vollwertigen Webserver wie Apache oder Nginx installieren und konfigurieren.

Doch Linux-Profis lächeln bei solchen Aufgaben nur müde. Sie nutzen einen genialen, eingebauten Trick, mit dem du in exakt einer Sekunde einen vollwertigen Webserver startest – ganz ohne Installation, Konfiguration oder root-Rechte. Alles, was du brauchst, ist das ohnehin installierte Python.

Der Zauberbefehl: http.server

Öffne einfach dein Terminal, navigiere in den Ordner, den du freigeben möchtest, und tippe folgenden Befehl ein:

Bash

python3 -m http.server 8000

Und das war’s auch schon. Dein Terminal verwandelt sich augenblicklich in einen aktiven Webserver, der auf Port 8000 lauscht.

Was passiert im Hintergrund?

Der Parameter -m (Modul) weist Python an, das integrierte Modul http.server als eigenständiges Skript auszuführen. Python nimmt nun das aktuelle Verzeichnis, in dem du dich befindest, und stellt es als Root-Verzeichnis für das Netzwerk bereit.

  • Befindet sich in dem Ordner eine Datei namens index.html, wird diese sofort als Webseite im Browser gerendert.
  • Gibt es keine index.html, generiert Python automatisch eine saubere, klickbare Verzeichnisübersicht aller Dateien und Unterordner.

So greifst du von anderen Geräten darauf zu

Solange sich die anderen Geräte (Smartphone, Tablet, Zweit-Laptop) im selben WLAN oder lokalen Netzwerk befinden, können sie sofort auf deine Freigabe zugreifen.

  1. Ermittle kurz deine lokale IP-Adresse im Netzwerk (falls du sie nicht im Kopf hast), zum Beispiel mit:Bash ip a | grep inet
    (Nehmen wir an, deine IP lautet 192.168.178.42).
  2. Schnapp dir dein Smartphone, öffne den Browser und tippe in die Adresszeile:Plaintexthttp://192.168.178.42:8000

Schon siehst du deine Dateien oder deine HTML-Seite. Du kannst Bilder direkt im Browser betrachten oder Dokumente mit einem Klick auf dein Handy herunterladen.

Profi-Tweak 1: Den Server noch schneller starten (Alias)

Niemand möchte sich jedes Mal den langen Python-Befehl merken. Deshalb legen wir uns dafür eine Abkürzung (einen Alias) an. Öffne deine Konfigurationsdatei (meistens .bashrc oder .zshrc) in deinem Home-Verzeichnis:

Bash

nano ~/.bashrc

Füge ganz unten folgende Zeile hinzu:

Bash

alias quickshare="python3 -m http.server 8000"

Speichere die Datei ab und lade das Terminal neu (source ~/.bashrc). Ab jetzt reicht ein knackiges quickshare im Terminal aus, um die Freigabe zu starten.

Profi-Tweak 2: Nur auf dem eigenen PC testen (Sicherheit)

Wenn du den Befehl wie oben beschrieben ausführst, ist der Server für jeden im selben Netzwerk erreichbar. Wenn du im Coffeeshop oder in einem öffentlichen WLAN sitzt, ist das ein Sicherheitsrisiko.

Möchtest du eine lokale Webseite nur für dich selbst testen (zum Beispiel um zu sehen, wie deine Web-App auf dem eigenen Monitor aussieht), kannst du Python anweisen, den Server an den Localhost zu binden:

Bash

python3 -m http.server 8000 --bind 127.0.0.1

Dadurch bleibt der Server für die Außenwelt komplett unsichtbar und ist nur über deinen eigenen Rechner unter http://localhost:8000 erreichbar.

Fazit: Das Schweizer Taschenmesser für Entwickler

Pythons eingebauter Webserver ist kein Ersatz für einen produktiven Server im Internet – er ist nicht für hohe Lasten ausgelegt und unterstützt standardmäßig kein HTTPS. Aber für den schnellen Datenaustausch im Büro, das Testen von Code-Schnipseln oder das Streamen eines Videos vom Linux-PC aufs Tablet ist dieser Trick ein absoluter Lebensretter.

Um den Server wieder zu beenden, drückst du im Terminal einfach die Tastenkombination Ctrl + C.