Cuando se trata de acceder a información relacionada con sockets a través de la línea de comandos en Linux, la primera herramienta que viene a la mente es netstat. Sin embargo, hay otra utilidad que puede hacer este trabajo por ti.
Se llama ss . En este tutorial, discutiremos los conceptos básicos de esta herramienta utilizando algunos ejemplos fáciles de entender. Pero antes de hacerlo, vale la pena mencionar que todos los casos aquí se probaron en una máquina con Ubuntu 18.04 LTS.
Comando Linux ss
El comando ss en Linux le permite investigar sockets. La siguiente es su sintaxis:
ss [options] [ FILTER ]
Y esto es lo que dice la página de manual de la herramienta al respecto:
ss is used to dump socket statistics. It allows showing information similar to netstat.
It can display more TCP and state information than other tools.
Los siguientes son algunos ejemplos de preguntas y respuestas que deberían darle una mejor idea de cómo funciona el comando ss.
P1. ¿Cómo usar el comando ss?
En su forma muy básica, puede usar el comando ss ejecutando 'ss' sin ninguna opción.
ss
El siguiente es el resultado que produjo el comando en mi caso:
Notará que ss muestra sockets con conexiones establecidas en su salida predeterminada.
P2. ¿Cómo hacer que ss suprima la línea de encabezado?
La supresión de encabezados se puede realizar mediante la opción de línea de comando -H.
ss -H
La siguiente captura de pantalla muestra esta opción de línea de comando en acción:
Entonces puede ver que falta la línea de encabezado en este caso.
P3. ¿Cómo hacer que ss muestre sockets de escucha y de no escucha?
Esto lo puede hacer usando la opción de línea de comando -a.
ss -a
Tenga en cuenta que los sockets de escucha se omiten de forma predeterminada, por lo que usar -a hace que ss los incluya en la salida. Sin embargo, si desea que ss solo muestre los sockets de escucha, use la opción de línea de comando -l.
ss -l
P4. ¿Cómo hacer que ss muestre procesos usando sockets?
Si desea que el comando ss muestre la información del proceso junto con la otra información que ya produce en la salida, use la opción de línea de comando -p.
ss -p
La siguiente captura de pantalla muestra el resultado en mi caso:
Para que pueda ver que la información del proceso se muestra en la salida.
P5. ¿Cómo hacer que ss produzca información resumida?
Si no desea ver el resultado, el comando ss produce de manera predeterminada. Luego hay una opción a través de la cual puede pedirle a ss que proporcione un pequeño resumen de la información que analiza.
Este resumen se puede producir usando la opción de línea de comando -s:
ss -s
Por ejemplo, el siguiente es el resumen proporcionado en mi caso:
Total: 1334 (kernel 0)
TCP: 41 (estab 35, closed 3, orphaned 0, synrecv 0, timewait 3/0), ports 0
Transport Total IP IPv6
* 0 - -
RAW 1 0 1
UDP 7 5 2
TCP 38 37 1
INET 46 42 4
FRAG 0 0 0
P6. ¿Cómo hacer que ss muestre solo sockets IPv4 o IPv6?
Esto se puede hacer usando las opciones -4 y -6.
Por ejemplo, para hacer que ss solo muestre sockets IPv4, ejecute el siguiente comando:
ss -4
De manera similar para IPv6, ejecute el siguiente comando:
ss -6
P7. ¿Cómo hacer que ss solo muestre sockets TCP o UDP?
Hay diferentes opciones de línea de comandos que puede usar aquí:-t para TCP y -u para UDP.
El siguiente es un extracto útil de la página del manual del comando ss.
-t, --tcp
Display TCP sockets.
-u, --udp
Display UDP sockets.
-d, --dccp
Display DCCP sockets.
-w, --raw
Display RAW sockets.
-x, --unix
Display Unix domain sockets (alias for -f unix).
-S, --sctp
Display SCTP sockets.
--vsock
Display vsock sockets (alias for -f vsock).
Conclusión
El comando ss es una herramienta útil si su trabajo en Linux implica redes. Aquí, en este tutorial, hemos discutido algunas opciones de línea de comando que ofrece ss. Una vez que haya terminado de practicar estos, diríjase a la página de manual de la herramienta para obtener más información.