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 local127.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 constate).-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