ubuntuusers.de

Instant Webserver

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/service.png Einen „echten“ Webserver installieren, konfigurieren und pflegen kann in Arbeit ausarten – insbesondere, wenn er öffentlich zugänglich ist. Viel praktischer wäre ein temporärer Webserver, der sich nur bei Bedarf genauso schnell starten wie beenden lässt. Dies ist kein Problem mit den folgenden Programmen. Eine Zielgruppe sind z.B. Webentwickler, die statische HTML-Seiten auf dem eigenen Rechner testen möchten. Eine andere sind Anwender, die schnell Daten zwischen zwei oder mehreren Rechnern im Heimnetzwerk austauschen wollen.

Allerdings sollte unbedingt berücksichtigt werden, dass die genannten Programme ausschließlich zum vorübergehenden Einsatz in einem lokalen Netzwerk (LAN) gedacht sind. Der jeweilige Ordner wird in der Regel rekursiv freigegeben, ist also inklusive aller Unterordner und versteckter Dateien im Netzwerk sichtbar. Wenn der Rechner oder das LAN nicht über spezielle Firewall-Regeln abgesichert sind, stehen unter Umständen persönliche Daten vollkommen ungeschützt im Internet.

Für den Zugriff von einem anderen Rechner reicht ein beliebiger Webbrowser aus. Um die vorgestellten Programme (bis auf woof und webfs) wieder zu beenden, reicht ein Strg + C auf der Kommandozeile [1]. Die Port-Nummer und der Ordnername sind jeweils frei wählbar. Die hier verwendeten Ports 8081 - 8087, der Ordner ~/Downloads und localhost (muss praktisch durch die IP-Adresse des Server-Rechners ersetzt werden) dienen nur als Beispiel.

Achtung!

Alle genannten Programme bieten keinerlei Zugriffsschutz und sollten daher nicht dauerhaft zum Einsatz kommen (einzige Ausnahme ist hier Meiga). Darüber hinaus sind sie kein Ersatz für einen LAMP-Server.

Programme

In den folgenden Beispielen ist der Ordner ~/Downloads (alias /home/BENUTZERNAME/Downloads) das Stammverzeichnis ("document root") des Webservers.

Jibble

Der auf Java basierende und damit plattformübergreifend einsetzbare Webserver Jibble 🇬🇧 bietet neben den Grundfunktionen ein sonst nur von vollwertigen Webservern bekanntes Merkmal: SSI (Server Side Includes). Auch die eingebaute Unterstützung verschiedener MIME-Typen ist praktisch. Eine Upload-Möglichkeit ist nicht vorhanden. Beispiel:

java -jar WebServerLite.jar ~/Downloads 8081 

Der Webserver ist über http://localhost:8081/ zu erreichen.

Python

Ohne Zusatzprogramme und damit noch einfacher in der Handhabung ist der in Python enthaltene SimpleHTTPServer 🇬🇧. Python ist in allen Ubuntu-Varianten in der Standardinstallation enthalten.

Beispiele:

  • Python 3.x:

    cd ~/Downloads && python3 -m http.server 8082 
  • Python 2.x:

    cd ~/Downloads && python -m SimpleHTTPServer 8082 

Der Webserver ist jeweils über http://localhost:8082/ zu erreichen. Eine Upload-Möglichkeit ist nicht vorhanden.

./droopy.png
Upload mit Droopy

Droopy

Bisher fehlt die Möglichkeit, Dateien hochzuladen. Mit dem ebenfalls in Python programmierten Droopy 🇬🇧 können einzelne Dateien bequem hochgeladen werden. Es ist in den offiziellen Paketquellen enthalten. Folgendes Paket muss installiert [3] werden:

  • droopy (universe)

Paketliste zum Kopieren:

sudo apt-get install droopy 

Oder mit apturl installieren, Link: apt://droopy

Nett ist die Möglichkeit, die Upload-Seite mit einem Bild zu verschönern. Beispiel:

python droopy.py -m "Einzelne Dateien hochladen" -d ~/Downloads 8083 -p ~/Bilder/bild.jpg 

Der Webserver ist über http://localhost:8083/ zu erreichen. Weitere Informationen liefert der Befehl:

python droopy.py -h 

Eine Download-Möglichkeit kann man mit der Option --dl aktivieren.

SimpleHTTPServerWithUpload

Das folgende Skript ist eine Alternative zu Droopy und stammt von bones7456 🇿🇭. Im Gegensatz zu Droopy sind hier Up- und Downloads ohne die Angabe einer zusätzlichen Option möglich. Den Quellcode gibt es hier: SimpleHTTPServerWithUpload.py ⮷. Beispiel:

cd ~/Downloads && python SimpleHTTPServerWithUpload.py 8084 

Der Webserver ist über http://localhost:8084/ zu erreichen.

SimpleAuthServer

Möchte man ein Kennwort für den Zugriff nutzen, so kann man das Skript SimpleAuthServer 🇬🇧 verwenden. Man bedenke aber, dass die Authentifizierung nur den Verbindungsaufbau absichert, aber die übertragenen Daten nicht verschlüsselt. Ähnlich wie bei FTP-Übertragungen kann also jeder die übertragenen Dateien inkl. des Kennworts mitlesen, da nur HTTP und nicht HTTPS genutzt wird. Echtes HTTPS bietet erst SimpleAuthServerSSL 🇬🇧.

cd ~/Downloads && python SimpleAuthServer.py 8085 Benutzername:Passwort 

Der Webserver ist über http://localhost:8085/ zu erreichen.

webfs

webfs 🇬🇧 ist ein kleiner Webserver für statische Webseiten, der in den offiziellen Paketquellen enthalten ist. Folgendes Paket muss installiert [3] werden:

  • webfs (universe)

Paketliste zum Kopieren:

sudo apt-get install webfs 

Oder mit apturl installieren, Link: apt://webfs

Die Konfiguration erfolgt über die Datei /etc/webfsd.conf. Weitere Hilfe bietet die Manpage zu webfsd. Informationen zur Steuerung des Dienstes liefert der Befehl:

sudo /etc/init.d/webfs 
  • webfs (universe)

Paketliste zum Kopieren:

sudo apt-get install webfs 

Oder mit apturl installieren, Link: apt://webfs

Die Konfiguration erfolgt über die Datei /etc/webfsd.conf. Weitere Hilfe bietet die Manpage zu webfsd. Informationen zur Steuerung des Dienstes liefert der Befehl:

sudo /etc/init.d/webfs 

spark

spark 🇬🇧 ist ein Instant Webserver, der in Go geschrieben und als "Single Binary" verfügbar ist, d.h. er kann ohne Installation und Konfiguration sofort ausgeführt werden. Up- und Downloads werden nicht unterstützt, jedoch eignet sich spark gut für das Ausliefern statischer Seiten.

Wenn Go auf den lokalen Rechner bereits vorhanden ist, kann spark mit diesem Befehl installiert werden:

go get github.com/rif/spark 

Alternativ kann man spark als Release 🇬🇧 von GitHub herunterladen und direkt ausführen.

Folgender Befehl startet einen Webserver auf Port 8087 und liefert Dateien aus ~/Downloads aus, erreichbar unter http://localhost:8087/.

./spark -path ~/Downloads -port 8087 

Weitere Möglichkeiten

Steht das Interesse am Versenden oder Empfangen von Dateien im Vordergrund, sind die folgenden Programme eine Alternative zu den oben genannten.

woof

Ein weiteres Python-Skript ist woof 🇬🇧, das in den offiziellen Paketquellen enthalten ist:

  • woof (universe)

Paketliste zum Kopieren:

sudo apt-get install woof 

Oder mit apturl installieren, Link: apt://woof

Es eignet sich für einzelne Dateien oder ganze Ordner, wobei letztere automatisch gepackt werden. Als Besonderheit ist ein Zähler vorhanden, mit dem sich die Anzahl der gleichzeitigen Ladevorgänge ("downloads") begrenzen lässt (Standard: 1x herunterladen). Beispiel:

python woof -p 8086 ~/Downloads/Dateiname 

Der Webserver ist über http://localhost:8086/ zu erreichen und liefert Dateiname aus. Anschließend beendet sich das Programm automatisch. Eine Upload-Möglichkeit (ebenfalls mit Zähler) ist vorhanden. Weitere Informationen liefert der Befehl:

python woof -h 

HFS

Der HTTP File Server 🇬🇧 ist ursprünglich für Windows geschrieben worden, lässt sich aber über Wine auch unter Ubuntu ausführen. Verwaltet wird der Server über eine integrierte grafische Benutzeroberfläche. Standardmäßig ist er über http://localhost:8080/ zu erreichen, ist aber auch anders konfigurierbar. Interessant sind die Upload-Möglichkeit sowie die Verwaltung von Benutzern.

Diese Revision wurde am 5. Februar 2020 23:03 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Internet, Server, Netzwerk