Comando ss en Linux: Ver Conexiones Activas, Sockets y Puertos
El comando ss en Linux es extremadamente útil para investigar los sockets, proporcionando varias información sobre la red. Es la evolución del comando netstat del antiguo Net-tools. Es importante entender que un socket puede ser una conexión de red, así como un socket del tipo Unix, que es un archivo especial que actúa como "puente de comunicación" entre dos programas.
Sus opciones más comunes son:
- -a: lista todos los sockets;
- -r: resuelve las direcciones IP y puertos por nombres de servicios;
- -n: no resuelve las direcciones IP y puertos para servicios;
- -l: lista únicamente los puertos abiertos (LISTEN);
- -e: muestra información detallada sobre el socket;
- -m: muestra la asignación de memoria del socket;
- -p: muestra el proceso propietario del socket;
- -i: muestra estadísticas del TCP sobre el socket;
- -K: fuerza el cierre de un socket;
- -s: muestra las estadísticas de la red;
- -t: filtra únicamente los paquetes TCP;
- -u: filtra únicamente los paquetes UDP;
- -4: filtra únicamente los paquetes IPv4;
- -6: filtra únicamente los paquetes IPv6;
Algunas opciones pueden combinarse para obtener un resultado determinado.
Ejemplos:
Para ver las estadísticas de la red:
$ ss -sTotal: 1020TCP: 25 (estab 2, closed 1, orphaned 0, timewait 1)Transport Total IP IPv6RAW 1 0 1 UDP 9 6 3 TCP 24 22 2 INET 34 28 6 FRAG 0 0 0
Para ver los puertos TCP abiertos (en LISTENING):
$ ss -ltState Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 127.0.0.53%lo:domain 0.0.0.0:*
LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*
LISTEN 0 128 [::]:ssh [::]:*
Para mostrar los puertos TCP y UDP abiertos y los procesos propietarios de los sockets. Para mostrar los procesos, el usuario necesita ser el administrador root:
# ss -ltpu
Netid State Local Address
udp UNCONN 127.0.0.1:323 users:(("chronyd",pid=20898,fd=5))
tcp LISTEN 0.0.0.0:ssh users:(("sshd",pid=9857,fd=3))
Muestra todas las conexiones establecidas en el puerto (22) de ssh:
$ ss -o state established '( dport = :ssh or sport = :ssh )'Netid Recv-Q Send-Q Local Address:Port Peer Address:Port tcp 0 0 10.211.55.63:ssh 10.211.55.2:64749 timer:(keepalive,104min,0)
Este comando es útil para diagnosticar los siguientes problemas:
- Verificar qué servicios de red están en ejecución (-l)
- Verificar la cantidad de memoria consumida por un socket (-m)
- Verificar los procesos propietarios de los sockets (-p)
- Verificar las conexiones establecidas (-o state established)
- Verificar el volumen de datos transmitidos en una conexión TCP (-i)
Aprende mucho más sobre Linux en nuestro curso en línea. Puedes realizar la inscripción aquí. Si ya tienes una cuenta, o quieres crear una, simplemente ingresa o crea tu usuario aquí.
¿Te gustó? Comparte
Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.