Para monitorar o tráfego HTTP entre um servidor e um servidor web, estou usando atualmente tcpdump. Isso funciona bem, mas eu gostaria de me livrar de alguns dados supérfluos na saída (eu sei sobre tcpflowe wireshark, mas eles não estão prontamente disponíveis no meu ambiente).
Na tcpdumppágina do manual:
Para imprimir todos os pacotes HTTP IPv4 de e para a porta 80, ou seja, imprima apenas pacotes que contenham dados, não, por exemplo, pacotes SYN e FIN e pacotes somente 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 e porta tcp 80 e (((ip [2: 2] - ((ip [0] & 0xf) << 2) << 2)) - ((tcp [12] & 0xf0) >> 2) )! = 0) '
fornece a seguinte saída:
19: 44: 03.529413 IP 192.0.32.10.http> 10.0.1.6.52369: Flags [P.], seq 918827135: 918827862, ack 351213824, win 4316, options [nop, nop, TS val 4093273405 ecr 869959372], comprimento 727
E ..... @ ....... .... P..6.0 ......... D ...... __ .. e = 3 ...__ HTTP / 1.1 200 OK Servidor: Apache / 2.2.3 (Red Hat) Tipo de conteúdo: text / html; charset = UTF-8 Data: sábado, 14 de novembro de 2009 18:35:22 GMT Idade: 7149
Comprimento do conteúdo: 438<HTML> <HEAD> <TITLE> Exemplo de página da web </TITLE> </HEAD> <body>
<p> Você acessou esta página da web ... </p> </BODY> </HTML>
Isso é quase perfeito, exceto pela parte destacada. O que é isso, final - mais importante - como me livrar dele? Talvez seja apenas um pequeno ajuste na expressão no final do comando?