La utilidad netstat (estadísticas de red) en Linux proporciona información relacionada con las conexiones de red. Puede usar varios comandos de netstat para mostrar conexiones de red activas, datos de interfaz, tablas de enrutamiento, etc. Esta es información esencial para administradores de red y profesionales de seguridad de la información. Es por eso que hemos preparado esta guía con una amplia selección de ejemplos útiles de netstat. Después de completar esta guía, podrá inspeccionar toda la información relacionada con la red de su máquina Linux. También alentamos a los lectores a probar estos ejemplos en su propia máquina para obtener una experiencia más práctica.
Ejemplos de comandos de Netstat para administradores de red
La información proporcionada por netstat facilita la localización de problemas en las conexiones de red. Esta es la razón por la que netstat es la utilidad de referencia para solucionar problemas de conexión de red para muchos administradores de sistemas. Continúe leyendo para descubrir cómo utilizar mejor el comando netstat.
1. Mostrar todos los sockets activos
Los sockets son estructuras que actúan como puntos finales al enviar o recibir solicitudes de red. Cuando se usa sin argumentos, netstat muestra una lista de todos los sockets abiertos en su máquina.
$ netstat
De forma predeterminada, este comando muestra los sockets activos para todas las familias de redes. Como puede notar, imprime mucha información adicional bajo la etiqueta “Unix Domain Sockets“ . Estos son los puntos finales de comunicación de datos para los procesos que se están ejecutando actualmente en su máquina.
2. Mostrar todos los enchufes que escuchan y los que no escuchan
Puede utilizar -a opción de netstat para imprimir una lista de todos los enchufes que escuchan y no escuchan. Ejecute el siguiente comando y verifique la salida para ver cómo funciona este comando.
$ netstat -a $ netstat --all- -
Los –todos la opción funciona igual que -a . La salida debe mostrar todos los enchufes, tanto activos como inactivos. Las filas representan los sockets y la columna dicta sus valores. Los usuarios pueden ver el protocolo de socket, los datos enviados/recibidos, las direcciones y los estados correspondientes.
3. Mostrar conexiones TCP
El TCP o Transmission Control Protocol es el protocolo de Internet más utilizado. Puede usar el siguiente comando netstat para mostrar solo las conexiones TCP activas.
$ netstat -t $ netstat --tcp
También puede usar la forma larga –tcp en lugar de -t . Utilice el siguiente comando para ver una lista de todas las conexiones de red TCP establecidas y en escucha.
$ netstat -at $ netstat -all --tcp
4. Mostrar conexiones UDP
UDP o User Datagram Protocol es otro de los principales protocolos de red utilizados por nuestros sistemas. Puede usar la utilidad netstat para mostrar una lista de sockets establecidos y de escucha para conexiones UDP.
$ netstat -u $ netstat --udp
Este ejemplo imprime todas las conexiones UDP establecidas. Si desea ver todas las conexiones establecidas y de escucha, use el siguiente comando en su lugar.
$ netstat -au $ netstat --all --udp
5. Mostrar todas las conexiones TCP de escucha
Puede mostrar una lista de todas las conexiones TCP en escucha usando -l y -t bandera del programa netstat. Consulte el siguiente comando para ver cómo sucede.
$ netstat -lt
Mostrará todas las conexiones TCP que están escuchando activamente las solicitudes de red entrantes. La salida debe contener información sobre los protocolos TCP y TCP6. También puede usar la sintaxis de formato largo al usar este comando en scripts de shell de Linux.
$ netstat --listen --tcp
6. Mostrar todas las conexiones UDP de escucha
Los usuarios pueden adoptar el mismo enfoque que se muestra arriba del comando para mostrar las conexiones UDP de escucha. Abra su emulador de terminal de Linux favorito y ejecute el siguiente comando para hacerlo.
$ netstat -lu
Al igual que con el comando anterior, mostrará conexiones para los protocolos UDP y UDP6. El siguiente ejemplo ilustra la forma larga.
$ netstat --listen --udp
7. Mostrar todas las conexiones UDP-Lite de escucha
UDP-Lite es un protocolo sin conexión basado en el protocolo UDP. Permite que los sistemas reciban un paquete de red potencialmente dañado. Puede mostrar las conexiones de escucha para este protocolo usando el siguiente comando simple.
$ netstat -lU
La -U La opción de netstat permite a los administradores especificar el protocolo udplite. También puede usar –udplite como forma larga para esta opción.
$ netstat --udplite
8. Mostrar conexiones Unix de escucha
Ya hemos discutido cómo los sistemas Linux usan el socket de dominio Unix para la comunicación entre procesos (IPC). Puede imprimir una lista de todas las conexiones Unix de escucha para su máquina usando el siguiente comando netstat.
$ netstat -lx
El -x La opción especifica los sockets de dominio de Unix. Puede utilizar la forma abreviada –unix en lugar de -x . Esto es útil para documentar scripts de shell.
$ netstat --unix
9. Mostrar estadísticas de protocolo
La utilidad netstat ofrece un excelente soporte para estadísticas de protocolo. Los usuarios pueden ver una amplia gama de información de los datos estadísticos, como la cantidad de conexiones, paquetes, segmentos defectuosos, etc. Consulte el resultado del siguiente comando para ver cómo funciona.
$ netstat -s $ netstat --statistics
De forma predeterminada, este comando muestra información sobre los protocolos TCP, UDP, ICMP e IP. Los administradores de red pueden usar esta salida para determinar posibles problemas en las conexiones de red.
10. Mostrar estadísticas del protocolo TCP
Los usuarios también pueden ver las estadísticas de conexión de un único protocolo. El siguiente ejemplo muestra los datos estadísticos solo para el protocolo TCP.
$ netstat -st
Podemos combinar fácilmente las -s opción con un selector de protocolo y conocer datos estadísticos al respecto. El siguiente ejemplo imprime el mismo resultado pero usando la sintaxis abreviada.
$ netstat --statistics --tcp
11. Mostrar estadísticas del protocolo UDP
Podemos ver los datos de estadísticas para el protocolo UDP de la misma manera que vimos las estadísticas de TCP. Reemplace la -t o –-tcp opción con cualquiera de -u o –udp . Consulte los siguientes dos ejemplos para ver cómo funciona.
$ netstat -su $ netstat --statistics --udp
Tenga en cuenta que también encontrará las estadísticas de udplite de estos comandos. Sin embargo, si especifica udplite usando -U o –udplite opción, no habrá datos UDP en la salida resultante.
12. Mostrar nombres de programas
Puede usar la utilidad netstat para mostrar qué programas han iniciado las conexiones de red. Esto puede ser extremadamente útil para solucionar problemas de red. Consulte el siguiente comando para ver cómo funciona.
$ netstat -pt
La salida debe contener conexiones TCP establecidas y los programas que son responsables de esas conexiones. También puede utilizar la forma abreviada –programa en lugar de -p , como se ilustra en el siguiente ejemplo.
$ netstat --program --tcp
13. Mostrar información de la red en modo continuo
La -c o –continuo Las opciones de netstat le permiten mostrar la información especificada de forma continua. Consulte los siguientes comandos para ver cómo funciona.
$ netstat -tc $ netstat --tcp --continuous
El intervalo de actualización predeterminado es de 1 segundo. Sin embargo, los usuarios pueden anularlo proporcionando un argumento adicional, como se muestra en los ejemplos a continuación.
$ netstat -tc 5 $ netstat --tcp --continuous 3
Al contrario de muchos comandos de terminal de Linux, el selector de intervalo no está precedido por un signo igual para la sintaxis abreviada.
14. Mostrar las tablas de enrutamiento
La utilidad de red se puede utilizar para mostrar las tablas de enrutamiento definidas por el kernel de Linux. El resultado es similar al proporcionado por el comando IP de Linux.
$ netstat -r
El resultado de este comando muestra información como la dirección de destino, la puerta de enlace, la máscara de subred y el nombre de la interfaz de red. Puede utilizar la sintaxis abreviada –route si desea documentar el uso de este comando en sus scripts de shell.
$ netstat --route
15. Estadísticas de la interfaz de visualización
Netstat se puede utilizar para imprimir las estadísticas de la interfaz de su sistema Linux. El siguiente comando imprime las interfaces de red disponibles y proporciona información sobre los paquetes transmitidos y recibidos, la tasa de errores y la MTU.
$ netstat -i $ netstat --interfaces
Puede usar cualquiera de las opciones para ver la información de la interfaz de red.
16. Mostrar estadísticas de la interfaz en tiempo real
Para ver las estadísticas de la interfaz en tiempo real, combine -c o –continuo opción con la opción de interfaz. Los siguientes ejemplos actualizarán las estadísticas de la interfaz de red cada 3 segundos.
$ netstat -ic 3 $ netstat --interfaces --continuous 3
Debería notar cambios en los campos transmitido (TX) y recibido (RX). Reemplace el intervalo de tiempo con un número que se adapte a sus necesidades. Tenga en cuenta que el intervalo es en segundos, no en minutos.
17. Mostrar tabla de kernel para interfaces
El siguiente comando netstat muestra la tabla de interfaz definida por el kernel de Linux. Este comando es similar a la salida proporcionada por el comando ifconfig de Linux.
$ netstat -ie
El -e o –extender La opción obliga a netstat a imprimir esta tabla de interfaz. El siguiente ejemplo ilustra el mismo comando utilizando la sintaxis abreviada.
$ netstat --interfaces --extend
18. Mostrar información de IP
Puede mostrar las pertenencias a grupos de IPv4/IPv6 muy fácilmente mediante la utilidad netstat. Consulte el siguiente ejemplo simple para ver cómo funciona.
$ netstat -g $ netstat --groups
Entonces, la -g o –grupos La opción de netstat puede ver las membresías de grupos de multidifusión.
19. Mostrar programas de escucha
Puede usar el programa netstat para ver qué programas escuchan activamente las solicitudes de red entrantes. Esto es muy útil ya que puede determinar qué programas son responsables de ciertas actividades de red a partir de esta salida.
$ netstat -ap | grep "http" $ netstat --all --program | grep "http"
Simplemente estamos imprimiendo todos los programas de escucha y luego filtrando los listados necesarios usando grep. Consulte nuestra guía anterior sobre los comandos grep de Linux para ver cómo GREP filtra los datos canalizados.
20. Mostrar estadísticas de red SIN PROCESAR
El siguiente ejemplo de netstat le muestra cómo usarlo para mostrar estadísticas de red sin procesar. Copie el comando y ejecútelo en su emulador de terminal para ver el resultado de su máquina personal.
$ netstat -sw $ netstat --statistics --raw
La salida debe contener datos estadísticos para conexiones de red sin procesar, incluidas IP, ICMP y udplite.
21. Mostrar información para rutas IPv4
Puede usar el sub-subcomando de ruta de netstat para ver las rutas IPv4 definidas por el kernel. Consulte el siguiente ejemplo para aprender cómo hacerlo.
$ netstat -r -4 $ netstat --route --inet
Entonces, –inet es la forma abreviada de esta opción. También puede combinar las opciones si está utilizando la forma abreviada.
$ netstat -r4
22. Mostrar información para rutas IPv6
Podemos imprimir la información de enrutamiento IPv6 de manera similar al comando anterior. Usa el -6 o –inet6 opción junto con la –ruta o -r bandera. El siguiente ejemplo ilustra esto para los lectores.
$ netstat -r -6 $ netstat --route --inet6
Tenga en cuenta que los campos de salida varían entre IPv4 e IPv6. Por lo tanto, asegúrese de leer las etiquetas de las columnas. El siguiente ejemplo combina las formas abreviadas de la familia de direcciones IPv6.
$ netstat -r6
23. Mostrar conexiones de enmascaramiento
Las conexiones enmascaradas permiten que uno o más sistemas, sin direcciones IP específicas, se conecten a Internet utilizando las direcciones asignadas por el servidor Linux. Puede ver una lista de conexiones de red enmascaradas y sus estadísticas usando el siguiente comando netstat en Linux.
$ netstat -M $ netstat --masquerade
Cuando ejecuta uno de los comandos anteriores, netstat recupera la información requerida al leer el /proc/net/ip_masquerade de su sistema de archivos Linux. archivo.
24. Temporizadores de la Red de Display
Puede determinar si hay temporizadores para sus conexiones de red mediante -o opción de netstat. Esto puede ser útil cuando intenta solucionar problemas de solicitudes de red salientes. Consulte los siguientes comandos para ver cómo funciona.
$ netstat -t -o | more $ netstat --tcp --timers | more
La salida debe contener si hay temporizadores presentes y, si los hay, su tipo. Dos barras separan los campos de tres temporizadores. El primer campo es el temporizador de cuenta regresiva y el segundo es para rastrear el número de reintentos. Finalmente, el último campo rastrea el número de sondeos de actividad que ha enviado la pila TCP.
25. Mostrar direcciones IP en lugar de FQDN
De forma predeterminada, netstat intenta resolver el DNS al imprimir las estadísticas de la red. Sin embargo, puede deshabilitarlo fácilmente e imprimir las direcciones IP asociadas en lugar del FQDN (Nombre de dominio completo) . Esto es útil para monitorear la red y solucionar problemas.
$ netstat --numeric-hosts --tcp --all
Los –numeric-hosts La opción indica a netstat que omita las resoluciones de DNS e imprima las direcciones IP numéricas en su lugar. Consulte nuestra guía sobre servidores DNS de Ubuntu para obtener más información sobre el sistema de nombres de dominio.
26. Mostrar números de puerto numérico
Puede omitir la información del puerto simbólico de sus salidas de netstat utilizando –numeric-ports opción. Esta opción obliga a netstat a imprimir los números de puerto numéricos en su lugar. Consulte el siguiente ejemplo para ver cómo funciona.
$ netstat --numeric-ports --tcp --all
Compare la salida con el ejemplo anterior para localizar las diferencias. Encontrará que esta salida contiene representaciones exactas de números de puertos. Este es el número que sigue a la parte del host de su salida, precedido por dos puntos.
27. Mostrar el ID de usuario para conexiones de red
El siguiente ejemplo muestra cómo mostrar la identificación de usuario para el usuario propietario de las conexiones de red. Esto se puede hacer usando dos opciones del comando netstat.
$ netstat --numeric-users --tcp -e
El -e opción imprime el nombre del usuario y –numeric-users lo convierte en números de identificación. Este es el UID (identificación de usuario) establecido para cada usuario por su sistema Linux.
28. Mostrar equivalentes numéricos para hosts, puertos y usuarios
Puede combinar los tres comandos netstat anteriores usando una sola opción. Esto obligará a netstat a imprimir todos los hosts, puertos e información de usuario utilizando su equivalente numérico. Consulte los siguientes ejemplos para ver a qué nos referimos.
$ netstat -nt $ netstat --numeric --tcp
Puede usar uno de –numeric o -n por hacer esto Si observa el resultado, debería ver las direcciones IP, el número de puerto y la información de UID en formato numérico.
29. Mostrar información adicional
El -e o –extender Las opciones de la utilidad netstat permiten a los usuarios mostrar información adicional para sus comandos. Estos pueden conducir al descubrimiento de errores ocultos. Consulte el siguiente ejemplo para ver cómo funciona.
$ netstat -tpe
Este comando combina -t, -p y -e opciones para imprimir las conexiones TCP establecidas, los programas que las poseen y alguna información adicional. Esta información adicional incluye la información del usuario y del inodo. Usa la -e opción dos veces para obtener más información.
$ netstat --tcp --program --extend --extend
30. Mostrar la memoria caché de enrutamiento del kernel
La memoria caché de enrutamiento contiene las entradas de enrutamiento que se usaron más recientemente. Dado que se trata de datos almacenados en caché, se puede acceder a la información muy rápidamente. Puede usar el siguiente comando para imprimir el caché de ruta usando netstat.
$ netstat -rC
De forma predeterminada, netstat recupera la información de la ruta del FTB. Sin embargo, dado que los sistemas suelen utilizar datos almacenados en caché antes de consultar la tabla de enrutamiento, puede resultar útil saber qué contenidos se almacenan allí. No hay formato largo para este parámetro.
31. Mostrar información para varios protocolos
Netstat permite a los usuarios imprimir información de red para un conjunto de protocolos utilizando -A o –protocolo opción. Los siguientes ejemplos ilustran el uso de estas opciones.
$ netstat -A inet,inet6 $ netstat --protocol=inet,inet6
Observe la diferencia entre el uso de –protocol y -A . Las familias de direcciones admitidas para estas opciones incluyen inet, inet6, unix, ddp, bluetooth, etc.
32. Mostrar información SCTP
SCTP o Stream Control Transmission Protocol es un método nuevo y confiable de transferencia de datos. Ofrece beneficios tanto del protocolo TCP como del protocolo UDP. Puede averiguar todas las conexiones SCTP que escuchan usando los siguientes comandos simples.
$ netstat -lS $ netstat --listen --sctp
Recuerda no usar -s para esta tarea En su lugar, mostrará las estadísticas de la red. Puede encontrar el uso detallado de SCTP utilizando cualquiera de los ejemplos de comandos de netstat que se enumeran a continuación.
$ netstat -sS $ netstat --statistics --sctp
33. Mostrar información de Bluetooth
El estándar de intercambio de datos inalámbrico Bluetooth utiliza varios protocolos de comunicación. El Protocolo de Adaptación y Control de Enlace Lógico (L2CAP) y Comunicación por radiofrecuencia (RFCOMM) son dos de sus principales protocolos utilizados a nivel de host. Puede mostrar información sobre L2CAP usando los siguientes comandos.
$ netstat -2 $ netstat --l2cap
Utilice los siguientes comandos para mostrar información sobre el protocolo RFCOMM.
$ netstat -f $ netstat --rfcomm
Tenga en cuenta que muchas implementaciones de netstat no ofrecen compatibilidad con Bluetooth lista para usar. Si recibe el mensaje “netstat:función `AF BLUETOOTH’ no compatible. “, entonces deberá volver a compilar la utilidad net-tools desde la fuente.
34. Mostrar valores simbólicos para hosts, puertos y usuarios
El -N o –simbólico Las opciones del comando netstat nos permiten imprimir toda la información sobre hosts, puertos y usuarios en forma simbólica. Consulte el siguiente ejemplo para saber cómo funciona.
$ netstat -atN $ netstat --all --tcp --symbolic
La salida de estos comandos contendrá una lista de todas las redes TCP y el host, el puerto y los usuarios se especificarán utilizando su equivalente simbólico. Puede ser útil para los administradores que desean resultados detallados en lugar de numéricos.
35. Deshabilitar el truncamiento de direcciones IP
Puedes usar la -w o –ancho opciones de la utilidad netstat para deshabilitar el truncamiento de direcciones IP. Esto no es muy útil por sí solo, pero ofrece medios de compatibilidad con versiones anteriores.
$ netstat -atw $ netstat --all --tcp --wide
Si está escribiendo scripts de shell de Linux, use esta opción para asegurarse de que no trunca las direcciones IP en máquinas más antiguas.
36. Mostrar qué servicios están escuchando en un puerto en particular
Si es un hacker de sombrero blanco o un profesional de la seguridad de la información, es posible que desee ver cuáles están escuchando en un puerto específico. Esto se puede hacer muy fácilmente combinando netstat con el comando grep en Linux. Consulte el siguiente ejemplo de netstat para saber cómo se puede hacer.
$ netstat -ltnp | grep ':22'
Este comando imprimirá todos los programas que están escuchando en el puerto TCP 22. Este es el número de puerto para las conexiones ssh. Reemplace este número con el número de puerto de su interés en la porción grep.
37. Mostrar familias de direcciones no admitidas
Como ya se discutió, netstat puede funcionar con una amplia gama de familias de direcciones. Sin embargo, no todos son compatibles con todas las implementaciones de netstat. Por ejemplo, muchas versiones de netstat no admiten la familia de direcciones Bluetooth desde el primer momento. Puede verificar fácilmente las familias de direcciones que no son compatibles con su utilidad netstat.
$ netstat --verbose | grep "no support for"
Este comando imprimirá todas las familias de direcciones no admitidas para su máquina. Si desea utilizar alguno de ellos, deberá obtener el código fuente de net-tools y compilarlo con el soporte de configuración completo.
38. Mostrar información de la versión
Puede imprimir la información de la versión de su programa netstat usando -V o –versión opción. Esto imprimirá información adicional junto con los datos de la versión.
$ netstat -V $ netstat --version
Cuando ejecute uno de los comandos anteriores, verá una lista de familias de direcciones admitidas y no admitidas. Tenga en cuenta que los datos de la versión que muestra este comando representan la versión de net-tools instalada en su máquina.
39. Mostrar la página de ayuda
La página de ayuda de netstat contiene información resumida de todas las opciones disponibles y su uso. Ofrece una manera conveniente de buscar las opciones. Puede imprimir esta página usando uno de los siguientes comandos netstat.
$ netstat -h $ netstat --help
Si es administrador de una red, esta sección le resultará muy útil.
40. Mostrar la página del manual
La página del manual de los comandos de terminal de Linux contiene información detallada sobre el uso del comando y las opciones disponibles. Debe consultar esta página cada vez que desee obtener más información sobre un programa específico. La página de manual de netstat se puede invocar usando el siguiente comando.
$ man netstat
Consulte esta página si desea obtener información detallada sobre netstat y su formato de salida.
Pensamientos finales
El comando netstat es uno de los comandos de terminal más utilizados por los administradores de sistemas. Sin embargo, se ha vuelto obsoleto hoy en día y han surgido programas más avanzados para tomar el relevo. El reemplazo de netstat, en general, es el programa ss. La utilidad IP sirve como reemplazo de netstat -r, netstat -i, y netstat -g. Sin embargo, netstat sigue siendo bastante relevante debido a su amplio uso y disponibilidad en la mayoría de las distribuciones de Linux. Recomendamos encarecidamente a nuestros lectores que utilicen las alternativas más nuevas. Esta cobertura de los comandos esenciales de netstat puede servir como punto de referencia para los usuarios que necesitan usar netstat.