Quel est le moyen le plus simple de renifler les données de trafic TCP sous Linux ?
Je veux un moyen simple de montrer toutes les données TCP (pas les en-têtes TCP ou quoi que ce soit d'autre) passant par n'importe quelle interface de ma boîte Linux.
Par exemple, je veux une commande magique qui si je le fais :
magic_commmand_I_want port=1234
alors s'il y avait un serveur qui écoutait sur le port 1234 de ma machine, et que quelqu'un l'a fait :
echo hello | nc localhost 1234
# Note: "nc" (aka "netcat") is a simple tool that sends data to a host/port
Alors la commande magique s'imprimerait simplement :
hello
J'ai essayé “tcpdump”, “ethereal”, “tethereal”, “tshark”, et d'autres, mais la façon de les obtenir n'est pas évidente :
- ne pas afficher les adresses IP ou autres métadonnées
- n'afficher que les “données” envoyées, pas les paquets individuels et leurs en-têtes
- imprimer les données telles quelles, pas en hexadécimal, et pas avec des marqueurs de décalage de paquets
- renifler tout le trafic réseau (qu'il soit sur eth0 ou eth1 ou lo, etc. ..)
Oui, vous pourriez probablement enchaîner un ensemble de commandes unix pour faire cela, mais ce n'est pas très facile à retenir pour la prochaine fois :)
Si vous avez un exemple simple d'une ligne de commande exacte qui fait cela, c'est ce que j'aimerais.