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?

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.


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ć.


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

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

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!


0

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

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.