Comando ss

ss

El comando ss (Socket Statistics) permite mostrar información sobre los sockets y las conexiones de red del sistema. Es la herramienta recomendada en Linux para consultar puertos abiertos, conexiones activas y servicios en escucha, sustituyendo al antiguo comando netstat.

Categoría Red
Disponible en Linux (paquete iproute2)
Equivalente en Windows netstat
¿Requiere permisos de administrador? No para consultas básicas. Algunas opciones muestran más información si se ejecutan como administrador.

¿Qué significa su nombre?

ss son las siglas de Socket Statistics, que significa "estadísticas de sockets".

Un socket es un punto de comunicación entre dos procesos a través de una red o del propio sistema operativo.

¿Para qué sirve?

Permite visualizar las conexiones de red activas, los puertos abiertos y los servicios que están escuchando conexiones.

Es una herramienta muy útil para comprobar si un servidor está funcionando correctamente, identificar qué aplicación está utilizando un puerto o diagnosticar problemas de conectividad.

Sintaxis

ss [opciones]

Opciones más utilizadas

Comando Descripción
ss Muestra las conexiones activas.
ss -t Muestra únicamente conexiones TCP.
ss -u Muestra únicamente conexiones UDP.
ss -l Muestra los puertos en escucha.
ss -n No resuelve nombres; muestra direcciones IP y puertos numéricos.
ss -p Muestra el proceso asociado a cada conexión.
ss -tuln Muestra los puertos TCP y UDP en escucha utilizando direcciones numéricas.

Equivalencia con otros sistemas

Linux antiguo Linux actual Windows
netstat -tuln ss -tuln netstat -ano

Consultas más habituales

Mostrar todas las conexiones

ss

Mostrar los puertos abiertos

ss -tuln

Mostrar el proceso que utiliza cada puerto

ss -tulpn

Mostrar únicamente conexiones TCP

ss -t

Ejemplo de salida

Netid State  Local Address:Port  Peer Address:Port
tcp   LISTEN 0.0.0.0:22          0.0.0.0:*
tcp   LISTEN 0.0.0.0:80          0.0.0.0:*
udp   UNCONN 0.0.0.0:68          0.0.0.0:*

¿Cómo interpretar la salida?

  • Netid: protocolo utilizado (TCP, UDP...).
  • State: estado de la conexión (LISTEN, ESTABLISHED, etc.).
  • Local Address:Port: dirección IP y puerto del equipo local.
  • Peer Address:Port: dirección IP y puerto del equipo remoto.
  • LISTEN: el equipo está esperando conexiones en ese puerto.
  • ESTABLISHED: existe una conexión activa.

Errores habituales

  • Confundir un puerto LISTEN con una conexión activa. Un puerto en escucha simplemente está preparado para recibir conexiones.
  • Pensar que todos los puertos abiertos representan un problema de seguridad. Muchos pertenecen a servicios necesarios del sistema.
  • Olvidar la opción -n. Sin ella, el comando intenta resolver nombres DNS y puede tardar más en mostrar la información.

Conceptos relacionados

  • Socket
  • Puerto
  • TCP
  • UDP
  • Servicio
  • Conexión
  • Firewall

Comandos relacionados

  • ip
  • ping
  • traceroute
  • netstat
  • lsof

Curiosidades

El comando ss forma parte del paquete iproute2, el mismo que incluye el comando ip. Está diseñado para reemplazar a netstat, ofreciendo un mejor rendimiento y mostrando la información de forma más rápida, especialmente en servidores con un gran número de conexiones.


Prácticas propuestas

  1. Ejecuta ss -tuln e identifica todos los puertos que se encuentran en escucha.
  2. Localiza el puerto utilizado por el servicio SSH. ¿En qué estado se encuentra?
  3. Abre una página web y ejecuta ss. ¿Aparecen nuevas conexiones establecidas?
  4. Ejecuta ss -tulpn (como administrador si es necesario) e identifica qué proceso está utilizando el puerto 80 o el puerto 443.
  5. Compara la salida de ss -tuln con la de netstat -ano en Windows. ¿Qué información muestra cada uno?

Consejo: Cuando un servicio no funciona, una de las primeras comprobaciones consiste en ejecutar ss -tuln para verificar si el puerto correspondiente está realmente en escucha.