Come faccio a fare tcpdump non printingre le intestazioni tcp?

Ho provato questo:

tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)' 

Ho bisogno solo della parte ascii. Come faccio a rimuovere il resto?

  • Tcpdump su più interfacce
  • Dumping rawdata per un host su un proxy utilizzando tcpdump
  • Velocità di perdita di pacchetti con iperf e tcpdump
  • TCP Dump, non riesce a capire queste 4 righe?
  • tcpdump on interface bridge (virbr) non riceve alcun pacchetto destinato a uno dei suoi indirizzi
  • multicast tcpdump e abbonamenti
  • Registrare il traffico di networking in una casella di Linux, trasferendola in un altro in tempo reale
  • identificare pacchetti vlan utilizzando tcpdump
  • 6 Solutions collect form web for “Come faccio a fare tcpdump non printingre le intestazioni tcp?”

    Come suggerisce Josh, tcpflow può printingre solo i dati del pacchetto TCP in un file o STDOUT. Puoi pipelare tcpdump a tcpflow come questo:

     tcpdump -i lo -l -w - port 23 | tcpflow -C -r - 

    Per visualizzare solo un lato della conversazione, è ansible utilizzare filtri per tcpdump, ad esempio dst port 23 .

    Non sono sicuro della syntax esatta per tcpdump … infatti, ho segnato questa domanda come preferita perché vorrei sapere! Ma come soluzione alternativa, si potrebbe provare a utilizzare tcpflow invece. Funziona essenzialmente allo stesso modo, ma printing l'output ASCII molto meglio; esclude le intestazioni e printing i pacchetti in sequenza come stream, quindi è più facile leggere e seguire a volte di tcpdump .

    Un modo rapido e sporco per farlo è quello di filtrare l'output attraverso le stringhe:

     tcpdump -nli eth0 '(port 6667) and (length > 74)' -s 0 -w - | strings 

    A volte non si hanno altri strumenti e per una rapida sbirciata nel carico utile è sufficiente. Non è un bene se avete bisogno del carico utile esatto per l'iniezione o di un'analisi esatta, ovviamente.

    Se è necessario solo la parte ASCII è ansible utilizzare: tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'|sed 's/\.//g' o con ngrep: ngrep -d eth0 -lq . '(port 6667) and (length > 74)' |sed -rn '/^ /s/\.//gp' ngrep -d eth0 -lq . '(port 6667) and (length > 74)' |sed -rn '/^ /s/\.//gp'

    Ho avuto lo stesso problema la scorsa settimana – ho usato il wireshark gui invece e ho fatto una "copia leggibile ascii" per i pacchetti interessanti.

    Sono stato (con successo) cercando di individuare un problema con una richiesta di http a un servizio web e la sua risposta XML.

    Sento che la soluzione più elegante è solo per fucinare tcpdump. Nessun pipe di qualsiasi tipo:

     tcpflow -c port 6667 

    E questo è tutto.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.