# Netstat

netstat (network statistics) es una herramienta de línea de comandos que muestra un listado de las conexiones activas de una computadora, tanto entrantes como salientes. Existen versiones de este comando en varios sistemas como Unix, GNU/Linux, Mac OS X, Windows y BeOS.
La información que resulta del uso del comando incluye el protocolo en uso, las tablas de ruteo, las estadísticas de las interfaces y el estado de la conexión. Existen, además de la versión para línea de comandos, herramientas con interfaz gráfica (GUI) en casi todos los sistemas operativos desarrollados por terceros.

## Uso
### En Windows y MS-DOS

    NETSTAT [-a] [-e] [-n] [-s] [-p protocolo] [-r] [intervalo]
* -a visualiza todas las conexiones y puertos TCP y UDP, incluyendo las que están "en escucha" (listening).
* -b en los sistemas recientes, visualiza el binario (ejecutable) del programa que ha creado la conexión.
* -e estadísticas Ethernet de las visualizaciones, como el número de paquetes enviados y recibidos. Se puede combinar con la opción -s.
* -n se muestran los puertos con su identificación en forma numérica y no de texto.
* -o en sistemas Windows XP y 2003 Server, muestra los identificadores de proceso (PID) para cada conexión. Se puede verificar los identificadores de proceso en el Administrador de Tareas de Windows (al agregarlo a las columnas de la pestaña procesos)
* -p muestra las conexiones para el protocolo especificado; el protocolo puede ser TCP o UDP. Si se utiliza con la opción de -s para visualizar la estadística por protocolo; el protocolo (Proto) puede ser TCP, UDP o IP.
* -r visualiza la tabla de enrutamiento o encaminamiento. Equivale al comando route print.
* -s estadística por protocolo de las visualizaciones. Por el valor por defecto, la estadística se muestra para TCP, UDP e IP; la opción -p se puede utilizar para especificar un subconjunto del valor por defecto.
* -v en sistemas Windows XP y 2003 Server, y usado en conjunto con -b, muestra la secuencia de componentes usados en la creación de la conexión por cada uno de los ejecutables.
* Intervalo: vuelve a mostrar la información cada intervalo (en segundos). Si se presiona CTRL+C se detiene la visualización. si se omite este parámetro, netstat muestra la información solo una vez.
Utilizar netstat -n (segs) donde segs es el número en segundos que esperará antes de mostrar nuevamente la información
* /? Help: aparecerán los caracteres y su función.

## En sistemas basados en Unix

    netstat [-veenNcCF] [<Af>] -r
    netstat {-V|--version|-h|--help}
    netstat [-vnNcaeol] [<Socket> ...]
    netstat { [-veenNac] -i | [-cnNe] -M | -s }
* -r, --route Muestra la tabla de enrutamiento.
* -i, --interfaces Muestra la tabla de interfaces
* -g, --groups Muestra los miembros del grupo de multidifusión
* -s, --statistics Muestra estadísticas de red (como SNMP)
* -M, --masquerade Muestra conexiones enmascaradas
* -v, --verbose Muestra más información en la salida
* -n, --numeric No resuelve nombres en general
* --numeric-hosts No resuelve el nombre de los hosts
* --numeric-ports No resuelve el nombre de los puertos
* --numeric-users No resuelve los nombres de usuarios
* -N, --symbolic Muestra los nombres del hardware de red
* -e, --extend Muestra otra/más información.
* -p, --programs Muestra PID o nombre del programa por cada socket
* -c, --continuous Muestra continuamente las estadísticas de red (hasta que se interrumpa el programa)
* -l, --listening Muestra los server sockets que están es modo escucha
* -a, --all, --listening Muestra todos los sockets (por defecto únicamente los que están en modo conectado)
* -o, --timers Muestra los timers
* -F, --fib Muestra el Forwarding Information Base (por defecto)
* -C, --cache Mostrar el cache de enrutamiento en vez del FIB
    <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom
    <AF>=Uso '-6|-4' or '-A <af>' o '--<af>'; defecto: inet
Lista de las posibles familias de direcciones (que soportan enrutamiento):
    inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) x25 (CCITT X.25)
Ejemplo de salida del comando netstat en GNU/Linux:

## Estado de las conexiones

El indicador en la columna estado muestra el estado de la conexión para el protocolo TCP; para protocolos no orientados a la conexión, como UDP, este campo figurará en blanco. Los estados posibles son los siguientes:
* ESTABLISHED El socket tiene una conexión establecida.
* SYN_SENT El socket está intentando iniciar una conexión
* SYN_RECV Una petición de conexión fue recibida por la red
* FIN_WAIT1 El socket está cerrado, y la conexión está finalizándose
* FIN_WAIT2 La conexión está cerrada, y el socket está esperando que finalice la conexión remota
* TIME_WAIT El socket está esperando después de cerrarse que concluyan los paquetes que siguen en la red
* CLOSED El socket no está siendo usado
* CLOSE_WAIT La conexión remota ha finalizado, y se espera que se cierre el socket
* LAST_ACK La conexión remota ha finalizado, y se espera que se cierre el socket. Esperando el acknowledgement.
* LISTEN El socket está esperando posibles conexiones entrantes
* CLOSING Ambos sockets han finalizado pero aún no fueron enviados todos los datos
* UNKNOWN El estado del socket no se conoce
* DELETE_TCB Se está eliminando el búfer del control de transmisión (TCB) para la conexión TCP.

## Comentarios

* Los parámetros usados con este comando deben tener el prefijo (-) en lugar de un (/).
* netstat provee estadísticas para lo siguiente:
* Proto
El nombre del protocolo (TCP o UDP)
* Local Address
La dirección IP de la computadora local y el número de puerto que está siendo usado. El nombre de la computadora local que corresponde a la dirección IP y el nombre del puerto es desplegado a menos que el parámetro -n esté especificado. Si el puerto no está todavía establecido, el número de puerto es mostrado como un asterisco (*).
* Dirección Foránea
La dirección IP y el número de puerto de la computadora remota a la que el socket está conectado. El nombre que corresponde a la dirección IP y el nombre puerto son mostrados a menos que el parámetro -n sea especificado. Si el puerto no está todavía establecido, el número de puerto es mostrado como un asterisco (*).
* {State}
Indica el estado de la conexión TCP, los posibles estados son los siguientes: CLOSE_WAIT, CLOSED, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, LAST_ACK, LISTEN, SYN_RECEIVED, SYN_SEND, TIMED_WAIT. Para más información acerca de los estados de la conexión TCP, revise RFC 793.
* Este comando está disponible solo si el Protocolo de internet (TCP/IP) está instalado como un componente in las propiedades del adaptador de red en Conexiones de Red.

## Ejemplos

Para desplegar las estadísticas de ethernet y las estadísticas para todos los protocolos, escriba el siguiente comando:
netstat -e -s
Para desplegar las estadísticas solamente para los protocolos TCP y UDP, escriba el siguiente comando:
netstat -s -p tcp udp
Para desplegar las conexiones TCP activas y los IDs de proceso cada 5 segundos, escriba el siguiente comando:
netstat -o 5
Para desplegar las conexiones TCP activas y los IDs de proceso usando la forma numérica, escriba el siguiente comando:
netstat -n -o

## Leyenda de formato

| Formato | Significado |
| Negrita | Elementos que el usuario debe digitar exactamente como se muestran |
| Entre corchetes [ --] | Items opcionales |