Відкрити порт 80 на сервері Ubuntu


18

Я тільки починаю в Ubuntu / Linux, і у мене є проблеми з відкриттям порту 80 для вхідних з'єднань.

Я запустив sudo ufw allow 80/tcpкоманду, і коли я запускаю sudo ufw statusрезультат виглядає приблизно так:

Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)

Однак я все-таки отримую цю помилку при спробі підключення до порту за допомогою CURL.

Не вдалося підключитися до порту MY_IP_ADDRESS 80: Підключення відмовлено

Коли я запускаю цю команду, netstat -ntlp | grep LISTENщоб побачити, які порти відкриті, я отримую такий результат:

(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -               
tcp6       0      0 :::22                   :::*                    LISTEN      -         

Що не виглядає так перспективно ..

Як відкрити порт 80 для вхідних з'єднань?

Відповіді:


12

На порту 80 немає програми прослуховування, тому вона закрита, і ви не можете підключитися до неї.

Можна використовувати

sudo python -m SimpleHTTPServer 80

почати простий прослуховування веб-сервера на порту 80 або встановити щось на кшталт Apache (пакет apache2), якщо ви хочете повністю роздутий веб-сервер.


8

UFW - це неускладнений брандмауер . Він управляє, які порти на вашому комп'ютері можуть бути відкриті для прослуховування додатком. sudo ufw allow 80/tcpозначає дозволити TCP- з'єднання до порту 80 .

Однак насправді нічого не слухається позаду порту. До curlпорту має бути програма, яка надішле відповідь. Зазвичай це називається сервером. Як зазначає @Florian, ви можете використовувати Python 's SimpleHTTPServerщоб перевірити це.


це постійно?
Marcelo Filho

5

добре, що для мене працювало - використовувати iptable

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2
Як зауваження, це не є постійним. Відновиться при перезавантаженні.
Олівер Діксон

@OliverDixon, так правильно
azerafati

5

Використання:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Потім, щоб запобігти втраті конфігурації iptables при перезапуску, використовуйте:

sudo apt-get install iptables-persistent

3
Це було б чудовою редакцією відповіді від 4/2016
Чарльз Грін

2

ви можете використовувати sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTцей приймає порт, коли він налаштовується з портом, щоб запобігти втраті цього термінального рядка коду, ви можете використовувати sudo apt-get install iptables-persistent Причина sudo в початковому розпорядженні команди полягає в тому, щоб він працював як суперруцер, який постійний використовує його як постійне з'єднання до порту, який постачається. Ви також можете скористатись Python's, SimpleHTTPServerщоб перевірити це! Це було чудове питання! Дякую!


0

Це працює для мене Just Allow 80 з iptables

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