En sistemas GNU/Linux, el monitoreo de conexiones de red y sockets activos es esencial para cualquier administrador de sistemas. Tradicionalmente, la herramienta netstat era la elección habitual para esta tarea, pero en la mayoría de las distribuciones modernas, ss se ha convertido en la alternativa preferida. Esta herramienta ofrece una forma rápida y eficiente de observar las conexiones de red, facilitando la inspección detallada del tráfico de red y los sockets en uso.
¿Qué es el comando ss?
El comando ss (socket statistics) es una utilidad que permite visualizar información detallada sobre sockets y conexiones de red. Gracias a su diseño más moderno y eficiente, el comando ss es significativamente más rápido que netstat, especialmente en sistemas con un gran volumen de conexiones de red.
¿Para qué se usa el comando ss?
La herramienta ss permite a los administradores de sistemas y a los profesionales de redes verificar y analizar el estado de las conexiones de red, incluyendo:
- Conexiones TCP activas y sus estados.
- Puertos de escucha de diferentes protocolos.
- Conexiones UDP y otros tipos de sockets.
- Información detallada de sockets UNIX.
- Filtrado avanzado de conexiones según diferentes criterios (puertos, direcciones IP, etc.).
Sintaxis básica del comando ss
La sintaxis general de ss es la siguiente:
ss [opciones] [filtros]Las opciones controlan qué tipo de información se mostrará y cómo se formateará, mientras que los filtros permiten acotar la búsqueda para mostrar conexiones de red que cumplen criterios específicos.
Ejemplos de uso y opciones interesantes del comando
Aquí vamos a explorar las opciones más útiles de ss con ejemplos prácticos. Todos los ejemplos utilizarán el nombre de usuario t3rr0rz0n3 para que puedas visualizar cómo aplicar cada comando en una situación real.
Ver todas las conexiones TCP activas
Para listar todas las conexiones TCP activas en el sistema, utiliza el siguiente comando:
ss -tLa opción -t especifica que solo se muestren conexiones TCP.
Mostrar puertos de escucha
Para ver únicamente los puertos de escucha en el sistema, ya sea TCP o UDP, puedes usar la opción -l:
ss -lEste comando muestra una lista de puertos en modo de escucha que están esperando una conexión entrante.
Visualizar conexiones TCP y sus estados
Para ver las conexiones TCP activas y sus estados, usa:
ss -taEste comando es útil cuando necesitas ver no solo las conexiones activas, sino también su estado (como ESTABLISHED, LISTEN, CLOSE_WAIT, etc.).
Listar solo las conexiones UDP
Si necesitas ver únicamente las conexiones UDP en el sistema, utiliza la opción -u:
ss -uVer información detallada sobre cada conexión
La opción -e permite obtener información extendida sobre cada conexión, como el usuario, el PID del proceso y los buffers de socket:
ss -teAquí, -t filtra solo las conexiones TCP, y -e agrega información extendida.
Filtrar conexiones por puerto
Para ver conexiones de red en un puerto específico, usa el siguiente comando. En este ejemplo, buscamos conexiones en el puerto 80:
ss -t 'sport = :80' # Puerto de origen
ss -t 'dport = :80' # Puerto de destinoEsto es útil para detectar tráfico hacia o desde puertos específicos, como el tráfico HTTP en el puerto 80.
Filtrar conexiones por dirección IP
Si quieres filtrar las conexiones que se dirigen a una IP específica, puedes hacerlo con este comando:
ss -t dst 192.168.1.10Este comando muestra solo las conexiones TCP cuyo destino es la dirección IP 192.168.1.10.
Mostrar el propietario de cada socket
Si deseas ver qué usuario y proceso están asociados a cada socket, puedes emplear -p:
ss -tpEste comando resulta ideal para entender qué usuario está utilizando cada conexión.
Mostrar estadísticas de sockets en uso
Para ver estadísticas resumidas sobre los tipos de sockets en uso,
ss -sEste comando muestra un resumen rápido de la cantidad de sockets de cada tipo que están abiertos y sus estados, ofreciendo una visión general del uso de la red en el sistema.
Mostrar todas las conexiones de red, incluidas las UNIX
Para ver todas las conexiones de red, incluidos los sockets UNIX, puedes usar la opción -a junto con -x:
ss -axEsta combinación muestra tanto las conexiones de red activas como las conexiones de sockets UNIX.
Conclusión
El comando ss en GNU/Linux es una herramienta poderosa para el análisis de conexiones de red y monitoreo de sockets. Gracias a su velocidad y flexibilidad, ss ofrece una alternativa moderna a netstat, permitiendo a los administradores de sistemas obtener una visión clara de la actividad de red en sus servidores. A través de los ejemplos y las opciones mostradas, puedes comenzar a aprovechar al máximo ss para gestionar y monitorear el tráfico de red de manera efectiva.
Explorar el uso de estas opciones y combinarlas según tus necesidades te permitirá realizar diagnósticos rápidos y detallados sobre el estado de la red en tus sistemas.
Comentarios