50% de descuento en todos los planes, por tiempo limitado. Desde $2.48/mo
9 min de lectura
Seguridad y redes

¿Cómo verificar puertos abiertos en Linux con comandos o PowerShell?

Kelly Watson By Kelly Watson 9 min de lectura Actualizado el 28 de oct. de 2025
Un corredor digital con "puertas" de puertos numerados a la derecha, una abierta y otra cerrada, que ilustra la respuesta a "cómo verificar puertos abiertos en Linux en busca de vulnerabilidades"

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?

Ilustración 3D de un servidor como un edificio con numerosas «puertas» numeradas, que explica 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

Una lupa con la etiqueta «netstat» inspeccionando conexiones de red, que simboliza el papel de este comando en el análisis de redes.

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

Un mapa de red siendo escaneado por Nmap, similar a un barrido de sonar que identifica puertos abiertos y cerrados en distintos dispositivos.

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

Una muralla fortificada con puertas numeradas a modo de puertos, una de las cuales está abierta y expuesta, simbolizando los riesgos de seguridad de los puertos abiertos.

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.

Hosting VPS Linux

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ás

El 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.

Compartir

Más del blog

Sigue leyendo.

Imagen de portada de una guía Cloudzy sobre VPN L2TP con MikroTik, que muestra un portátil conectándose a un rack de servidores a través de un túnel digital azul y dorado con iconos de escudo.
Seguridad y redes

Configuración de MikroTik L2TP VPN (con IPsec): guía para RouterOS (2026)

En esta configuración de MikroTik L2TP VPN, L2TP gestiona el túnel mientras IPsec se encarga del cifrado y la integridad. Combinarlos te da compatibilidad nativa con los clientes sin depender de software de terceros.

Rexa CyrusRexa Cyrus 9 min de lectura
Ventana de terminal con el mensaje de advertencia de SSH sobre un cambio en la identificación del host remoto, con el título de la guía de solución y la imagen de marca Cloudzy sobre fondo verde azulado oscuro.
Seguridad y redes

Advertencia: la identificación del host remoto ha cambiado. Cómo solucionarlo

SSH es un protocolo de red seguro que crea un túnel cifrado entre sistemas. Sigue siendo muy utilizado por desarrolladores que necesitan acceso remoto a equipos sin requerir una interfaz grá

Rexa CyrusRexa Cyrus 10 min de lectura
Ilustración de la guía de resolución de problemas del servidor DNS con símbolos de advertencia y un servidor azul sobre fondo oscuro, para errores de resolución de nombres de Linux
Seguridad y redes

Error temporal en la resolución de nombres: qué significa y cómo solucionarlo

Al usar Linux, es posible que te encuentres con un error de resolución de nombres temporal al intentar acceder a sitios web, actualizar paquetes o ejecutar tareas que requieren conexión a internet.

Rexa CyrusRexa Cyrus 12 min de lectura

¿Listo para desplegar? Desde 2,48 $/mes.

Cloud independiente, desde 2008. AMD EPYC, NVMe, 40 Gbps. 14 días de garantía de devolución.