Was ist der einfachste Weg, um TCP-Verkehrsdaten unter Linux zu schnüffeln?
Ich möchte eine einfache Möglichkeit, alle TCP-Daten (nicht die TCP-Header oder irgendetwas anderes) anzuzeigen, die über eine beliebige Schnittstelle auf meiner Linux-Box gehen.
Ich möchte zum Beispiel einen magischen Befehl, der, wenn ich:
magic_commmand_I_want port=1234
dann, wenn es einen Server gibt, der auf Port 1234 auf meinem Rechner lauscht, und jemand hat:
echo hello | nc localhost 1234
# Note: "nc" (aka "netcat") is a simple tool that sends data to a host/port
Dann würde der magische Befehl einfach ausdrucken:
hello
Ich habe “tcpdump”, “ethereal”, “tethereal”, “tshark” und andere ausprobiert, aber es ist nicht offensichtlich, wie man sie dazu bringt:
- keine IP-Adressen oder andere Metadaten anzeigen
- nur die “Daten” anzeigen, die gesendet werden, nicht einzelne Pakete und deren Header
- die Daten so ausgeben, wie sie sind, nicht in Hex und nicht mit Paket-Offset-Markierungen
- allen Netzwerkverkehr abhören (egal, ob er auf eth0 oder eth1 oder lo, etc. ..)
Ja, Sie könnten wahrscheinlich eine Reihe von Unix-Befehlen aneinanderreihen, um dies zu tun, aber das ist nicht sehr einfach, sich für das nächste Mal zu merken :)
Wenn Sie ein einfaches Beispiel für eine exakte Befehlszeile haben, die dies tut, würde mich das interessieren.