netstat( estadísticas de red ) es una utilidad de línea de comandos que muestra el estado de las conexiones TCP (tanto entrantes como salientes), tablas de enrutamiento, número de interfaces de red y estadísticas de protocolo de red . Disponible en los sistemas operativos UNIX y Windows . El objetivo principal de la utilidad es encontrar problemas de red y determinar el rendimiento de la red.
En Linux, la clásica utilidad netstat del paquete "net-tools" ha recibido una nueva alternativa, la utilidad ss del paquete " iproute2 ". [1] [2]
El comando netstat muestra el contenido de varias estructuras de datos relacionadas con la red en varios formatos, según las opciones especificadas.
La primera forma del comando muestra una lista de sockets activos ( sockets ) para cada protocolo. La segunda forma selecciona una de varias otras estructuras de datos de red. El tercer formulario muestra estadísticas de reenvío de paquetes dinámicos en las interfaces de red configuradas; el argumento de intervalo especifica cuántos segundos se recopila información entre impresiones sucesivas.
El valor predeterminado para el argumento del sistema es /unix; para el argumento principal, el valor predeterminado es /dev/kmem.
-a | Mostrar el estado de todos los enchufes; por lo general, no se muestran los sockets utilizados por los procesos del servidor. |
-A | Mostrar direcciones de cualquier bloque de control de protocolo asociado con sockets; utilizado para la depuración. |
-b | Muestra el ejecutable involucrado en la creación de cada conexión, o el puerto que está esperando. A veces, los ejecutables conocidos contienen varios componentes independientes. Luego se muestra la secuencia de componentes involucrados en la creación de la conexión, o el puerto en espera. En este caso, el nombre del archivo ejecutable está en la parte inferior entre corchetes [ ], en la parte superior está el componente al que llama, y así sucesivamente hasta llegar a TCP/IP. Tenga en cuenta que este enfoque puede llevar mucho tiempo y requiere suficientes permisos. |
-i | Muestra el estado de las interfaces autoconfiguradas. No se muestran las interfaces que están configuradas estáticamente en el sistema pero que no se encuentran en el momento del arranque. |
-norte | Mostrar direcciones de red como números. netstat generalmente muestra las direcciones como caracteres. Esta opción se puede utilizar con cualquier formato de visualización. |
-r | Mostrar tablas de enrutamiento. Cuando se usa con la opción -s, muestra las estadísticas de enrutamiento. |
-s | Mostrar información estadística sobre protocolos. Cuando se usa con la opción -r, muestra las estadísticas de enrutamiento. |
-f dirección_familia | Limite la visualización de estadísticas o direcciones de bloques de control solo a la familia de direcciones especificada, que se puede especificar como:
inet Para la familia de direcciones AF_INET , o unix Para la familia de direcciones AF_UNIX . |
-i interfaz | Seleccione información sobre la interfaz especificada en una columna separada; de forma predeterminada (para la tercera forma del comando), se utiliza la interfaz con la mayor cantidad de información transferida desde el último reinicio del sistema. La interfaz puede ser cualquiera de las interfaces enumeradas en el archivo de configuración del sistema, como emd1 o lo0. |
-pags | Muestra el ID/nombre del proceso que creó el socket (-p, --programs muestra PID/Nombre del programa para sockets) |
Enchufes activos
Para cada socket activo, muestra el protocolo, el tamaño de las colas de recepción y recepción (en bytes), la dirección local y remota, y el estado interno del protocolo. El formato de carácter comúnmente utilizado para mostrar direcciones de socket es:
hostname.puertosi se especifica un nombre de host, ya sea:
red.puertosi la dirección del socket especifica una red, pero no un host específico. Los nombres de host y red se toman de las entradas correspondientes en el archivo /etc/hosts o /etc/networks .
Si no se conoce la red o el nombre de host de la dirección (o si se especifica la opción -n), la dirección se muestra como números. Las direcciones y los puertos no especificados o "generalizados" se muestran como "*". Para obtener más información sobre las convenciones de nomenclatura de Internet, consulte la página del manual de inet .
enchufes TCP
Para los sockets TCP, los siguientes valores de estado son válidos:
CERRADO | Cerrado El zócalo no se está utilizando. |
ESCUCHA (ESCUCHA) | Esperando conexiones entrantes. |
SYN_SENT | Intentando activamente establecer una conexión. |
SYN_RECIBIDO | La sincronización inicial de la conexión está en curso. |
ESTABLECIDO | Conexión establecida. |
CLOSE_WAIT | El lado remoto se ha desconectado; esperando a que se cierre el enchufe. |
FIN_WAIT_1 | El enchufe está cerrado; desconectando la conexión. |
CLAUSURA | El enchufe está cerrado, luego el lado remoto desconectado; Esperando confirmación. |
LAST_ACK | El lado remoto desconectado, luego el zócalo está cerrado; Esperando confirmación. |
FIN_ESPERA_2 | El enchufe está cerrado; esperando que el lado remoto se desconecte. |
TIEMPO DE ESPERA | El socket está cerrado, pero está esperando que se procesen los paquetes que aún están en la red. |
Estructuras de datos de red
Los datos mostrados dependen de la elección de la opción, -i o -r. Si se especifican ambas opciones, netstat elegirá -i.
Mostrar tabla de enrutamiento
La tabla de enrutamiento muestra todas las rutas disponibles (rutas) y el estado de cada una de ellas. Cada ruta consta de un host o red de destino y una puerta de enlace que se utiliza para reenviar los paquetes. La columna de banderas muestra el estado de la ruta (U si está habilitada), si la ruta conduce a una puerta de enlace (G), si la ruta se creó dinámicamente con una redirección (D) y si se usa la dirección unihost (H) en su lugar. de la dirección de red. Por ejemplo, la interfaz lo0 del proveedor de transporte de bucle invertido siempre tiene el indicador H.
Se crean rutas directas para cada interfaz conectada al host local; el campo de puerta de enlace para dichas entradas indica la dirección de la interfaz de salida.
La columna refcnt muestra el número actual de usos activos para la ruta. Los protocolos orientados a la conexión suelen utilizar una sola ruta durante una conexión, mientras que los protocolos sin conexión reciben una ruta para cada envío al mismo destino.
La columna de uso muestra el número de paquetes enviados a lo largo de la ruta.
La columna de interfaz muestra la interfaz de red utilizada por la ruta.
Resumen de estadísticas de transferencia de datos
Cuando se proporciona el argumento de intervalo, netstat muestra una tabla de estadísticas resumidas sobre paquetes transmitidos, errores y colisiones. La primera línea de datos que se muestra, así como cada 24 líneas subsiguientes, contiene información estadística resumida desde el último reinicio del sistema. Cada línea subsiguiente muestra los datos acumulados para el siguiente intervalo especificado en la línea de comando desde la última pantalla.
Las tablas del kernel pueden cambiar a medida que netstat las procesa, lo que genera resultados incorrectos o incompletos.