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 tcpflowund Bescheid wireshark, aber sie sind in meiner Umgebung nicht ohne weiteres verfügbar).
Von der tcpdumpManpage:
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?