Як я можу запустити python SimpleHTTPServer на порт 80?


96

Я використовую цю команду на Ubuntu, але вона починається з порту 8080, і у мене не працює інший сервер, тому я хотів би, щоб це почалося на порту 80. Я бачив способи, за допомогою яких ви могли б налаштувати скрипт bash, щоб зробити щось подібне це, але чи не існує прапор командного рядка чи щось простіше вказати порт?

python -m SimpleHTTPServer

3
Ти працюєш як root? Ви не можете слухати порт <1024, якщо у вас немає привілеїв root - і я б настійно радив цього не робити.
Натан Осман

Відповіді:


163

sudo python -m SimpleHTTPServer 80

для версії python 3.x вам може знадобитися:

sudo python -m http.server 80

Порти нижче 1024 вимагають привілеїв root.

Як додав Джордж у коментарі, запустити цю команду як корінь не є хорошою ідеєю - вона відкриває всі види вразливості безпеки.

Однак він відповідає на питання.


6
Я також можу додати, що запускати цю команду як root - це не дуже гарна ідея - вона відкриває всі види вразливості безпеки.
Натан Осман

2
@cwd :) Номери портів TCP / IP нижче 1024 відрізняються тим, що звичайним користувачам заборонено запускати на них сервери. Це застереження щодо безпеки, оскільки якщо ви підключитесь до сервісу на одному з цих портів, ви можете бути впевнені, що у вас є справжня річ, а не підробка, яку вам придумав якийсь хакер.
jrg

4
@cwd Якщо ви хочете запустити сервер на порт <1024, використовуйте iptables для маршрутизації вхідних з'єднань до порту ≥1024. Для тестування зробіть щось на зразок sudo nc -l 80( netcat ). І дивіться, чому перші 1024 порти обмежені лише для кореневого користувача?
Жиль

1
@jrg Порт <1024 має значення лише в тому випадку, якщо ви довіряєте sysadmin на сервері, але не іншим користувачам. На сьогоднішній день це майже не користувач за межами кількох локальних мереж: більшість серверів не є багатокористувацькими машинами.
Жиль

3
Це пов’язане питання про те, як скинути привілеї після відкриття порту 80.
jcollado

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.