Muchas veces nos encontramos con problemas de red entre las aplicaciones y los servidores. En algunas ocasiones debemos revisar que el tráfico de red entre ellos esté operando con normalidad y no haya ningún bloqueo o pérdida de paquetes. Para ello podemos utilizar el comando TCPDUMP para capturar y posteriormente analizar los paquetes capturados.
Nota: Los comandos a utilizar en este tutorial se ejecutaron sobre WSL - UBUNTU 22.04.2 LTS.
Lo primero es instalar los paquetes de net-tools desde la terminal
sudo apt install net-tools
Nota: en caso que ya los tengas instalados no es necesario ejecutar el comando anterior.
Luego de la instalación, consulta la IP de tu servidor con el siguiente comando:
ifconfig
Luego identifica las interfaces que se encuentran configuradas y activas en tu servidor:
tcpdump --list-interfaces
En este ejemplo utilizaremos la interfaz de red eth0.
Se ejecuta el siguiente comando para capturar tráfico.
sudo tcpdump -i eth0
Para detener la captura se presiona CTRL + C.
Con esto podemos tener una primera captura del tráfico.
Sin embargo se puede capturar una mayor cantidad de paquetes y pasarlos a un archivo, para posteriormente analizarlos en un programa de preferencia. En este caso lo pasaremos a un archivo .pcap que se puede cargar luego en Wireshark. Cabe anotar que también se puede pasar a un .log en texto plano. Todo depende de la necesidad. También podemos limitar la cantidad de paquetes capturados:
sudo tcpdump -i eth0 -c 20 -w captura.pcap
Además se puede capturar por el IP de destino, de origen y por puertos. Por lo general para el tráfico en páginas web se utilizan los puertos 80 (http) y 443 (https) así como el puerto 53 que se utiliza para DNS.
Acá varios ejemplos:
sudo tcpdump -i eth0 tcp
sudo tcpdump -i eth0 udp port 53
Este comando TCPDUMP es útil para capturar todo el tráfico que desees dependiendo del evento que tengas por analizar. Para más información puedes buscar acerca de este comando en Google.