Otwórz port 80 na serwerze Ubuntu

18

Zaczynam od Ubuntu / Linux i mam problem z otwarciem portu 80 dla połączeń przychodzących.

Uruchomiłem sudo ufw allow 80/tcppolecenie, a po uruchomieniu sudo ufw statuswynik wygląda następująco:

Status: active

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

Jednak nadal pojawia się ten błąd, gdy próbuję połączyć się z portem za pomocą cURL.

Nie udało się połączyć z portem MY_IP_ADDRESS 80: Połączenie odrzucone

Po uruchomieniu tego polecenia, netstat -ntlp | grep LISTENaby zobaczyć, które porty są otwarte, otrzymuję ten wynik:

(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      -         

Co nie wygląda tak obiecująco ...

Jak otworzyć port 80 dla połączeń przychodzących?

jaskółka oknówka
źródło

Odpowiedzi:

12

Na porcie 80 nie ma programu nasłuchującego, więc jest zamknięty i nie można się z nim połączyć.

Możesz użyć

sudo python -m SimpleHTTPServer 80

aby uruchomić prosty serwer sieciowy nasłuchujący na porcie 80 lub zainstalować coś takiego jak Apache (pakiet apache2), jeśli chcesz mieć pełny serwer WWW.

Florian Diesch
źródło
8

UFW to nieskomplikowana zapora ogniowa . Zarządza portami komputera, które można otworzyć w celu nasłuchiwania przez aplikację. sudo ufw allow 80/tcpoznacza zezwalaj napołączenia TCP z portem 80 .

Jednak nic nie nasłuchuje za portem. Do curlportu powinna być aplikacja, która wyśle ​​odpowiedź. Zazwyczaj jest to nazywane serwerem. Jak @Florian punktów out, można użyć Python „s SimpleHTTPServer, aby go przetestować.

ps95
źródło
czy to jest trwałe?
Marcelo Filho,
5

cóż, działało dla mnie użycie iptable

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
azerafati
źródło
2
Uwaga: nie jest to trwałe. Zresetuje się przy ponownym uruchomieniu.
Oliver Dixon
@OliverDixon, tak poprawne
azerafati,
5

Posługiwać się:

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

Następnie, aby zapobiec utracie konfiguracji iptables przy ponownym uruchomieniu, użyj:

sudo apt-get install iptables-persistent
Vitor de Souza
źródło
3
Byłaby to świetna edycja odpowiedzi z 4/2016
Charles Green
2

możesz użyć sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTtego akceptuje port, gdy jest on konfigurowany z portem, aby zapobiec utracie tej linii terminala kodu, którego możesz użyć sudo apt-get install iptables-persistent Powodem sudo na początku polecenia jest umożliwienie mu działania jako superużytkownik, którego trwały używa jako stałego połączenia do dostarczonego portu. Możesz również użyć możesz użyć Pythona SimpleHTTPServerdo przetestowania go! To było świetne pytanie! Dziękuję Ci!

Galien1
źródło
0

To działa dla mnie. Po prostu pozwól 80 z iptables

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Akitha_MJ
źródło