Qual è il modo più semplice per sniffare i dati del traffico TCP su Linux?
Voglio un modo semplice per mostrare tutti i dati TCP (non le intestazioni TCP o altro) che passano su qualsiasi interfaccia sulla mia scatola Linux.
Per esempio, voglio un comando magico che se faccio
magic_commmand_I_want port=1234
allora se ci fosse un server in ascolto sulla porta 1234 sulla mia macchina, e qualcuno facesse:
echo hello | nc localhost 1234
# Note: "nc" (aka "netcat") is a simple tool that sends data to a host/port
Allora il comando magico stamperebbe semplicemente:
hello
Ho provato “tcpdump”, “ethereal”, “tethereal”, “tshark”, e altri, ma non è ovvio come si ottiene:
- non mostrare indirizzi IP o altri metadati
- mostrare solo i “dati” che vengono inviati, non i singoli pacchetti e le loro intestazioni
- stampare i dati così come sono, non in esadecimale, e non con marcatori packet-offset
- sniffare tutto il traffico di rete (che sia su eth0 o eth1 o lo, ecc. ..)
Sì, si potrebbe probabilmente mettere insieme una serie di comandi unix per fare questo, ma non è molto facile da ricordare per la prossima volta :)
Se avete un semplice esempio di un'esatta linea di comando che faccia questo, è quello che mi piacerebbe.