Come posso avviare Python SimpleHTTPServer sulla porta 80?


96

Sto usando questo comando su Ubuntu ma si sta avviando sulla porta 8080 e non ho un altro server in esecuzione, quindi mi piacerebbe che iniziasse sulla porta 80. Ho visto modi in cui potresti impostare uno script bash per fare qualcosa di simile questo, ma non esiste un flag della riga di comando o qualcosa di più semplice per specificare la porta?

python -m SimpleHTTPServer

3
Stai correndo come root? Non è possibile ascoltare su una porta <1024 a meno che non si disponga di privilegi di root - e lo sconsiglio vivamente.
Nathan Osman,

Risposte:


163

sudo python -m SimpleHTTPServer 80

per la versione 3.x di Python , potresti aver bisogno di:

sudo python -m http.server 80

Le porte inferiori a 1024 richiedono i privilegi di root.

Come ha aggiunto George in un commento, eseguire questo comando come root non è una buona idea: apre tutti i tipi di vulnerabilità della sicurezza.

Tuttavia, risponde alla domanda.


6
Potrei anche aggiungere che eseguire questo comando come root non è una buona idea: apre tutti i tipi di vulnerabilità della sicurezza.
Nathan Osman,

2
@cwd :) I numeri di porta TCP / IP inferiori a 1024 sono speciali in quanto agli utenti normali non è consentito eseguire server su di essi. Questa è una caratteristica di sicurezza, in quanto se ti connetti a un servizio su una di queste porte puoi essere abbastanza sicuro di avere la cosa reale, e non un falso che qualche hacker ha inventato per te.
giovedì

4
@cwd Se si desidera eseguire il server su una porta <1024, utilizzare iptables per instradare le connessioni in entrata su una porta ≥1024. Per i test, fai qualcosa di simile sudo nc -l 80( netcat ). E vedi Perché le prime 1024 porte sono riservate solo all'utente root?
Gilles,

1
@jrg Una porta <1024 è importante solo se si considera attendibile l'amministratore di sistema sul server ma non altri utenti. Al giorno d'oggi è quasi privo di user al di fuori di alcune reti locali: la maggior parte dei server non sono macchine multiutente.
Gilles,

3
Questa è una domanda correlata su come eliminare i privilegi dopo aver aperto la porta 80.
jcollado

2

Fai qualcosa come:

python -SimpleHTTPServer 50505

Dov'è 50505il numero di porta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.