Apri la porta 80 sul server Ubuntu


18

Ho appena iniziato con Ubuntu / Linux e ho qualche problema ad aprire la porta 80 per le connessioni in entrata.

Ho eseguito il sudo ufw allow 80/tcpcomando e quando eseguo sudo ufw statusil risultato è simile al seguente:

Status: active

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

Tuttavia, ottengo ancora questo errore quando provo a connettermi alla porta con cURL.

Impossibile connettersi alla porta 80 MY_IP_ADDRESS: connessione rifiutata

Quando eseguo questo comando netstat -ntlp | grep LISTENper vedere quali porte sono aperte, ottengo questo risultato:

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

Che non sembra così promettente ..

Come posso aprire la porta 80 per le connessioni in entrata?

Risposte:


12

Nessun programma è in ascolto sulla porta 80, quindi è chiuso e non è possibile connettersi ad esso.

Puoi usare

sudo python -m SimpleHTTPServer 80

per avviare un semplice server Web in ascolto sulla porta 80 o installare qualcosa come Apache (pacchetto apache2) se si desidera un server Web completo.


8

UFW è il firewall semplice . Gestisce quali porte sul tuo computer possono essere aperte per l'ascolto da un'applicazione. sudo ufw allow 80/tcpsignifica consentireconnessioni TCP alla porta 80 .

Tuttavia, non c'è nulla di veramente in ascolto dietro la porta. Alla curlporta dovrebbe esserci un'applicazione che invierà una risposta. Questo è in genere chiamato un server. Come punti @Florian fuori, è possibile utilizzare Python 's SimpleHTTPServerper testarlo.


è permanente?
Marcelo Filho,

5

bene quello che ha funzionato per me era usare iptable

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

2
Come nota questo non è permanente. Si reimposterà al riavvio.
Oliver Dixon,

@OliverDixon, sì, corretto
azerafati,

5

Uso:

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

Quindi per evitare che perda la configurazione di iptables al riavvio, utilizzare:

sudo apt-get install iptables-persistent

3
Questa sarebbe stata una grande modifica alla risposta del 4/2016
Charles Green

2

puoi usare sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTquesto accetta la porta quando si configura con la porta per evitare di perdere questa riga di codice terminale che puoi usare sudo apt-get install iptables-persistent Il motivo per sudo nell'inizio di un comando è di lasciarlo funzionare come superutente il persistente lo usa come connessione persistente alla porta fornita. Puoi anche usare puoi usare Python SimpleHTTPServerper testarlo! Questa è stata un'ottima domanda! Grazie!


0

Questo funziona per me Consenti solo agli 80 di iptables

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.