Zur Überwachung des HTTP-Verkehrs zwischen einem Server und einem Webserver verwende ich derzeit tcpdump
. Dies funktioniert einwandfrei, aber ich möchte einige überflüssige Daten in der Ausgabe entfernen (ich weiß über tcpflow
und Bescheid wireshark
, aber sie sind in meiner Umgebung nicht ohne weiteres verfügbar).
Von der tcpdump
Manpage:
Alle IPv4-HTTP-Pakete an und von Port 80 drucken, dh nur Pakete drucken, die Daten enthalten, z. B. keine SYN- und FIN-Pakete und nur ACK-Pakete.
tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
Dieser Befehl
sudo tcpdump -A 'src example.com und tcp port 80 und (((ip [2: 2] - ((ip [0] & 0xf) << 2)) - ((tcp [12] & 0xf0) >> 2) )! = 0) '
liefert folgende Ausgabe:
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], length 727
E ..... @ ....... .... P..6.0 ......... D ...... __ .. e = 3 ...__ HTTP / 1.1 200 OK Server: Apache / 2.2.3 (Red Hat) Inhaltstyp: text / html; Zeichensatz = UTF-8 Datum: Samstag, 14. November 2009 um 18:35:22 Uhr GMT Alter: 7149
Länge des Inhalts: 438<HTML> <HEAD> <TITLE> Beispiel-Webseite </ TITLE> </ HEAD> <body>
<p> Sie haben diese Webseite erreicht ... </ p> </ BODY> </ HTML>
Dies ist fast perfekt, mit Ausnahme des hervorgehobenen Teils. Was ist das, Ende - was noch wichtiger ist - wie werde ich es los? Vielleicht ist es nur eine kleine Änderung des Ausdrucks am Ende des Befehls?