90. Visualizando las conexiones activas: SS

 

Tutorial: Visualizando Conexiones Activas en Linux con ss

Introducción

¡Hola! Nos acercamos al final de este tema, pero antes me gustaría hablar sobre una situación muy común cuando trabajas con sistemas Linux: la necesidad de visualizar las conexiones activas en tu sistema en un momento determinado.

¿Por qué necesitamos ver las conexiones activas?

Pueden darse varias situaciones:

  • Tu sistema va lento

  • Sospechas que alguien está conectado remotamente a tu máquina

  • Quieres verificar si tienes conexiones activas en background a otros servidores

  • Necesitas monitorizar la actividad de red

Herramienta: ss (Socket Statistics)

¿Qué son los sockets?

Los sockets son un concepto abstracto en redes informáticas que permiten a dos procesos intercambiar información. Pueden ser:

  • Procesos en la misma máquina (comunicación local)

  • Procesos en máquinas diferentes (comunicación remota)

Comandos básicos de ss

1. Ver todas las conexiones

bash
ss -a

Esto muestra TODAS las conexiones, incluyendo:

  • Conexiones TCP/UDP establecidas

  • Sockets Unix (comunicación entre procesos locales)

2. Filtrar por protocolo

bash
# Solo conexiones TCP
ss -t

# Solo conexiones UDP
ss -u

# Solo conexiones TCP activas (establecidas)
ss -t state established

# Solo servicios en escucha (listening)
ss -tln

3. Información específica

bash
# Ver procesos asociados a las conexiones
ss -tp

# Mostrar estadísticas
ss -s

Ejemplo práctico

Vamos a crear una situación real para entender mejor:

Paso 1: Establecer una conexión SSH

bash
ssh usuario@192.168.239.169

Paso 2: Ver las conexiones activas

bash
ss -t

Salida típica:

text
State    Recv-Q   Send-Q   Local Address:Port   Peer Address:Port   
ESTAB    0        0        192.168.1.100:ssh    192.168.239.169:ssh
ESTAB    0        0        192.168.1.100:443    35.163.147.190:https

Interpretación de la salida

  • State: Estado de la conexión (ESTAB = establecida, LISTEN = en escucha)

  • Recv-Q/Send-Q: Datos en cola de recepción/envió

  • Local Address:Port: Tu dirección y puerto local

  • Peer Address:Port: Dirección y puerto remoto

Tipos de conexiones que verás

1. Conexiones TCP/UDP

  • Conexiones con máquinas remotas

  • Servicios web (HTTPS/HTTP)

  • Conexiones SSH

  • Servicios de red varios

2. Unix Domain Sockets

  • Comunicación entre procesos locales

  • No son conexiones de red externas

  • Se ven con ss -x

Comandos útiles en la práctica

Para troubleshooting:

bash
# Ver todas las conexiones TCP (establecidas y en escucha)
ss -tna

# Buscar conexiones específicas (ej: SSH)
ss -tna | grep ssh

# Ver qué procesos están usando puertos
ss -tlnp

# Conexiones UDP activas
ss -una

Para servicios en escucha:

bash
# Ver qué servicios están esperando conexiones
ss -tln

Resumen de opciones más usadas

ComandoDescripción
ss -tConexiones TCP activas
ss -taTodas las conexiones TCP
ss -uConexiones UDP activas
ss -uaTodas las conexiones UDP
ss -tlnServicios TCP en escucha
ss -t state establishedSolo conexiones TCP establecidas
ss -xSockets Unix (comunicación local)
ss -sEstadísticas de sockets

Consejos finales

  1. Usa grep para filtrar conexiones específicas

  2. Combina opciones según lo que necesites visualizar

  3. Revisa regularmente las conexiones establecidas

  4. Aprende a identificar conexiones sospechosas

¡Y esto es todo! Con ss tienes una herramienta poderosa para monitorizar la actividad de red en tu sistema Linux. En la siguiente sección veremos herramientas adicionales que complementan esta funcionalidad.

Comentarios

Entradas más populares de este blog

88. Intercambio de ficheros I: FTP