2 de mayo de 2026 · 7 min de lectura
¿Cuáles son mis puertos abiertos? Cómo comprobar los puertos TCP en tu IP pública
Aprende qué significan los puertos abiertos, cerrados y filtrados, cuáles puertos representan riesgos de seguridad y cómo comprobar los puertos abiertos de tu IP pública sin instalar software.
Tu dirección IP pública es visible para todos los dispositivos en internet, al igual que cualquier servicio que escuche en sus puertos. Saber qué puertos están abiertos es el primer paso para comprender la superficie de ataque de tu red.
Un comprobador de puertos se conecta a tu IP desde un servidor externo e informa si cada puerto está abierto (un servicio aceptó la conexión), cerrado (el sistema operativo la rechazó) o filtrado (un cortafuegos descartó el paquete silenciosamente). La herramienta ¿Cuáles son mis puertos abiertos? realiza esta comprobación automáticamente para un conjunto de puertos comunes y para cualquier puerto personalizado que introduzcas.
¿Qué es un puerto de red?
Una dirección IP hace llegar los paquetes al equipo correcto. Un número de puerto — un entero de 16 bits de 1 a 65535 — le indica al sistema operativo qué programa debe controlar esos paquetes.
Cuando un programa llama a bind() y listen() en un puerto, está escuchando: listo para aceptar conexiones entrantes. Cuando nada está escuchando, el sistema operativo responde a los paquetes TCP SYN entrantes con un RST (reinicio), lo que indica "cerrado". Cuando un cortafuegos descarta el paquete sin ninguna respuesta, el remitente espera hasta que se agote el tiempo de espera (timeout); este es un puerto filtrado.
Abierto, cerrado y filtrado: la perspectiva del saludo de tres vías de TCP
El saludo de tres vías de TCP estándar envía tres paquetes:
- SYN — el cliente solicita conectarse
- SYN-ACK — el servidor acepta (el puerto está abierto)
- ACK — el cliente confirma
Si en lugar de SYN-ACK el servidor envía RST-ACK, el puerto está cerrado. Si el paquete SYN desaparece por completo, el puerto está filtrado.
| Estado | Qué ocurrió | Qué significa |
|---|---|---|
| Abierto | SYN-ACK recibido | Un servicio está escuchando y es accesible |
| Cerrado | RST-ACK recibido | Ningún servicio escucha; el host está activo |
| Filtrado | Sin respuesta (tiempo de espera agotado) | El cortafuegos / NAT está bloqueando el paquete |
La mayoría de las direcciones IP domésticas muestran casi todos los puertos como filtrados porque los routers de consumo aplican NAT de forma predeterminada y bloquean todas las conexiones entrantes no solicitadas.
Por qué comprobar puertos requiere un servidor externo
Los navegadores se ejecutan en un modelo de seguridad aislado (sandbox). JavaScript no puede abrir sockets TCP arbitrarios hacia hosts externos; esto permitiría a cualquier sitio web escanear tu red o sondear servicios internos. La API fetch() está restringida a HTTP/HTTPS; la conexión TCP directa no está disponible para las páginas web.
Un comprobador de puertos del lado del servidor evita esto realizando la conexión TCP desde una infraestructura en la que confías y devolviendo luego el resultado. La comprobación equivale a ejecutar nc -zv <tu-ip> <puerto> desde una máquina remota:
# Comando de shell equivalente
nc -zv 203.0.113.42 22
# Connection to 203.0.113.42 22 port [tcp/ssh] succeeded!
El resultado te indica exactamente lo que vería un atacante que escanee internet.
Puertos comunes y sus niveles de riesgo
| Puerto | Servicio | Riesgo si está abierto públicamente |
|---|---|---|
| 22 | SSH | Medio — ataques de fuerza bruta constantes; usa autenticación por clave |
| 23 | Telnet | Alto — envía datos en texto plano |
| 25 | SMTP | Medio — abuso de retransmisión (relay) si está mal configurado |
| 80 | HTTP | Bajo — normal en servidores web |
| 443 | HTTPS | Bajo — normal en servidores web |
| 3306 | MySQL | Crítico — nunca exponer a la internet pública |
| 5432 | PostgreSQL | Crítico — nunca exponer a la internet pública |
| 6379 | Redis | Crítico — sin autenticación por defecto en versiones antiguas |
| 8080 | HTTP Alt | Medio — a menudo herramientas de desarrollo sin autenticación |
| 27017 | MongoDB | Crítico — historial masivo de brechas de seguridad por exposición pública |
Cómo interactúan el NAT y la redirección de puertos
La mayoría de los usuarios domésticos y de oficina se encuentran detrás de un NAT (Traducción de Direcciones de Red). Tu router le asigna a cada dispositivo una IP privada (192.168.x.x, 10.x.x.x) y presenta una única IP pública a internet. Las conexiones entrantes que llegan a la IP pública del router no tienen adónde ir a menos que configures la redirección de puertos (port forwarding), una regla de NAT que asocia un puerto externo a un equipo y puerto internos.
Si ejecutas un servidor de juegos, alojas un sitio web o utilizas un servicio que necesita conexiones entrantes (VoIP, BitTorrent, escritorio remoto), configuras la redirección de puertos en el panel de administración del router. El comprobador de puertos confirma si la redirección está funcionando: si el puerto se muestra abierto desde el exterior, la regla de redirección está enviando correctamente el tráfico a tu máquina.
Cómo asegurar los puertos que no querías abrir
Si el comprobador de puertos revela un puerto abierto inesperado:
- Identifica el proceso que escucha: en Linux, usa
ss -tlnp | grep :<puerto>onetstat -tlnp. En Windows, usanetstat -ano | findstr :<puerto>y busca el PID en el Administrador de tareas. - Detén el servicio si no debería estar ejecutándose, o reconfigúralo para enlazarse solo a
127.0.0.1. - Añade una regla de cortafuegos:
ufw deny <puerto>/tcpen Ubuntu, o una regla de entrada en el Cortafuegos de Windows. - Verifica la solución: vuelve a ejecutar el comprobador de puertos; el puerto ahora debería mostrarse como filtrado desde el exterior.
Comprueba los puertos de tu IP pública ahora mismo (sin necesidad de instalar software) en la herramienta ¿Cuáles son mis puertos abiertos?. Para obtener contexto sobre la IP que se está escaneando, consulta ¿Cuál es mi IP?.