Linux
🤖Generado & Curado por IA (Google Gemini 2.0)
4 min de lectura

Diagnóstico Avanzado de Sockets y Conexiones en Linux con ss y tcpdump

Cómo identificar saturación de conexiones, sockets huérfanos y micro-ráfagas de tráfico sin el overhead del obsoleto netstat.

En entornos de alta concurrencia o servidores de hosting con miles de peticiones simultáneas, herramientas tradicionales como netstat introducen un costo significativo de CPU al consultar /proc/net/tcp. La alternativa moderna y estándar en el kernel es ss (Socket Statistics), que extrae información directamente del espacio de kernel vía Netlink.

1. El Comando Esencial: Inspección Rápida

Para obtener una visión inmediata de todos los sockets TCP en escucha (-l), procesos asociados (-p), números de puerto sin resolución DNS (-n) y timers (-o):

ss -ntlp -o state listening

Si sospechas de un ataque de agotamiento de tabla de estados o SYN Flood:

ss -ant '( sport = :http or sport = :https )' | awk '{print $1}' | sort | uniq -c

2. Detección de Sockets Huérfanos y Reciclaje TCP

Cuando un servicio como NGINX o Apache experimenta picos de desconexión abrupta de clientes, muchos sockets quedan en estado TIME_WAIT o FIN_WAIT_1.

ss -s

La salida detallada mostrará:

  • Total sockets: Conteo global en la tabla del kernel.
  • TCP timewait: Número de conexiones esperando expiración del ciclo 2*MSL.

Regla de oro de Data Center: Nunca actives ciegamente net.ipv4.tcp_tw_recycle en kernels antiguos (está deprecado y eliminado por romper conexiones detrás de NAT). La solución moderna es ajustar tcp_tw_reuse y verificar los descriptores de archivos con sysctl fs.file-nr.

3. Captura selectiva en vivo con tcpdump

Cuando necesitas verificar si los paquetes SYN están llegando al switch o router upstream:

sudo tcpdump -ni eth0 "tcp[tcpflags] & (tcp-syn) != 0 and not src net 192.168.0.0/16" -c 50

Este comando filtra exclusivamente los paquetes que inician handshake TCP (SYN activado) provenientes de redes públicas, deteniéndose tras capturar 50 paquetes.

AS

Alejandro Alfonso Salazar Chaves

M.Sc. en Ciencias de la Computación (Universidad de Costa Rica) con más de 20 años de experiencia en desarrollo de software de misión crítica, infraestructura de red Cisco en Data Center (Racknation) y arquitectura de sistemas en PHPBEAST.

✓ Copiado al portapapeles