Откройте порт 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.

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

Когда я запускаю эту команду, 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чтобы проверить это.


это постоянно?
Марсело Фильо

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 SimpleHTTPServerдля тестирования! Это был отличный вопрос! Спасибо!


0

У меня это работает Просто позвольте 80 из iptables

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.