
Я только начинаю работать в 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 для входящих подключений?
решение1
Ни одна программа не прослушивает порт 80, поэтому он закрыт, и вы не можете к нему подключиться.
Вы можете использовать
sudo python -m SimpleHTTPServer 80
Для Python-3:
sudo python3 -m http.server 80
чтобы запустить простой веб-сервер, прослушивающий порт 80, или установить что-то вроде Apache (пакет apache2
), если вам нужен полнофункциональный веб-сервер.
решение2
УФВэтоПростой брандмауэр. Он управляет тем, какие порты на вашем компьютере могут быть открыты для прослушивания приложением. sudo ufw allow 80/tcp
означает разрешитьТКПсвязи спорт 80.
Однако на самом деле за портом ничего не прослушивается. В curl
порту должно быть приложение, которое будет отправлять ответ. Обычно это называется сервером. Как указывает @Florian, вы можете использоватьПитончтобы SimpleHTTPServer
проверить это.
решение3
Использовать:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Затем, чтобы предотвратить потерю конфигурации iptables при перезапуске, используйте:
sudo apt-get install iptables-persistent
решение4
вы можете использовать sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
это принимает порт, когда он настраивается с портом, чтобы предотвратить потерю этой терминальной строки кода вы можете использовать sudo apt-get install iptables-persistent
Причина использования sudo в начале команды заключается в том, чтобы позволить ей работать как суперпользователь, постоянный использует его как постоянное соединение с предоставленным портом. Вы также можете использовать вы можете использовать Python, SimpleHTTPServer
чтобы проверить это! Это был отличный вопрос! Спасибо!