Marcio Cunha

Cómo usar el comando netstat en Linux para ver conexiones activas

Aprende a diagnosticar puertos abiertos y procesos que consumen tu red usando netstat. La guía práctica esencial para descifrar el tráfico de tu servidor.

Marcio Cunha•3 min
También disponible en:PortuguêsEnglish
Resumen
  • El comando netstat es la herramienta fundamental para identificar qué procesos mantienen conexiones de red activas en tu sistema Linux.
  • La combinación de argumentos -tulpn permite visualizar los puertos en escucha, los protocolos y los IDs de los procesos asociados.
  • Identificar conexiones en estado ESTABLISHED o LISTEN es el primer paso para diagnosticar comportamientos sospechosos o cuellos de botella.
  • Herramientas como ss han reemplazado a netstat en distribuciones modernas, pero conocer la sintaxis clásica sigue siendo vital para soporte a legados.
  • El monitoreo constante de los puertos abiertos previene la exposición no deseada de servicios hacia la internet pública.

Entendiendo el rol del netstat

Cuando un servidor presenta lentitud o comportamientos inesperados, la primera pregunta de un administrador es: ¿qué está pasando realmente con la red? El comando netstat (network statistics) es la respuesta clásica a esa duda. Permite visualizar estadísticas detalladas sobre conexiones activas, tablas de enrutamiento e interfaces, funcionando como una radiografía de las comunicaciones de tu sistema.

En la práctica, netstat nos ayuda a entender quién está hablando con quién. Al listar las conexiones, revela el protocolo utilizado, como TCP o UDP, y el estado de cada uno de esos flujos. Si necesitas saber qué puertos están a la escucha, este comando es tu herramienta básica, funcionando casi como un analizador de tráfico simplificado para diagnóstico de red.

Cómo listar conexiones abiertas con netstat

Para obtener información útil, no basta con ejecutar el comando solo; debemos usar 'flags' o argumentos que filtren el exceso de datos. La combinación netstat -tulpn es la más recomendada para quienes buscan entender el escenario actual de un servidor Linux. Cada letra aquí cumple un propósito claro en la filtración de los datos que queremos observar.

Mira lo que hace cada argumento en la práctica:

  • -t: Muestra conexiones TCP (el protocolo estándar para comunicación estable).
  • -u: Muestra conexiones UDP (utilizado para servicios rápidos como DNS o streaming).
  • -l: Filtra solo los puertos en modo de escucha (listening), es decir, quién está esperando conexiones.
  • -p: Muestra el nombre del programa o el ID del proceso (PID) que abrió el puerto.
  • -n: Muestra direcciones numéricas (IPs) en lugar de intentar resolver nombres de dominio, lo cual acelera significativamente la respuesta del comando.

Interpretando el estado de las conexiones

Al ejecutar el comando, verás columnas importantes como Local Address, Foreign Address y State. El estado de la conexión dice mucho sobre lo que ocurre: 'LISTEN' significa que un servicio está listo para recibir conexiones; 'ESTABLISHED' indica que existe una conversación activa con otra máquina. Si ves muchas conexiones en 'TIME_WAIT', podría significar que tu sistema está procesando una carga alta de conexiones rápidas y cerrándolas inmediatamente después.

Saber identificar lo que representa cada estado permite distinguir entre una operación normal y un ataque de agotamiento de red. Además, si necesitas validar flujos específicos, puedes complementar tu diagnóstico con la prueba de puertos con netcat, asegurando que tanto el software como la capa de transporte estén alineados.

Identificando procesos que consumen la red

La parte más poderosa del comando es la opción -p. Sin ella, sabes que un puerto está abierto, pero no tienes idea de qué programa lo está usando. Con ella, netstat consulta al sistema para decirte exactamente qué binario está vinculado a ese puerto. Si notas un puerto extraño abierto, es ese proceso el que necesitas investigar.

Para buscar algo específico, podemos combinar el comando con grep. Por ejemplo, si quieres ver si el servidor web Nginx está corriendo y a la escucha correctamente, puedes usar el siguiente procedimiento: Para profundizar en estos conceptos arquitectónicos en producción, consulte también nuestro análisis técnico sobre Cómo optimizar imágenes WebP en CSS para cargar más rápido.

  1. Abre la terminal con privilegios de superusuario para visualizar todos los procesos.
  2. Ejecuta el comando:
    sudo netstat -tulpn | grep nginx
  3. Analiza la salida para confirmar la dirección IP y el puerto asociado al proceso.

Conclusión: El poder de la observabilidad

Netstat sigue siendo una habilidad de supervivencia para cualquier administrador de sistemas. Aunque herramientas como ss o ip se están convirtiendo en el estándar, el conocimiento sobre cómo netstat interpreta los datos de red es universal y aplicable en casi cualquier entorno Linux, ya sea físico o en contenedores.

Dominar estas herramientas básicas es lo que separa a un operador que solo reinicia servicios de un ingeniero que resuelve problemas de raíz. Al monitorear activamente tus puertos, no solo mejoras la seguridad, sino que obtienes un entendimiento profundo sobre la arquitectura de red que sustenta tus aplicaciones en el día a día.