come fare tcpdump per visualizzare ip e numero di porta ma non nome host e protocollo


42

Sto usando tcpdump per alcuni test voglio vedere l'IP e il numero di porta ma l'output di tcpdump è come

IP pl1snu.koren.kr.http > kitch.pl.sophia.inria.fr.dnp: Flags [P.], seq 54:72, ack 1, win 5792, length 18

mostra solo il nome host e il protocollo per http, è facile sapere che è 80 ma per dnp devo cercare

quindi è possibile come fare in modo che tcpdump visualizzi il numero IP e la porta ma non il nome host e il protocollo in tal caso, come? Grazie

Risposte:


44

Aggiungi -nalla tua tcpdumpriga di comando.

Dalla manpage di tcpdump :

-n Don't convert addresses (i.e., host addresses, port numbers, etc.) to names.

Va anche notato che su Fedora (e forse altri derivati: RHEL, CentOS, ecc.) Hanno patchato la versione originale di tcpdump per includere un'opzione separata -nnper rimuovere i numeri di porta. Dalla manpage :

-n     Don't convert host addresses to names.   This  can  be  used  to
              avoid DNS lookups.

-nn    Don't convert protocol and port numbers etc. to names either.

il numero di porta viene ancora convertito in nome protocollo usando-n
misteryes il

"Il numero di porta viene ancora convertito in nome protocollo usando -n" Non con, ad esempio, tcpdump 4.1.1 fornito con OS X Mountain Lion o con tcpdump creato dalla parte superiore del trunk Git di tcpdump.org. Su quale versione di tcpdump stai vedendo -n non sopprimere la conversione dei numeri di porta in nomi di protocollo?

5

Io uso il -nnparametro.

-nn: Non risolvere i nomi host o i nomi delle porte.

Eseguilo come:

tcpdump -nn 

2

-nfunziona solo per i nomi host, ma non per i numeri di porta. -nnfa il trucco per entrambi. Questo sta eseguendo tcpdump versione 4.5.1 su Fedora 20 gnu / linux. La risposta downgrade di @ATMc è l'unica corretta. Purtroppo non posso né votarlo né scrivere un commento sotto di esso a causa del basso karma.


1

Penso che l'approccio migliore sia:

sudo tcpdump -ni any

Passaggi per testare:

  1. Apri una console e digita:

    sudo nc -l -p 6666
    
  2. Apri un'altra console e digita:

    sudo tcpdump -ni any
    

    Se l'output è troppo dettagliato puoi filtrarlo ( | grep -v "patter1n|pattern2")

  3. Apri una terza console e digita:

    telnet localhost 6666
    

Uscita prevista:

10:37:13.770997 IP 127.0.0.1.56920 > 127.0.0.1.443: Flags [S], seq 2822288041, win 43690, options [mss 65495,sackOK,TS val 1028779 ecr 0,nop,wscale 7], length 0

Se usi sudo tcpdump -i anyvedrai qualcosa del genere:

10:38:22.106022 IP localhost.56924 > localhost.https: Flags [S], seq 3147104744, win 43690, options [mss 65495,sackOK,TS val 1045863 ecr 0,nop,wscale 7], length 0

1
È la stessa dell'altra risposta: -i anynon è necessario se si desidera sopprimere la conversione da indirizzo / porta a nome, è solo quello -nche conta.

-2
tcpdump -i eth0 -p -nn | grep "IP" | awk '{print$3 ,$4 ,$5}' | sed 's/://'

1
non capisco
Pierre.Vriens,

1
Mentre la domanda dice "visualizza IP e numero di porta ma non nome host e protocollo", dubito che significhi "visualizza IP e numero di porta ma nessuna delle altre informazioni". (Potrei sbagliarmi, ma nessun altro sembra aver interpretato la domanda nel modo in cui l'hai fatto.) Quindi la tua risposta sembra ridursi in due parti: (1) utilizzare  -nnper visualizzare servizi come "http" e "dnp" come una porta numero anziché un nome (che è stato presentato in tre risposte precedenti) e (2) usano  awkper gettare via i dati sul contenuto del pacchetto (che probabilmente non è desiderato).
Scott,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.