Wie kann ich den Python SimpleHTTPServer auf Port 80 starten?

96

Ich benutze diesen Befehl unter Ubuntu, aber er startet auf Port 8080 und ich habe keinen anderen Server, daher möchte ich, dass er auf Port 80 startet. Ich habe Möglichkeiten gefunden, wie Sie ein Bash-Skript einrichten können, um so etwas zu tun Ist dies nicht der Fall, aber gibt es kein Befehlszeilenflag oder etwas Einfacheres, um den Port anzugeben?

python -m SimpleHTTPServer
cwd
quelle
3
Laufen Sie als root? Sie können keinen Port <1024 abhören, es sei denn, Sie haben Root-Rechte - und ich rate dringend davon ab.
Nathan Osman

Antworten:

163

sudo python -m SimpleHTTPServer 80

Für die Python 3.x- Version benötigen Sie möglicherweise:

sudo python -m http.server 80

Für Ports unter 1024 sind Root-Rechte erforderlich.

Wie George in einem Kommentar hinzufügte, ist es keine gute Idee, diesen Befehl als root auszuführen - er eröffnet alle Arten von Sicherheitslücken.

Es beantwortet jedoch die Frage.

jrg
quelle
6
Ich könnte auch hinzufügen, dass es keine gute Idee ist, diesen Befehl als root auszuführen - er eröffnet alle Arten von Sicherheitslücken.
Nathan Osman
2
@cwd :) Die TCP / IP-Portnummern unter 1024 sind insofern besonders, als normale Benutzer keine Server auf ihnen ausführen dürfen. Dies ist insofern ein Sicherheitsmerkmal, als Sie, wenn Sie sich an einem dieser Ports mit einem Dienst verbinden, ziemlich sicher sein können, dass Sie das Original haben und keine Fälschung, die ein Hacker für Sie aufgestellt hat.
14.
4
@cwd Wenn Sie den Server an einem Port <1024 ausführen möchten, verwenden Sie iptables, um eingehende Verbindungen an einen Port ≥ 1024 weiterzuleiten. Machen Sie zum Testen so etwas wie sudo nc -l 80( netcat ). Und siehe Warum sind die ersten 1024 Ports nur dem Root-Benutzer vorbehalten?
Gilles
1
@jrg Ein Port <1024 ist nur wichtig, wenn Sie dem Sysadmin auf dem Server vertrauen, nicht aber anderen Benutzern. Heutzutage ist es außerhalb einiger lokaler Netzwerke nahezu benutzerlos: Die meisten Server sind keine Mehrbenutzer-Computer.
Gilles
3
Dies ist eine verwandte Frage zum
Löschen von
2

Mach etwas wie:

python -SimpleHTTPServer 50505

Wo 50505ist die Portnummer?

Akash Yellappa
quelle