Netstat

Internet une las redes de ordenadores más diversas de todo el mundo y ofrece excelentes posibilidades para intercambiar datos e información. Tan rápido como llega un archivo de A a B se pierde también la visión general sobre las conexiones existentes. Como consecuencia, las actividades de red no deseadas o que requieran muchos recursos serán encontradas muy tarde o nunca. Para saber con qué ordenadores o redes está asociado un PC, netstat proporciona estadísticas sobre todas las conexiones activas. La presente guía revela lo que se esconde detrás de la herramienta de red y cómo se puede usar correctamente.

¿Qué es netstat?

netstat, palabra derivada de los términos “network” (red) y “statistics” (estadísticas), es un programa controlado a través de las órdenes ejecutadas en la línea de comandos. Este entrega estadísticas básicas sobre la totalidad de las actividades de red e información acerca de los puertos y direcciones a través de los cuales se ejecutan las conexiones correspondientes (TCP, UDP) y de los puertos abiertos a las posibles solicitudes. netstat se implementó por primera vez en 1983 en BSD (Berkeley Software Distribution), uno de los derivados del sistema UNIX, cuya versión 4.2 fue la primera en soportar la familia de protocolos de Internet TCO/IP. 

Desde la versión 3.11, netstat se integró en Linux de igual manera que lo hizo en Windows, logrando establecer la comunicación a través de TCP/IP gracias a una extensión. Las diversas implementaciones son muy similares en cuanto a funcionalidad, aunque los parámetros de comandos de netstat y la entrega de un sistema a otro presentan ligeras diferencias.

Fundamentalmente, netstat es un programa basado en líneas de comandos y, por lo tanto, no tiene una interfaz de usuario gráfica. Programas como TCPView, desarrollado por Sysinternals para el sistema operativo de Windows, hacen posible representar estadísticas gráficamente.

¿Por qué es importante la utilización de netstat?

La herramienta supone una gran ventaja para combatir el tráfico desproporcionado y el software dañino, pues informa sobre las conexiones entrantes y salientes de tu ordenador o servidor. Estas se establecen a través de la correspondiente dirección de red, indicando, entre otras cosas, qué puerto se abrió con antelación para el intercambio de datos. Cuando un puerto se abre, este recibe el estado de “LISTEN” (en español “escucha”) y espera a que se detecte una conexión. El problema principal de estos puertos abiertos es el hecho de que, de esta manera, se le da la oportunidad a terceros de introducir malware en tu sistema. Otra de las posibilidades es que un troyano que ya reside en tu sistema instale un backdoor (puerta trasera) y abra el puerto correspondiente. Por ello, es recomendable comprobar regularmente los puertos abiertos del sistema, aspecto en el que entra en juego netstat. Gracias a que la herramienta de diagnóstico se encuentra casi en cada sistema (UNIX, Linux, Windows o Mac) representa una solución única para todos tus ordenadores y servidores.

Los puertos abiertos o las direcciones IP desconocidas constituyen un factor potencial de infección. Para obtener resultados significativos, es imprescindible cerrar el resto de programas, como por ejemplo el navegador, ya que estos suelen estar vinculados a los ordenadores con los que se asocian las direcciones IP desconocidas. Gracias a las estadísticas pormenorizadas, puedes obtener información sobre los paquetes transferidos desde la última vez que el sistema se puso en funcionamiento y también sobre los errores que se hayan producido. Además, la tabla de enrutamiento, que ofrece datos sobre el camino que sigue el paquete de datos por la red, puede mostrarse por medio de los comandos de netstat específicos del sistema.

Los comandos de netstat en Linux más importantes

La sintaxis de netstat en Linux sigue el patrón:

netstat [OPCIÓN]

Las opciones se componen de diversos modos, como, por ejemplo, el análisis de puertos estándar o la visualización de la tabla de enrutamiento, así como las diversas opciones de protocolos que sirven de base para la disposición o especificación de los resultados. Todas las opciones tienen –típico de UNIX y Linux- tanto un nombre largo precedido por dos guiones, como una forma corta precedida por un guión. Los modos comienzan con los siguientes comandos:

[OPCIÓN]AbreviaturaComandoDescripción del modo
sudo netstatModo estándar que informa sobre todas las conexiones de red activas
--route-rsudo netstat -rEste comando de netstat muestra la tabla de enrutamiento
--interface-isudo netstat -iEstadísticas sobre los paquetes de datos transferidos a cada una de las interfaces de red
--statistics-ssudo netstat -sEstadísticas pormenorizadas
--groups-gsudo netstat -gInforma sobre la multidifusión (tráfico de red que se enviará a un grupo de puntos finales)

Mientras que en un comando los modos no se pueden combinar entre sí, esto sí es posible en el caso de las opciones de protocolos, que son relevantes, especialmente, para el modo estándar. Una combinación popular, por ejemplo, es la de utilizar netstat para listar todos los puertos del sistema que están disponibles para otros ordenadores:

sudo netstat -tulpen

En la tabla siguiente aparece cada uno de los parámetros que componen este comando de netstat y las posibles opciones de protocolos:

[OPCIÓN]AbreviaturaComandoDescripción de la opción de protocolo
--listening-lsudo netstat -lSolo se mostrarán puertos abiertos (modo “LISTEN” o “escucha”)
--all-asudo netstat -aVisualiza todas las conexiones y puertos abiertos
--tcp-tsudo netstat -tMuestra todas las conexiones TCP
--udp-usudo netstat -uMuestra todas las conexiones UDP
--numeric-nsudo nestat -nMuestra información numérica (direcciones IP, protocolos, identificadores) inalterada
--extend-esudo netstat -eMuestra información ampliada
--program-psudo netstat -pInforma sobre identificadores de proceso (PID) y sobre nombres de programa

Para obtener más información y mayores posibilidades, visita netstat.net o la Guía de Administración de Redes con Linux.

Comandos netstat para Windows

En los sistemas operativos de Windows también se pueden utilizar los servicios de netstat en la línea de comandos (cmd.exe). Esta se encuentra en el menú de inicio en “Todos los programas” ->  “Accesorios”-> “Indicador de comandos”. De manera alternativa, se puede introducir directamente “Indicador de comandos” en el campo de búsqueda del menú de inicio  o abrir la línea de comandos haciendo clic en “Ejecutar” (tecla de Windows + R + “cmd”). La sintaxis de estos comandos sigue el mismo patrón que en Linux:

netstat [OPCIÓN]

La mayoría de parámetros se diferencian entre sí y solo están disponibles en su versión reducida, no en la extendida. Los comandos netstat para Windows más importantes son:  

[OPCIÓN]ComandoDescripción de la opción
-inetstat -iAbre el menú de visualización de netstat
netstat Muestra una lista estandarizada de todas las conexiones activas
-anetstat -aMuestra una lista de los puertos abiertos (“LISTEN”)
-enetstat -eEstadística de la interfaz (datos recibidos y enviados, etc.)
-nnetstat -nLas direcciones y los números de los puertos se muestran de manera numérica
-onetstat -oIntroduce el identificador de proceso para cada conexión
-rnetstat -rMuestra la tabla de enrutamiento
-p protocolonetstat -p TCP Muestra las conexiones para el protocolo indicado, en este caso TCP (también pueden ser posibles: UDP, TCPv6 o UDPv6)

La combinación de cada una de las opciones funciona, al igual que en Linux, a través de la alineación de los parámetros siempre que la conexión pueda establecerse. Uno de los comandos más populares que ayuda a mostrar tanto puertos abiertos como conexiones activas de manera numérica e incluso identificadores de proceso es, por ejemplo:

netstat –ano