Jak mogę uruchomić Pythona SimpleHTTPServer na porcie 80?


96

Używam tego polecenia w systemie Ubuntu, ale zaczyna się ono na porcie 8080 i nie mam innego serwera, więc chciałbym, aby uruchomił się na porcie 80. Widziałem sposoby, w których można skonfigurować skrypt bash, aby zrobić coś takiego to, ale czy nie ma flagi wiersza polecenia lub czegoś prostszego do określenia portu?

python -m SimpleHTTPServer

3
Czy działasz jako root? Nie możesz nasłuchiwać na porcie <1024, chyba że masz uprawnienia roota - zdecydowanie odradzam to.
Nathan Osman

Odpowiedzi:


163

sudo python -m SimpleHTTPServer 80

w przypadku wersji Python 3.x może być potrzebne:

sudo python -m http.server 80

Porty poniżej 1024 wymagają uprawnień roota.

Jak dodał George w komentarzu, uruchomienie tego polecenia jako root nie jest dobrym pomysłem - otwiera on wszystkie luki w zabezpieczeniach.

Odpowiada jednak na pytanie.


6
Mógłbym również dodać, że uruchomienie tego polecenia jako root nie jest dobrym pomysłem - otwiera on wszelkiego rodzaju luki w zabezpieczeniach.
Nathan Osman

2
@cwd :) Numery portów TCP / IP poniżej 1024 są wyjątkowe, ponieważ normalni użytkownicy nie mogą na nich uruchamiać serwerów. Jest to zabezpieczenie, ponieważ jeśli łączysz się z usługą na jednym z tych portów, możesz być całkiem pewien, że masz prawdziwą rzecz, a nie podróbkę, którą wymyślił dla ciebie jakiś haker.
jrg

4
@cwd Jeśli chcesz uruchomić serwer na porcie <1024, użyj iptables do kierowania połączeń przychodzących do portu ≥1024. Do testowania zrób coś takiego jak sudo nc -l 80( netcat ). I zobacz Dlaczego pierwsze 1024 porty są ograniczone tylko do użytkownika root?
Gilles

1
@jrg Port <1024 ma znaczenie tylko wtedy, gdy ufasz sysadmin na serwerze, ale nie innym użytkownikom. Obecnie jest prawie bezużyteczny poza kilkoma sieciami lokalnymi: większość serwerów nie jest maszynami dla wielu użytkowników.
Gilles

3
To jest powiązane pytanie dotyczące tego, jak zrzucić uprawnienia po otwarciu portu 80.
jcollado

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.