Saltar al contenido
Underc0de /foro

Instalaste nginx en un servidor Linux y anda con curl localhost, pero desde otra máquina no conecta al puerto 80. ¿Cómo lo diagnosticás?

$ interview --rol redes

Evalúa si el candidato sigue un método ordenado: proceso escuchando, interfaz de bind, firewall local, firewall de red y routing hasta el servicio.

Redes / Sysadminnivel junior#redes#linux#herramientas

Respuesta

Voy de adentro hacia afuera, descartando capas.

1. ¿El servicio escucha y en qué interfaz?

Código: bash
sudo ss -tlnp | grep ':80'
Si aparece 127.0.0.1:80, solo escucha en loopback. Hay que revisar la directiva listen en nginx y pasarla a 0.0.0.0:80 o a la IP correcta. Si aparece 0.0.0.0:80 o *:80, el problema está más afuera.

2. Firewall local

  • Código: bash
    sudo nft list ruleset
    o
    Código: bash
    sudo iptables -L -n -v
    : miro si hay DROP/REJECT y si suben los contadores al probar.
  • Si usa firewalld:
    Código: bash
    sudo firewall-cmd --list-all
    , y luego
    Código: text
    --add-service=http --permanent
    y reload. En Ubuntu con ufw:
    Código: bash
    sudo ufw status
    .

3. ¿Llegan los paquetes?

Código: bash
sudo tcpdump -ni any tcp port 80
Pruebo desde el cliente con
Código: bash
curl -v http://IP
o
Código: bash
nc -vz IP 80
. La salida me da tres casos:
  • No llega nada: el bloqueo está antes del servidor. Puede ser un security group de la nube, un firewall perimetral, una IP equivocada o un problema de routing.
  • Llega el SYN y el servidor no responde: el firewall local lo descarta.
  • El servidor responde con RST: no hay nada escuchando en esa IP/puerto.

4. Otros sospechosos

SELinux puede impedir que nginx use puertos no estándar (
Código: bash
ausearch -m avc
). También reviso que el cliente no pase por un proxy y que el error del cliente sea "connection refused" y no "timeout". Refused suele indicar que no hay proceso o que hay un REJECT. Timeout suele indicar un DROP o un problema de ruta.

Al final aplico el cambio mínimo y lo dejo persistente.

Errores comunes

Desactivar el firewall entero "para probar" y dejarlo así. No mirar en qué interfaz escucha el servicio ni distinguir entre timeout y connection refused. Olvidar los security groups o firewalls de la nube.

Redactado con el asistente Underc0de IA. Actualizado el 15/11/2026. ¿Ves un error? Contanos en el foro.

Grupo de WhatsApp