Abra el puerto 80 en el servidor Ubuntu

18

Estoy empezando en Ubuntu / Linux, y tengo algunos problemas para abrir el puerto 80 para las conexiones entrantes.

Ejecuté el sudo ufw allow 80/tcpcomando, y cuando ejecuto sudo ufw statusel resultado se ve así:

Status: active

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

Sin embargo, sigo recibiendo este error cuando intento conectarme al puerto con cURL.

Error al conectarse al puerto MY_IP_ADDRESS 80: conexión rechazada

Cuando ejecuto este comando netstat -ntlp | grep LISTENpara ver qué puertos están abiertos, obtengo este resultado:

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

Lo que no parece tan prometedor ...

¿Cómo abro el puerto 80 para las conexiones entrantes?

martín
fuente

Respuestas:

12

No hay ningún programa escuchando en el puerto 80, por lo que está cerrado y no puede conectarse a él.

Puedes usar

sudo python -m SimpleHTTPServer 80

para iniciar un servidor web simple escuchando en el puerto 80, o instalar algo como Apache (paquete apache2) si desea un servidor web completo.

Florian Diesch
fuente
8

UFW es el cortafuegos sin complicaciones . Gestiona qué puertos de su computadora pueden abrirse para que una aplicación los escuche. sudo ufw allow 80/tcpsignifica permitirconexiones TCP al puerto 80 .

Sin embargo, no hay nada realmente escuchando detrás del puerto. Al curlpuerto, debe haber una aplicación que envíe una respuesta. Esto generalmente se llama un servidor. Como puntos @Florian a cabo, puede utilizar Python 's SimpleHTTPServerpara probarlo.

ps95
fuente
es esto permanente?
Marcelo Filho el
5

bueno, lo que funcionó para mí fue usar iptable

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
azerafati
fuente
2
Como nota, esto no es permanente. Se reiniciará al reiniciar.
Oliver Dixon
@OliverDixon, sí correcto
azerafati
5

Utilizar:

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

Luego, para evitar que pierda la configuración de iptables al reiniciar, use:

sudo apt-get install iptables-persistent
Vitor de Souza
fuente
3
Esta habría sido una gran edición de la respuesta con fecha 4/2016
Charles Green
2

puede usar sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTesto acepta el puerto cuando se configura con el puerto para evitar la pérdida de esta línea de código de terminal que puede usar sudo apt-get install iptables-persistent La razón de sudo en el comienzo de un comando es dejar que se ejecute como superusuario; al puerto que se suministra. ¡También puedes usarlo, puedes usar Python SimpleHTTPServerpara probarlo! Esta fue una gran pregunta! ¡Gracias!

Galien1
fuente
0

Esto funciona para mí Solo permita los 80 de iptables

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