La mayoría de la gente cree que revisar los puertos abiertos es tarea exclusiva de expertos en seguridad, hasta que su servidor queda comprometido a través de un puerto expuesto del que ni siquiera sabían que estaba escuchando. Puedes comprobar los puertos abiertos en Linux con comandos integrados como netstat, ss, lsof, nmap y netcat, o escanear puertos de forma remota usando PowerShell desde sistemas Windows. Cada método ofrece distintos niveles de detalle y requiere permisos diferentes.
La gestión de puertos importa más que nunca. Las actividades de reconocimiento automatizado no dejan de crecer, y los atacantes sondean constantemente en busca de puntos de entrada vulnerables. Tanto si estás asegurando servidores en producción como si estás probando servicios locales, dominar la seguridad de puertos es fundamental para mantener un sistema seguro y funcional.
TL;DR: resumen rápido
- Usa ss o netstat para comprobar rápidamente los puertos en escucha sin instalar herramientas adicionales
- Usa nmap cuando necesites un escaneo completo de puertos con detección detallada de servicios
- Usa lsof para identificar qué proceso concreto está usando un puerto determinado
- Usa Test-NetConnection de PowerShell desde Windows para comprobar puertos en servidores Linux remotos
¿Qué es un puerto en términos sencillos?

Imagina los puertos como puertas numeradas en tu servidor. Cada puerto funciona como un punto de comunicación donde el tráfico de red entra o sale de tu sistema. Los números de puerto van del 0 al 65.535 y se dividen en tres categorías: puertos conocidos (0-1023), puertos registrados (1024-49151) y puertos dinámicos (49152-65.535).
En pocas palabras: cuando navegas por un sitio web, tu navegador llama al puerto 80 para HTTP o al puerto 443 para HTTPS. Los servidores de correo responden en el puerto 25 para SMTP, mientras que el acceso remoto por SSH opera en el puerto 22. Estos puertos en escucha actúan como puertas de entrada para el tráfico legítimo, pero también pueden convertirse en puntos de acceso para los atacantes si se dejan desprotegidos.
Los puertos funcionan junto con dos protocolos de transporte principales: TCP para comunicaciones fiables y orientadas a la conexión, y UDP para transferencias de datos más rápidas y sin conexión. Entender cómo funcionan los puertos te ayuda a tomar decisiones informadas sobre cuáles mantener abiertos y cuáles cerrar para mejorar la seguridad.
Cómo comprobar los puertos abiertos en Linux

Linux ofrece varias herramientas para el análisis de puertos, cada una con ventajas distintas. Algunas vienen preinstaladas; otras requieren instalación. La herramienta más adecuada depende de tu nivel de permisos, el detalle que necesites y el caso de uso concreto.
Uso del comando netstat
El comando netstat lleva décadas siendo una herramienta de referencia para el análisis de redes. Para comprobar los puertos abiertos, usa netstat -tuln donde cada opción cumple una función concreta: -t muestra las conexiones TCP, -u muestra las conexiones UDP, -l filtra solo los puertos en escucha, y -n presenta los resultados en formato numérico en lugar de resolver los nombres de host.
Al ejecutar este comando, verás una salida con el protocolo, la dirección local con el número de puerto, la dirección remota y el estado de la conexión. Por ejemplo, 0.0.0.0:22 indica que SSH está escuchando en todas las interfaces de red en el puerto 22. Cada entrada ofrece visibilidad inmediata sobre los servicios activos y su estado en la red.
El Comando netstat en Linux ofrece opciones adicionales para un análisis más detallado. Añadir -p muestra qué proceso es propietario de cada conexión, aunque esto requiere privilegios de root. Por ejemplo, sudo netstat -tulnp muestra tanto el puerto como el ID del proceso que lo utiliza.
Uso del comando ss
El comando ss es el sustituto moderno de netstat, con mejor rendimiento y estadísticas de socket más detalladas. Usa ss -tuln con las mismas opciones que netstat para obtener una salida comparable. Sin embargo, ss procesa la información más rápido, especialmente en sistemas con muchas conexiones.
Para comprobar puertos abiertos con filtrado avanzado, ss ofrece opciones de sintaxis muy precisas. Ejecutar ss -tulnp | grep :22 muestra solo las conexiones relacionadas con SSH. El comando ss -tn state established muestra todas las conexiones TCP establecidas, lo que permite supervisar las sesiones activas.
Una ventaja de ss es su capacidad para filtrar por criterios específicos. Por ejemplo, ss -t '( dport = :80 or sport = :80 )' muestra solo las conexiones relacionadas con el tráfico web en el puerto 80. Esta precisión hace de ss una herramienta imprescindible para diagnosticar problemas en servicios concretos.
Uso del comando lsof
El comando lsof destaca a la hora de identificar qué proceso está usando un puerto determinado. Ejecutar sudo lsof -i -P -n muestra todas las conexiones de red con los detalles del proceso. La opción -i filtra las conexiones a internet, -P evita que los números de puerto se conviertan en nombres de servicio, y -n omite la resolución DNS para obtener resultados más rápidos.
Cuando necesitas saber qué está usando un puerto concreto, lsof te da la respuesta. Por ejemplo, sudo lsof -i :3306 indica si MySQL está en ejecución y qué ID de proceso lo controla. Esto resulta clave al diagnosticar conflictos de puertos o identificar servicios no autorizados.
También puedes filtrar los resultados por aplicaciones específicas. Si sospechas que un programa concreto está escuchando en puertos inesperados, sudo lsof -i -a -p [PID] muestra todas las conexiones de red de ese ID de proceso en concreto.
Uso de Nmap para el escaneo de puertos

Nmap es una de las herramientas de escaneo de puertos más completas disponibles. Para instalarlo, ejecuta sudo apt install nmap en sistemas Ubuntu o Debian. Para comprobar puertos en local, usa nmap localhost or nmap 127.0.0.1 para un escaneo básico.
Para servidores remotos, especifica la dirección IP: nmap 192.168.1.100. Nmap ofrece información detallada sobre puertos abiertos, versiones de servicios e incluso detección del sistema operativo mediante opciones avanzadas. El comando nmap -sV localhost detecta las versiones de los servicios en ejecución, mostrando exactamente qué software corre en cada puerto.
Los equipos de seguridad valoran la capacidad de Nmap para probar reglas de firewall. Ejecutar nmap -Pn [IP] escanea un host aunque el ping esté bloqueado. Eso sí, asegúrate siempre de tener permiso antes de escanear servidores remotos, ya que el escaneo de puertos no autorizado puede infringir políticas de seguridad.
Uso de Netcat (nc) para comprobar puertos abiertos
Netcat ofrece una forma directa de comprobar puertos con una sobrecarga mínima. El comando nc -zv localhost 22-80 escanea el rango de puertos del 22 al 80 e indica cuáles aceptan conexiones. La opción -z activa el modo de escaneo sin enviar datos, mientras que -v muestra una salida detallada.
Para verificar un puerto concreto, nc -zv hostname 443 confirma rápidamente si HTTPS está accesible. Este método resulta útil en scripts y flujos de automatización. Puedes combinar netcat con bucles de shell para escaneos más amplios: for port in {1..1000}; do nc -zv localhost $port 2>&1 | grep succeeded; done
El escucha con netcat La funcionalidad va más allá de la verificación de puertos: incluye pruebas de servicios reales y transferencia de datos, lo que la convierte en una herramienta versátil para cualquier administrador de sistemas.
Verificar puertos abiertos con PowerShell
PowerShell permite a los usuarios de Windows comprobar puertos abiertos en servidores Linux remotos sin instalar software adicional. El comando Test-NetConnection -ComputerName [Linux-IP] -Port 22 verifica la accesibilidad de SSH desde una máquina Windows.
Para escanear varios puertos, crea un bucle sencillo en PowerShell: 1..1024 | ForEach-Object { Test-NetConnection -ComputerName 192.168.1.100 -Port $_ -WarningAction SilentlyContinue } | Where-Object { $_.TcpTestSucceeded }. Este método funciona bien al comprobar puertos en Ubuntu, Debian o cualquier otra distribución Linux desde sistemas Windows.
La ventaja de PowerShell está en su integración con la infraestructura Windows. Puedes exportar los resultados a CSV, enviar alertas por correo o activar respuestas automáticas según el estado de los puertos, lo que lo hace ideal para monitorizar entornos híbridos.
Comparativa de métodos de escaneo de puertos
| Herramienta | Sintaxis del comando | Ideal para | Requisitos previos |
| netstat | netstat -tuln | Resumen rápido de los puertos en escucha | Preinstalado en la mayoría de sistemas |
| ss | ss -tuln | Alto rendimiento, información detallada de sockets | Preinstalado (Linux moderno) |
| lsof | sudo lsof -i -P -n | Identificar qué proceso usa un puerto | Requiere acceso root/sudo |
| nmap | nmap localhost | Escaneo completo de puertos | Requiere instalación aparte |
| netcat | nc -zv host puerto | Pruebas simples de conectividad de puertos | Preinstalado o fácil de instalar |
| PowerShell | Test-NetConnection | Escaneo remoto desde Windows | Se requiere la máquina Windows |
Puertos comunes de Linux y sus servicios asociados
| Port | Servicio | Protocolo | Uso común |
| 22 | SSH | TCP | Acceso remoto seguro mediante Conexión remota SSH |
| 80 | HTTP | TCP | Tráfico web sin cifrar |
| 443 | HTTPS | TCP | Tráfico web cifrado |
| 21 | FTP | TCP | Transferencia de archivos |
| 25 | SMTP | TCP | Envío de correo electrónico |
| 3306 | MySQL | TCP | Conexiones a bases de datos |
| 5432 | PostgreSQL | TCP | Conexiones a bases de datos |
La configuración de puertos requiere conocimientos sobre reglas de firewall y enlaces de servicios. Muchos administradores cambian el puerto SSH en Linux del puerto predeterminado 22 a un puerto no estándar para reducir los intentos de ataque automatizados. El Telnet vs. SSH debate pone de manifiesto por qué el puerto 23 (Telnet) debe permanecer cerrado en favor del protocolo cifrado SSH del puerto 22.
Puertos abiertos en Linux: qué debes saber

Cada puerto abierto es un punto de entrada potencial a tu sistema. Las implicaciones de seguridad se han agravado: la actividad automatizada de escaneo de puertos ha aumentado un 16,7 % a nivel mundial, ya que los actores maliciosos sondean continuamente en busca de puntos de entrada vulnerables. Estas actividades de reconocimiento analizan miles de millones de puertos cada mes en busca de servicios mal configurados o software desactualizado.
Bien, ¿pero qué ocurre exactamente cuando un atacante encuentra un puerto abierto? Los estados de los puertos cuentan la historia. Un puerto en estado LISTEN acepta conexiones entrantes, ESTABLISHED indica una transferencia de datos activa, y TIME_WAIT muestra una conexión cerrada recientemente pero que aún se rastrea. Los atacantes explotan los puertos abiertos mediante distintos métodos: ataques de fuerza bruta contra SSH (puerto 22), inyección SQL a través de puertos web (80/443) y ejecución remota de código mediante servicios vulnerables.
Abrir puertos de forma segura requiere un enfoque de defensa en profundidad. Empieza con una política de cortafuegos que deniega por defecto. Verifica tu configuración con iptables mostrar reglas. Abre solo los puertos de los servicios que uses activamente y ciérralos en cuanto dejen de ser necesarios. Considera cambiar los puertos predeterminados de los servicios más comunes para dificultar el éxito del escaneo automatizado.
El ecosistema Linux ha enfrentado importantes retos de seguridad, con cientos de vulnerabilidades que han requerido parches. Realizar auditorías periódicas de puertos te permite detectar servicios no autorizados antes que los atacantes. Usa herramientas de transferencia de archivos que respeten los límites de seguridad, como copiar archivos mediante SSH en lugar del FTP sin cifrar. Al mover archivos entre sistemas, usar SCP para copiar archivos de un sistema remoto al local garantiza una transferencia cifrada a través del canal seguro de SSH.
Las buenas prácticas incluyen implementar port knocking para los servicios sensibles, usar fail2ban para bloquear fallos de autenticación repetidos y mantener registros detallados de los intentos de conexión. Programa auditorías de seguridad periódicas para revisar qué puertos siguen abiertos y si todavía tienen un propósito legítimo.
Cómo el VPS Linux de Cloudzy simplifica la gestión de puertos
Gestionar puertos es mucho más sencillo con una infraestructura bien configurada. Las Linux VPS soluciones de Cloudzy incluyen configuraciones de seguridad predefinidas con reglas de cortafuegos inteligentes y una gestión de puertos ágil a través de un panel de control intuitivo. Con acceso root completo, mantienes el control total sobre qué puertos abrir o cerrar.
Consigue un VPS Linux económico o premium para alojar tu sitio web o escritorio remoto, al precio más competitivo del mercado. VPS sobre Linux KVM para mayor eficiencia, con hardware potente y almacenamiento NVMe SSD para mayor velocidad.
Leer másEl rendimiento importa cuando se trata de comprobar y gestionar puertos. El almacenamiento NVMe de Cloudzy garantiza que tus herramientas de escaneo de puertos funcionen con eficiencia, mientras que conexiones de hasta 10 Gbps gestionan tráfico de alto volumen sin cuellos de botella. La infraestructura se beneficia del hecho de que Linux impulsa una parte significativa de la infraestructura de servidores a nivel mundial, lo que convierte estas configuraciones optimizadas en soluciones probadas y fiables.
Desde tan solo 3,96 $ al mes, dispones de un entorno profesional ideal para practicar técnicas de gestión de puertos. Múltiples ubicaciones de centros de datos te permiten probar configuraciones geodistribuidas, mientras que el soporte 24/7 te asiste con configuraciones complejas de cortafuegos o problemas relacionados con puertos. Tanto si estás aprendiendo a comprobar puertos abiertos en Linux como si estás desplegando servicios en producción, contar con un entorno VPS flexible acelera tus implementaciones de seguridad.
Conclusión
¿Cuál es entonces la mejor forma de comprobar los puertos abiertos? La respuesta directa es que no existe una única opción. Para comprobaciones locales rápidas, ss o netstat hacen el trabajo sin complicaciones. Cuando necesitas auditorías de seguridad exhaustivas, Nmap lo revela todo. Para identificar qué proceso ocupa un puerto, lsof te ahorra horas de suposiciones. PowerShell conecta Windows y Linux cuando necesitas verificación remota.
La verdadera lección aquí no es memorizar comandos. Es convertir la auditoría de puertos en una rutina, no en una respuesta de emergencia. Programa escaneos semanales, cierra los puertos que no uses en cuanto los detectes y documenta qué servicios necesitan qué puertos. Ese enfoque transforma la comprobación de puertos de una reacción ante incidentes en una defensa proactiva.