Откройте порт 80 на сервере Ubuntu

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

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

Status: activeTo                         Action      From--                         ------      ----22                         ALLOW       Anywhere80/tcp                     ALLOW       Anywhere22 (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 для входящих подключений?

На порту 80 нет программы, прослушивающей, поэтому он закрыт, и вы не можете подключиться к нему.

Вы можете использовать

sudo python -m SimpleHTTPServer 80

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

UFW это Несложный Брандмауэр. Он управляет тем, какие порты на вашем компьютере могут быть открыты для прослушивания приложением. sudo ufw allow 80/tcp средства позволяют TCP соединения с порт 80.

Однако на самом деле за портом ничего не прослушивается. К curl в порту должно быть приложение, которое отправит ответ. Обычно это называется сервером. Как указывает @Florian, вы можете использовать ПитонSimpleHTTPServer чтобы проверить это.

Воспользуйся:

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

Затем, чтобы предотвратить потерю конфигурации iptables при перезапуске, используйте:

sudo apt-get install iptables-persistent

ну, что сработало для меня, так это использование iptable

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

Вы можете использовать sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT это принимает порт, когда он настраивается с помощью порта, чтобы предотвратить потерю этой строки кода терминала, которую вы можете использовать sudo apt-get install iptables-persistent Причина sudo в начале команды заключается в том, чтобы позволить ей выполняться от имени суперпользователя, который постоянно использует ее как постоянное соединение с предоставленным портом. Вы также можете использовать вы можете использовать Python SimpleHTTPServer чтобы проверить это! Это был отличный вопрос! Спасибо!

Это работает для меня, просто разрешите 80 из iptables

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