
Recién estoy comenzando en Ubuntu/Linux y tengo problemas para abrir el puerto 80 para las conexiones entrantes.
Ejecuté el sudo ufw allow 80/tcp
comando y cuando lo ejecuto sudo ufw status
el 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 al intentar conectarme al puerto con cURL.
No se pudo conectar al puerto MY_IP_ADDRESS 80: conexión rechazada
Cuando ejecuto este comando netstat -ntlp | grep LISTEN
para 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 cual no parece tan prometedor...
¿Cómo abro el puerto 80 para conexiones entrantes?
Respuesta1
No hay ningún programa escuchando en el puerto 80, por lo que está cerrado y no puedes conectarte a él.
Puedes usar
sudo python -m SimpleHTTPServer 80
Para Python-3:
sudo python3 -m http.server 80
para iniciar un servidor web simple escuchando en el puerto 80, o instale algo como Apache (paquete apache2
) si desea un servidor web completo.
Respuesta2
UFWes elCortafuegos sin complicaciones. Gestiona qué puertos de su computadora se pueden abrir para escuchar mediante una aplicación. sudo ufw allow 80/tcp
significa permitirtcpconexiones apuerto 80.
Sin embargo, no hay nada escuchando detrás del puerto. Debe haber una aplicación en curl
el puerto que enviará una respuesta. Normalmente se le llama servidor. Como señala @Florian, puedes usarPitónEs SimpleHTTPServer
para probarlo.
Respuesta3
Usar:
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
Respuesta4
puedes usar sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
esto acepta el puerto cuando se configura con el puerto para evitar perder esta línea de código de terminal. puedes usar sudo apt-get install iptables-persistent
La razón para sudo al comienzo de un comando es permitir que se ejecute como superusuario, el persistente lo usa como una conexión persistente al puerto que se suministra. ¡También puedes usar Python SimpleHTTPServer
para probarlo! ¡Esta fue una gran pregunta! ¡Gracias!