GNU/Linux >> Tutoriales Linux >  >> Linux

Resolución de problemas de red desde la línea de comandos con TShark

Una forma de optimizar la captura de paquetes es usar una herramienta de interfaz de línea de comandos, y de todas las herramientas que puede encontrar, TShark es una que debe probar. TShark es el equivalente de Wireshark GUI, que proporciona información valiosa sobre el tráfico capturado en su red.

Una cosa que hace que esto sea excelente es que, en lugar de hacer clic en varios botones y buscar en varios menús, puede escribir solo un comando para obtener la información que necesita.

¡Siga leyendo y nunca más pierda horas analizando sus capturas de paquetes!

Requisitos

Este tutorial será una demostración práctica. Si desea seguirnos, asegúrese de tener lo siguiente.

  • Una máquina con Linux:este tutorial usa Ubuntu 20.04 LTS, pero cualquier distribución de Linux funcionará.
  • Un usuario no root con privilegios sudo.
  • Wireshark instalado en su máquina.

Instalación de TShark en Ubuntu

TShark no viene instalado en su distribución de Linux de forma predeterminada, así que antes de que pueda aprovechar esto, inicie este tutorial instalando TShark en su máquina.

Usando su administrador de paquetes, puede instalar en la mayoría de las distribuciones de Linux y sistemas operativos BSD. Pero para esta demostración, instalará usando el administrador de paquetes APT.

1. Ejecute el apt update Comando a continuación para asegurarse de que su administrador de paquetes esté actualizado. Este comando actualiza la lista de paquetes de su sistema y sus versiones actuales.

sudo apt update -y

2. A continuación, ejecute el apt install Comando a continuación para instalar la herramienta de línea de comandos TShark en su máquina.

sudo apt install tshark -y

3. Ejecute el siguiente tshark --version para asegurarse de que la herramienta esté disponible en su sistema.

tshark --version

Obtendrá una salida como la siguiente. Al escribir estas líneas, la versión actual es 3.4.8, pero su versión puede ser diferente.

4. Finalmente, ejecuta el tshark --help comando a continuación para ver todos los comandos disponibles. Comandos

tshark --help

Puede usar muchos de sus comandos, como se muestra a continuación, para obtener información sobre los datos capturados en su red. Esta salida solo muestra una pequeña cantidad de los comandos disponibles. Aprenderá el uso básico de algunos de estos comandos en las siguientes secciones.

Capturar todos los paquetes desde una interfaz de red

Ahora que lo tiene instalado, puede capturar paquetes y analizar los datos de red capturados. Puede capturar datos de red usando una interfaz específica, pero antes de capturar datos, deberá comenzar y especificar la interfaz de red donde capturará datos.

1. Ejecute el tshark comando para listar todas las interfaces de red disponibles (-D ) que T-shark puede encontrar, incluso los antiguos e inactivos.

sudo tshark -D 

Verá una lista de las interfaces disponibles en su sistema, como se muestra a continuación. Si tiene varias tarjetas de red instaladas en su sistema, siempre ejecute el comando tshark -D antes de iniciar y especificar una interfaz.

2. A continuación, ejecute el ip link comando a continuación (en sistemas Linux y BSD) para enumerar todas las interfaces de red activas. Debe seleccionar una interfaz de red activa para usar.

Aunque TShark enumera todas las interfaces de red en su sistema, es posible que no todas estén activas en ese momento.

sudo ip link show 

En la mayoría de los casos, utilizará una interfaz de red, como una tarjeta Ethernet. En este ejemplo, anote eth0, como se muestra a continuación, para capturar paquetes.

3. Por último, ejecute el siguiente tshark comando para seleccionar una interfaz (-i ) y capturar paquetes en vivo. Reemplazar interface con la interfaz que anotó en el paso dos.

sudo tshark -i interface

Una vez que comience a capturar datos, verá los paquetes que se muestran en tiempo real, como se muestra a continuación. Y en cualquier momento, puede presionar Ctrl+C para dejar de capturar paquetes.

Al igual que otras herramientas populares de análisis de paquetes de redes de datos, como tcpdump y Wireshark, Tshark usa el biblioteca pcap (libpcap) para capturar paquetes. En este caso, la biblioteca pcap se usa para capturar paquetes desde la interfaz eth0.

Como puede ver a continuación, imprime la forma decodificada de los paquetes capturados, cada línea en un formato legible por humanos a la salida estándar (stdout) en su terminal.

Capturar un número específico de paquetes

Suponga que está interesado en analizar un número específico de paquetes. Si es así, en lugar de capturar todos los paquetes, especifique la cantidad de paquetes para capturar y analícelos directamente.

Para capturar una cantidad específica de paquetes, agregará el -c opción (recuento de paquetes de captura) en el tshark comando.

Ejecute el siguiente comando para capturar los primeros 10 paquetes (-c 10 ) para verificar si los paquetes se enrutan a tshark correctamente. Reemplazar 10 con su número preferido de paquetes para capturar.

sudo tshark -i eth0 -c 10

Si prefiere capturar paquetes y suprimir la visualización de los paquetes, agregue el -q opción en su lugar. El -q La opción es útil si solo desea ver el número total de paquetes capturados y no desea desplazarse continuamente por las salidas de su terminal.

Ejecute el siguiente comando para capturar paquetes mientras suprime (-q ) las salidas.

sudo tshark -i eth0 -q

Tan pronto como presiona Ctrl+C, TShark imprime el número total de paquetes capturados en la terminal. A continuación, puedes ver un total de 84 paquetes capturados.

Captura de paquetes específicos por cadena de filtro

Quizás la cantidad de paquetes capturados es demasiado grande y es casi imposible buscar una cadena específica usando solo los ojos. En este caso, deberá usar un filtro para capturar paquetes por la cadena de su elección.

Utilizará las expresiones de filtro de captura de TShark para seleccionar paquetes en función de los protocolos, pares de host/puerto de origen/destino, etc. Por ejemplo, su conexión SSH no funciona y desea capturar paquetes relacionados solo con la conexión SSH.

Ejecute el siguiente comando para capturar y filtrar paquetes (-f ) con el tcp port 22 cadena.

sudo tshark -i eth0 -f "tcp port 22" -c 10

Si el filtro de cadena no es suficiente, también puede usar el filtro de visualización después de ejecutar un filtro de captura para reducir su búsqueda y analizar paquetes específicos. El filtro de visualización aprovecha los operadores de comparación (!==,===,==, etc.) para probar cadenas, patrones o secuencias de bytes.

También puede usar operadores booleanos (y, o no) y agrupar entre paréntesis para especificar expresiones más complejas.

Por ejemplo, después de encontrar las direcciones IP que usa para conectarse a SSH, ahora desea profundizar más en los paquetes. En este caso, usará el == (Igual (cualquiera si hay más de uno)) operador, como se muestra a continuación.

Ejecute el tshark Comando a continuación para capturar y mostrar el primer 10 paquetes filtrados (-Y ) relacionado con el 69.28.83.134 dirección IP.

sudo tshark -i eth0 -Y 'ip.addr == 69.28.83.134' -c 10

Puede ver que el resultado a continuación solo muestra los paquetes relacionados con 69.28.83.134 dirección IP.

Guardar paquetes capturados en un archivo

Ver los paquetes capturados en tiempo real le permite actuar de inmediato para solucionar problemas. Pero tal vez no tenga tiempo para solucionar problemas en este momento. Entonces, ¿por qué no guardar los paquetes capturados en un archivo? Por ejemplo, su conexión SSH ha estado funcionando bien y, de repente, la conexión no está disponible.

Desplazarse por los paquetes en la terminal no siempre brindará información para comprender qué está causando el problema. En este caso, puede usar TShark para guardar los paquetes capturados y compartirlos con sus amigos o colegas que crea que pueden ayudar.

Ejecute el siguiente comando para almacenar paquetes capturados en un archivo .pcap expediente. El comando realiza lo siguiente:

  • Establece la opción de búfer circular de captura (-b ), que abre el modo de archivos múltiples. En este modo, TShark escribe paquetes capturados en archivos numerados. Una vez que el primer tamaño de archivo está lleno, TShark pasa al siguiente archivo y así sucesivamente.
  • Instruye a TShark para crear 10 archivos (-a files:10 ) que contiene los paquetes capturados en el modo de operación de búfer de anillo, cada archivo contiene 1024 KB (1 MB). Si no agrega el files opción, el modo de operación de búfer de anillo se ejecutará indefinidamente hasta que se llene el espacio en disco o se produzca una condición de parada.

No hay límite en la cantidad de archivos que puede usar con esta opción. Pero tenga en cuenta que el tamaño total de todos los archivos en el modo de funcionamiento del búfer circular no puede superar los 2 GB. Una vez que se alcanza este límite, TShark hace una pausa y espera hasta que libere espacio en el disco eliminando algunos archivos antes de continuar.

  • Escribe los paquetes en un archivo (-w ), en este caso, ata.pcap , mientras ejecuta su captura en una interfaz específica (eth0 ).
sudo tshark -i eth0 -f "tcp port 22" -b filesize:1024 -a files:10 -w ata.pcap

TShark no le muestra el progreso de escritura y el recuento continuo de paquetes capturados al escribir en un archivo. Solo verá la cantidad de paquetes capturados, como se muestra a continuación.

Ahora, presione CTRL+C para detener el proceso de escritura en algún momento. Tendrá un archivo nuevo, como se muestra a continuación, que contiene paquetes capturados durante la sesión.

¡Ahora puede compartir este archivo con su amigo y continuar depurando el problema juntos!

Conclusión

En este tutorial, aprendió a instalar TShark en una máquina con Ubuntu. También aprendió a agregar filtros para buscar paquetes capturados específicos y escribir paquetes capturados en un archivo.

En este punto, ya comprende TShark y sus opciones básicas de línea de comandos para administrar paquetes. ¡Ahora puede comenzar a solucionar problemas de red usted mismo o convertirlo en una razón para relacionarse con algunos amigos!

Con este nuevo conocimiento, ¿por qué no instalar Tshark junto con Wireshark para monitorear paquetes en AWS EC2? ¿O tal vez medir la tasa de bits de una transmisión de video?


Linux
  1. Administre las conexiones de red desde la línea de comandos de Linux con nmcli

  2. Haz que el cambio de Mac a Linux sea más fácil con Homebrew

  3. 5 comandos de solución de problemas de red de Linux

  4. ¿No puedo navegar por la red desde Nautilus?

  5. ¿Cómo rastrear el tiempo desde la línea de comandos?

Administre su calendario desde la terminal de Linux con el comando konsolekalendar

Aprende Linux con la Raspberry Pi

Tómese un descanso en la línea de comandos de Linux con Nyan Cat

Escriba una ISO en la unidad USB directamente desde Internet con BTFS

Trabajar con imágenes de Docker desde la línea de comandos

¿Cómo reinicio Linux (Ubuntu) desde la línea de comandos?