Manchmal braucht man kurzfristig einen Webserver, um eine Datei zu übertragen. Dann kann man natürlich mal eben einen Apache installieren, konfigurieren, Datei hinkopie… okay, lassen wir das.
Es gibt ja das Netzwerk-Schweizer-Taschenmesser-Tool nc
, das kann doch helfen!
#!/bin/bash
FILE=$1
PORT=$2
{ echo -ne "HTTP/1.0 200 OK\r\nContent-Length: $(wc -c <$FILE)\r\n\r\n"; cat $FILE; } | nc -l ${PORT:=8080}
Dieses Script, etwa in der Datei instantwww.sh
gespeichert, lässt sich einfach aufrufen mit der Datei als erste Option und (optional) einem TCP-Port als zweite.
./instantwww.sh Datei
Auf dem Gegenüber gibt man dann entweder die URL in den Browser ein oder nutzt ein Tool wie curl:
curl -o Datei http://[remote-IP]:8080/Datei
Das funktioniert unter Linux und macOS. Und ja, böse Hacker nutzen das, um Dateien von oder zu einem Opfer zu kopieren. 😱