Cómo usar netstat en GNU / Linux

Pruebe Nuestro Instrumento Para Eliminar Los Problemas

Netstat es una utilidad muy poderosa que enumerará todas las conexiones TCP y UDP, así como las conexiones de socket Unix que están escuchando conexiones y las conectadas actualmente. Si bien es posible que muchos usuarios domésticos no tengan que preocuparse por esto, los jugadores en línea, o cualquiera que tenga la intención de alojar cualquier tipo de servidor en el futuro, seguramente en algún momento necesitarán lidiar con los puertos.

Netstat también es útil para la seguridad y la privacidad, por ejemplo, para averiguar qué programas 'hablan' con Internet.

El uso de netstat puede ser un proceso extremadamente simple, o puede volverse muy complicado y pesado, dependiendo del uso; así que hoy veremos algunos de los usos más comunes de Netstat.

Como prometí (en mi artículo ' ¿Cómo encuentro la información de mi red en Linux? ? ') Voy a presentarles el comando netstat. Este comando es una herramienta muy útil para descubrir información de red, como tablas de enrutamiento, conexiones de red, estadísticas de interfaz, conexiones enmascaradas y membresías de multidifusión. Pero no es tan simple de usar como algunas de las otras herramientas de 'descubrimiento' (como ifconfig). Con netstat realmente necesita saber lo que está buscando y cómo encontrarlo. Este artículo te ayudará a entender eso.

¿Instalación?

Afortunadamente, su distribución debería venir con netstat comando preinstalado. Para verificar esto, abra una ventana de terminal (ahí es donde usará netstat de todos modos) y emita el comando que netstat . Este comando debería devolver algo como / bin / netstat . Eso le dirá que la herramienta está instalada y dónde está el ejecutable.

Conceptos básicos de Netstat

El comando netstat básico se ve así:

OPCIONES DE ARGUMENTO DE netstat

Donde ARGUMENTO es el tipo de familia de direcciones sobre la que desea obtener información y OPCIONES son las opciones opcionales que especificarán el tipo de información que obtendrá.

Debido a que netstat ofrece tal variedad de opciones, sería mejor si primero enumero algunas de las opciones más útiles.

  • a : Muestra el estado de todos los sockets y las entradas de la tabla de enrutamiento.
  • c : Muestra información de forma continua.
  • re : Muestra el estado de todas las interfaces que utilizan DHCP.
  • es : Muestra información ampliada.
  • gramo : Muestra la información de pertenencia al grupo de multidifusión para IPv4 e IPv6.
  • yo : Muestra una tabla de todas las infracciones de la red.
  • l : Limita las estadísticas a una interfaz definida.
  • METRO : Muestra tablas de enrutamiento de multidifusión.
  • norte : Muestra las direcciones de red como números en lugar de los símbolos predeterminados.
  • pags : Muestra tablas de resolución de direcciones.
  • PAGS : Limita las estadísticas a un protocolo definido.
  • r : Muestra todas las tablas de enrutamiento.
  • t : Muestra las conexiones TCP.
  • tu : Muestra las conexiones UDP.
  • v : Use el modo detallado para la salida.

Así que echemos un vistazo y veamos cómo se pueden usar juntos.

netstat

Por sí mismo (sin opciones), este comando imprime estadísticas genéricas del host al que está conectado actualmente.

netstat -an

Este comando mostrará todas las conexiones al host, incluidas las direcciones y puertos de origen y destino, y las mostrará como números.

netstat -rn

Este comando mostrará la tabla de enrutamiento para el host en forma numérica.

netstat -r

Este comando mostrará su tabla de enrutamiento para su host.

netstat -natp

Este comando mostrará las conexiones TCP activas en forma numérica.

netstat -t --escuchar

Esto le mostrará todos los puertos tcp en los que está escuchando el host.

netstat - estadísticas

Este comando mostrará varias estadísticas para las interfaces de su host. Tenga en cuenta que este comando mostrará MUCHAS estadísticas.

Como puede ver, este comando mostrará bastante información. Además de eso, es posible que deba canalizar este comando a través del comando less para verlo más fácilmente. Ese comando completo se vería como netstat --statistics | Menos. Usarlo de esa manera le permitiría usar las teclas de flecha para desplazarse hacia arriba y hacia abajo a través de la salida.

Consejos de uso de Netstat

Una de las formas más básicas y comunes de usar netstat es verificar qué puertos están escuchando

  • netstat -l

Lo que da algo como esto en mi sistema Antergos recién instalado

netstat -l

O, si está buscando enfocar su búsqueda un poco más, puede agregar otra opción para ordenar específicamente para diferentes tipos de conexiones

  • netstat -lt # para TCP
  • netstat -lu # para UDP
  • netstat -lx # para Unix

O puede ir al extremo opuesto del espectro y enumerar todas las conexiones

  • netstat -a

Si lo prefiere, otra opción que puede ser útil tener en cuenta es utilizar la opción 'n'. Al usar netstat -n o netstat -ltn, por ejemplo, todos los nombres de host ya no intentarán resolverse y solo se mostrarán las direcciones IP, como en el ejemplo siguiente.

netstat-ltn

Como puede ver, localhost en el nombre, se resolvió a su valor numérico después de usar la opción 'n'

Otra forma de utilizar netstat es netstat -ie, la 'i' para interfaces y la 'e' para 'extendido', lo que nos ayudará a obtener una salida más legible por humanos.

netstat -ie # Esto nos mostrará una lista de interfaces de red e información sobre cada dispositivo.

netstat ie

Consejos avanzados de Netstat

Lo que queremos hacer es decirle a netstat que nos dé salida para aplicaciones específicas que estén escuchando conexiones tcp. Para hacer esto emitimos el comando:

  • netstat --tcp --escucha --programas

La salida de este comando se vería así:

Proto Recv-Q Send-Q Dirección local Dirección extranjera Stat PID / Program
tcp 0 0 *: ssh *: * ESCUCHA 25469 / sshd
tcp 0 0 *: httpd *: * ESCUCHA 26754 / httpd
tcp 0 0 localhost: ipp *: * ESCUCHAR -

Ahora puedes ver información útil. En la salida anterior, puede ver que tanto sshd como httpd están escuchando conexiones entrantes. Lo anterior es solo un fragmento de cómo puede verse el resultado. Lo que es muy útil de este comando es que le mostrará si hay un comando o una dirección local escuchando conexiones entrantes que no deberían estar escuchando. Si encuentra una aplicación que no debería estar escuchando, elimínela para estar seguro.

Ruta

Netstat puede imprimir rápidamente la tabla de enrutamiento del kernel de sus máquinas con el comando:

netstat -r

La salida de este comando se verá así:

Tabla de enrutamiento de IP del kernel
Gateway de destino Genmask Flags MSS Window irtt Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
predeterminado 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

Estadísticas

Esta es una de las herramientas de netstat más prácticas. Con esto puede conocer exactamente la estática de cada protocolo. La estructura de mando básica es:

netstat - estadísticas

lo que le dará mucha más información de la que desea. Digamos que solo desea ver estadísticas sobre el protocolo TCP. Para ello puede emitir el comando:

netstat -t - estadísticas

La salida del comando anterior incluirá información como:

Tcp:
4343 aperturas de conexiones activas
8 aberturas de conexión pasiva
5 intentos de conexión fallidos
178 restablecimientos de conexión recibidos
6 conexiones establecidas
59075 segmentos recibidos
60033 segmentos enviados
76 segmentos retransmitidos
0 segmentos incorrectos recibidos.
303 reinicios enviados

O también puede obtener información sobre UDP con el comando:

netstat -u: estadísticas

Lo que le daría un resultado similar para el protocolo UDP.

Se creativo

¿Qué pasaría si quisiera ver todas las direcciones IP únicas conectadas a un servidor? Puede hacer eso con netstat (y la ayuda de algunas otras herramientas) así:

netstat -nat | awk '{imprimir $ 5}' | cut -d: -f1 | sed -e '/ ^ $ / d | uniq

El resultado del comando anterior dependerá de la cantidad de tráfico que reciba su máquina / servidor. Pero incluirá todas las direcciones IP únicas que intentan conectarse a su servidor.

¿Qué hay de comprobar para ver si su servidor está bajo un ataque de DOS? Puedes hacer eso con netstat así:
netstat -anp | grep 'tcp | udp' | awk '{imprimir $ 5}' | cut -d: -f1 | ordenar | uniq -c | sort -n

El comando anterior enumerará las direcciones IP que solicitan la mayor cantidad de conexiones a su servidor. Si ve un número mucho más alto de lo que debería ser, lo más probable es que esté bajo un ataque de denegación de servicio.

Pensamientos finales

Netstat es una de esas herramientas que nunca pensará realmente que necesitará, hasta que de repente lo hace; y siempre es bueno saber cómo usarlo en caso de que surja la necesidad al menos en algún nivel básico. Para obtener más información sobre cómo utilizar el comando netstat y sus opciones, consulte las páginas de manual escribiendo hombre netstat .

Ahora tu: ¿Cuál es su utilidad preferida para verificar la información de la red y por qué? ¡Háznoslo saber en los comentarios!

Artículos relacionados