Visión general de ss
`ss` obtiene información de sockets directamente a través de la interfaz `netlink` del núcleo, lo que lo hace funcionar mucho más rápido que `netstat` en sistemas con una gran cantidad de conexiones. Además, proporciona más información sobre el estado de TCP y estadísticas de sockets detalladas que `netstat` no ofrece. Se recomienda encarecidamente utilizar `ss` al consultar información relacionada con la red en sistemas Linux modernos.
Principales funciones de ss
`ss` se utiliza principalmente para los siguientes propósitos:
Áreas clave de aplicación
- Verificación de conexiones de red y puertos en escucha: Muestra todos los sockets TCP, UDP y UNIX activos del sistema.
- Mapeo de proceso-puerto: Verifica qué proceso está utilizando un puerto específico.
- Verificación de la tabla de enrutamiento: Muestra la tabla de enrutamiento que define la ruta por la que se envían los paquetes IP.
- Estadísticas de interfaces de red: Proporciona estadísticas de paquetes enviados y recibidos para cada interfaz de red.
- Análisis detallado del estado de los sockets: Analiza en profundidad el estado detallado de las conexiones TCP (por ejemplo, `ESTAB`, `LISTEN`, `TIME-WAIT`, etc.) y sus estadísticas.
`ss` vs `netstat`
`ss` es una alternativa moderna y potente a `netstat`.
- ss: Moderno y rápido, accede directamente a las estadísticas de socket del núcleo, soporte completo para IPv6, ofrece más opciones de filtrado.
- netstat: Herramienta heredada, basada en el sistema de archivos `/proc`, puede ser lenta con conexiones grandes, soporte incompleto para IPv6.
Opciones principales del comando ss
`ss` permite combinar varias opciones para filtrar y mostrar la información de red deseada de manera detallada.
1. Filtrado por tipo de socket y estado
2. Formato de salida e información detallada
3. Enrutamiento y otros
Comando generado:
Combina los comandos.
Descripción:
`ss` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
A través de diversos ejemplos de uso del comando `ss`, puedes monitorear y analizar efectivamente las conexiones de red y el estado de los sockets del sistema.
Ver todas las conexiones TCP activas y puertos en escucha
sudo ss -tulpn
Muestra todos los sockets TCP activados (incluyendo en escucha) en el sistema en formato de dirección numérica, junto con los nombres de los programas relacionados y sus PIDs.
Ver solo puertos TCP en escucha
sudo ss -tlpn
Muestra todos los puertos TCP en escucha que están esperando conexiones actuales en formato numérico. Es útil para verificar si los puertos de servicios como servidores web y bases de datos están abiertos.
Verificar procesos que utilizan un puerto específico
sudo ss -tlpn | grep :22
Verifica la información detallada de todas las conexiones TCP y puertos en escucha que utilizan el puerto `22` (SSH). (Útil para diagnosticar servidores SSH)
Verificar todas las conexiones TCP en estado ESTABLISHED
ss -t state established
Muestra todas las conexiones TCP activas que están transmitiendo datos actualmente. Es útil para verificar si las conexiones externas están funcionando correctamente.
Verificar el número de sockets en estado TIME-WAIT
ss -s | grep -i time-wait
Verifica la cantidad de sockets que permanecen en estado `TIME-WAIT` después de cerrar conexiones TCP. Un número demasiado alto puede causar agotamiento de recursos del sistema.
Verificar todos los sockets UDP
ss -ulpn
Verifica todas las conexiones de sockets UDP y puertos en escucha que están en uso en el sistema.
Verificar la tabla de enrutamiento
ss -r
Muestra la tabla de enrutamiento IP del sistema. Es similar a `ip route show`.