Para monitorear el tráfico HTTP entre un servidor y un servidor web, actualmente estoy usando tcpdump. Esto funciona bien, pero me gustaría deshacerme de algunos datos superfluos en la salida (lo sé tcpflowy wiresharkno están disponibles en mi entorno).
Desde la tcpdumppágina del manual:
Para imprimir todos los paquetes HTTP IPv4 hacia y desde el puerto 80, es decir, imprimir solo los paquetes que contienen datos, no, por ejemplo, los paquetes SYN y FIN y los paquetes solo ACK.
tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
Este comando
sudo tcpdump -A 'src example.com y tcp puerto 80 y (((ip [2: 2] - ((ip [0] & 0xf) << 2)) - ((tcp [12] & 0xf0) >> 2) )! = 0) '
proporciona el siguiente resultado:
19: 44: 03.529413 IP 192.0.32.10.http> 10.0.1.6.52369: Banderas [P.], seq 918827135: 918827862, ack 351213824, win 4316, opciones [nop, nop, TS val 4093273405 ecr 869959372], longitud 727
E ..... @ ....... .... P..6.0 ......... D ...... __ .. e = 3 ...__ HTTP / 1.1 200 OK Servidor: Apache / 2.2.3 (Red Hat) Tipo de contenido: texto / html; charset = UTF-8 Fecha: sábado, 14 de noviembre de 2009 18:35:22 GMT Edad: 7149
Duración del contenido: 438<HTML> <HEAD> <TITLE> Ejemplo de página web </TITLE> </HEAD> <body>
<p> Ha llegado a esta página web ... </p> </BODY> </HTML>
Esto es casi perfecto, excepto por la parte resaltada. ¿Qué es esto, final, más importante, cómo me deshago de él? ¿Tal vez es solo un pequeño ajuste a la expresión al final del comando?