Qual é a maneira mais fácil de farejar dados de tráfego TCP no Linux?
Quero uma forma simples de mostrar todos os dados TCP (não os cabeçalhos TCP ou qualquer outra coisa) passando por qualquer interface na minha caixa Linux.
Por exemplo, quero um comando mágico que, se o fizer:
magic_commmand_I_want port=1234
então se houvesse um servidor a ouvir na porta 1234 na minha máquina, e alguém o fizesse:
echo hello | nc localhost 1234
# Note: "nc" (aka "netcat") is a simple tool that sends data to a host/port
Então o comando mágico apenas imprimia:
hello
Tentei “tcpdump”, “ethereal”, “tethereal”, “tshark”, e outros, mas não é óbvio como os conseguir:
- não mostrar endereços IP ou outros metadados
- mostrar apenas os “dados” enviados, não pacotes individuais e os seus cabeçalhos
- imprimir os dados tal como estão, não em hex, e não com marcadores de compensação de pacotes
- farejar to tráfego de rede (quer esteja em eth0 ou eth1 ou lo, etc. …)
Sim, provavelmente poderia juntar um conjunto encadeado de comandos unix para fazer isto, mas isso não é muito fácil de lembrar para a próxima vez :)
Se tiver um exemplo simples de uma linha de comando exacta que faça isto, é isso que eu gostaria.