Para revisar los sockets de red y sus conexiones en Linux, las herramientas principales son ss y, en sistemas más antiguos, netstat. El comando ss es la opción moderna y preferida por ser más rápido y eficiente.


Usando ss (Socket Statistics) nowoczesny

El comando ss es la herramienta estándar en los sistemas Linux modernos para investigar sockets. Es más rápido que netstat porque obtiene su información directamente del kernel 😉

Comandos básicos con ss

  • Listar todas las conexiones: Muestra todos los sockets TCP, UDP y UNIX.
ss -a
  • Listar solo sockets en modo “escucha” (Listening): Esto es muy útil para ver qué puertos están abiertos en tu sistema y esperando conexiones entrantes, como un servidor web o una base de datos.
ss -l
  • Mostrar el proceso/programa asociado a cada socket: Usando el parámetro -p, puedes ver qué aplicación está utilizando un puerto específico. Necesitarás privilegios de sudo para ver la información de todos los procesos.
sudo ss -p

Combinaciones útiles y ejemplos

La verdadera potencia de ss viene de combinar sus opciones. Aquí están las combinaciones más comunes y útiles:

  • La combinación más popular:
sudo ss -tulpn

Este es el comando que probablemente más usarás. Desglosemos qué hace cada opción:

  • -t: Muestra solo sockets TCP.
  • -u: Muestra solo sockets UDP.
  • -l: Muestra solo sockets en modo “escucha” (listening).
  • -p: Muestra el nombre del proceso.
  • -n: Muestra los números de puerto y direcciones IP en formato numérico, sin intentar resolver los nombres (lo que lo hace mucho más rápido).

Ejemplo de salida:

sudo ss -tulpn

State      Recv-Q Send-Q  Local Address:Port    Peer Address:Port   Process
LISTEN     0      4096    127.0.0.53%lo:53         0.0.0.0:* users:(("systemd-resolve",pid=1029,fd=14))
LISTEN     0      128       0.0.0.0:22         0.0.0.0:* users:(("sshd",pid=1543,fd=3))
LISTEN     0      128          [::]:22            [::]:* users:(("sshd",pid=1543,fd=4))

Interpretación:

  • El servicio systemd-resolve (para DNS) está escuchando en el puerto 53 de la dirección local 127.0.0.53.
  • El servicio sshd (para SSH) está escuchando en el puerto 22 en todas las interfaces IPv4 (0.0.0.0) e IPv6 ([::]).

Ver todas las conexiones TCP establecidas: Esto te permite ver quién está conectado a tu máquina y a qué te has conectado tú.

ss -tan state established

-t: TCP.

  • -t: TCP.
  • -a: Todas (established, listening, etc., pero lo filtramos con state).
  • -n: Numérico.
  • state established: Filtra solo por las conexiones que están completamente establecidas.
  • Filtrar por puerto específico: Puedes encontrar qué proceso está usando un puerto determinado.
sudo ss -tulpn | grep ':80'

Este comando te mostraría cualquier proceso que esté escuchando en el puerto 80 (HTTP).


Usando netstat (Network Statistics) 👴

En sistemas más antiguos o en algunos sistemas embebidos, ss podría no estar disponible, y en su lugar usarás netstat. Sus opciones son muy similares.

  • La combinación equivalente a ss -tulpn:
sudo netstat -tulpn

Las opciones (-t, -u, -l, -p, -n) significan exactamente lo mismo que en ss.

  • Listar todas las conexiones:
netstat -a

La principal diferencia es que ss es considerablemente más rápido, especialmente en sistemas con un gran número de conexiones, ya que no tiene que leer y procesar la misma cantidad de información que netstat.


Agregar un comentario

Tu dirección de correo electrónico no será publicada. Los campos requeridos están marcados *