Marcio Cunha

Cómo usar el comando ss para monitorear conexiones TCP en Linux

Cansado de netstat? Aprende a usar el comando ss para visualizar sockets TCP, identificar procesos vinculados y analizar la latencia de red con mejor rendimiento.

Marcio Cunha•2 min
También disponible en:PortuguêsEnglish
Resumen
  • El comando ss es el reemplazo moderno de netstat, ya que consulta los datos del kernel directamente para obtener un rendimiento superior.
  • La filtración de sockets permite aislar conexiones basándose en estados, puertos o direcciones IP de manera eficiente y rápida.
  • Identificar qué proceso está vinculado a un puerto es una tarea crítica para diagnosticar fugas de recursos y latencias inusuales.
  • El uso de parámetros como -t, -u y -n ayuda a centrarse exclusivamente en el protocolo TCP, omitiendo resoluciones DNS innecesarias.
  • Las estadísticas internas de TCP que proporciona ss son fundamentales para medir la salud real y la latencia en las conexiones de red.

Por qué reemplazar netstat con ss

Si administras servidores Linux, es probable que hayas usado netstat durante años. Sin embargo, este comando pertenece a un conjunto de herramientas legado que ya no se mantiene activamente. El comando ss (parte del paquete iproute2) es el estándar actual. Su ventaja principal es que lee la información directamente desde el kernel, lo que lo hace significativamente más veloz y eficiente, especialmente en servidores que manejan miles de conexiones simultáneas donde netstat podría ralentizarse.

Sintaxis esencial para empezar

La verdadera potencia del comando ss está en su capacidad de filtrado rápido. Para ver todas las conexiones TCP, usamos ss -t. Para evitar que el sistema realice búsquedas DNS y así acelerar el proceso, añadimos la bandera -n. Si queremos saber qué proceso es el dueño de una conexión, usamos la opción -p. Es una transición natural para quien ya consultaba redes siguiendo el tutorial sobre cómo usar el comando netstat en Linux, pero ahora con una herramienta diseñada para el rendimiento moderno.

Filtrado preciso por estados de red

Cuando estamos diagnosticando problemas, a menudo necesitamos buscar conexiones en estados críticos como TIME-WAIT o SYN-RECV. Con ss, es tan sencillo como ejecutar ss -t state established para ver solo las conexiones activas. Esto nos permite ver si un servicio está agotando sus descriptores de archivo. Claro que, a veces, la lentitud no es solo de red; si el servidor está inestable, conviene revisar también si es un problema de memoria, como se explica en nuestra guía para diagnosticar el error OOMKill en Kubernetes.

Procesos y análisis de latencia

Identificar qué proceso utiliza un puerto específico es vital para la seguridad. Al usar ss -tp, obtienes el PID y el nombre del ejecutable al instante. Además, al ejecutar ss -ti, accedes a métricas internas del protocolo TCP, como el RTT (Round Trip Time), que te indican si existe congestión en la ruta. Estos datos son fundamentales para realizar ajustes precisos, al igual que cuando optimizas el rendimiento al limitar memoria de containers con Cgroups v2 para mantener la salud general del host.

Conclusión

Migrar hacia el uso de ss es un paso lógico para cualquier ingeniero de DevOps que desee una mayor visibilidad de su infraestructura. La herramienta no solo es más rápida, sino que proporciona datos mucho más granulares directamente del motor del sistema.

Dominar estos comandos es esencial para una resolución de problemas más ágil y efectiva. La observabilidad continua es la clave para mantener servidores estables y rápidos ante cualquier carga de tráfico.