¿Cuál es la forma más fácil de husmear datos de tráfico TCP en Linux?
Quiero una forma sencilla de mostrar todos los datos TCP (no las cabeceras TCP ni nada parecido) que pasan por cualquier interfaz de mi caja Linux.
Por ejemplo, quiero un comando mágico que si hago
magic_commmand_I_want port=1234
entonces si hubiera un servidor escuchando en el puerto 1234 en mi máquina, y alguien hiciera
echo hello | nc localhost 1234
# Note: "nc" (aka "netcat") is a simple tool that sends data to a host/port
Entonces el comando mágico sólo imprimiría
hello
He probado con “tcpdump”, “ethereal”, “tethereal”, “tshark”, y otros, pero no es obvio cómo se consiguen:
- no muestren las direcciones IP u otros metadatos
- sólo muestren los “datos” que se envían, no los paquetes individuales y sus cabeceras
- impriman los datos tal cual, no en hexadecimal, y no con marcadores de desplazamiento de paquetes
- olfateen todo el tráfico de red (ya sea en eth0 o eth1 o lo, etc.. ..)
Sí, probablemente podrías encadenar un conjunto de comandos unix para hacer esto, pero eso no es muy fácil de recordar para la próxima vez :)
Si tienes un ejemplo sencillo de una línea de comandos exacta que haga esto, eso es lo que me gustaría.