Zum Hauptinhalt springen
  1. Braindump/

HTTP-Traffic mit tcpdump aufzeichnen

1 min
Marcel Ryser
Autor
Marcel Ryser
Softwarearchitekt und Tech-Enthusiast aus Bern

Falls du je SOAP- oder REST-Services debuggen musstest, ohne Zugriff auf den rohen Request/Response, wirst du das hier mögen. Solchen HTTP-Traffic kannst du mit tcpdump aufzeichnen. Das UNIX-Tool tcpdump (Installation mit brew install tcpdump oder apt-get install tcpdump) zeichnet den gesamten Netzwerk-Traffic deines Systems auf. Weil wir aber wissen, dass wir nur HTTP-Traffic brauchen, machen wir es uns etwas leichter!

  • HTTP-Traffic inklusive Request-/Response-Header und Message-Body mitschneiden:

    tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
  • HTTP-Traffic inklusive Header und Body von einer bestimmten Quelle:

    tcpdump -A -s 0 'src example.com and tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
  • HTTP-Traffic inklusive Header und Body von localhost zu localhost:

    tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -i lo
  • Nur HTTP-Requests: in den Befehlen oben “tcp port 80” durch “tcp dst port 80” ersetzen

  • TCP-Pakete von localhost zu localhost (Loopback) mitschneiden:

    tcpdump -i lo

Quelle: https://sites.google.com/site/jimmyxu101/testing/use-tcpdump-to-monitor-http-traffic