Jaki jest najprostszy sposób na sniffowanie danych o ruchu TCP w Linuksie?
Chcę w prosty sposób pokazać wszystkie dane TCP (nie nagłówki TCP lub cokolwiek innego) przechodzące przez dowolny interfejs na moim pudełku z Linuksem.
Na przykład, chcę magiczną komendę, że jeśli zrobię:
magic_commmand_I_want port=1234
to jeśli na mojej maszynie był serwer nasłuchujący na porcie 1234, a ktoś zrobił:
echo hello | nc localhost 1234
# Note: "nc" (aka "netcat") is a simple tool that sends data to a host/port
Wtedy magiczna komenda po prostu wypisałaby:
hello
Próbowałem “tcpdump”, “ethereal”, “tethereal”, “tshark” i innych, ale nie jest oczywiste, jak je uzyskać, aby:
- nie pokazywać adresów IP ani innych metadanych
- pokazywać tylko przesyłane “dane”, a nie poszczególne pakiety i ich nagłówki
- drukować dane jako takie, nie w heksach i nie ze znacznikami packet-offset
- sniffować wszystko ruch sieciowy (czy to na eth0, czy eth1, czy lo, itd. …)
Tak, prawdopodobnie mógłbyś użyć do tego celu zestawu komend unixowych, ale nie jest to łatwe do zapamiętania na następny raz :)
Jeśli masz prosty przykład dokładnej linii poleceń, która to robi, to jest to, czego bym chciał.