tcpdump'ın ip ve port numarasını göstermesi ancak hostname ve protokol gösterilmemesi


42

Bazı testler için tcpdump kullanıyorum IP ve port numarasını görmek istiyorum ancak tcpdump çıktısı benziyor

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

sadece http için hostname ve protokolü gösterir, 80 olduğunu bilmek kolaydır ama dnp için aramak zorundayım

tcpdump'un ip ve port numarasını göstermesi ancak ana bilgisayar adı ve protokolü göstermemesi nasıl mümkün olabilir? Teşekkürler

Yanıtlar:


44

Ekle -nsizin için tcpdumpkomut satırında.

Gönderen tcpdump manpage :

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

Onlar var: O da Fedora (RHEL, CentOS, vb ve belki diğer türevleri) üzerinde belirtilmelidir yamalı ayrı seçenek içerecek şekilde orijinal tcpdump sürümünü -nnnoktası numaralarını kaldırın. Gönderen man :

-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.

port numarası hala kullanılarak protokol ismine dönüştürülür-n
misteryes

"port numarası hala -n kullanarak protokol ismine dönüştürülür" Örneğin, OS X Mountain Lion ile birlikte gelen tcpdump 4.1.1 ile veya tcpdump.org Git'in üst kısmından inşa edilen tcpdump ile değil. -N görüyoruz tcpdump hangi sürümünü üzerinde değil protokol adlarına noktası numaraları dönüşümünü bastırmak?

5

Kullandığım -nnparametreyi.

-nn: Ana bilgisayar adlarını veya bağlantı noktası adlarını çözmeyin.

Olarak çalıştır:

tcpdump -nn 

2

-nyalnızca ana bilgisayar adları için çalışır, ancak bağlantı noktası numaraları için çalışmaz. -nnHer ikisi için de hile yapar. Bu, Fedora 20 gnu / linux'ta tcpdump 4.5.1 sürümünü çalıştırıyor. @ATMc'nin aşağı oylu cevabı tek doğru. Ne yazık ki ne düşük oy ne de ne de düşük bir karmaşa nedeniyle yorum yazamam.


1

Bence en iyi yaklaşım:

sudo tcpdump -ni any

Test edilecek adımlar:

  1. Bir konsolu açın ve şunu yazın:

    sudo nc -l -p 6666
    
  2. Başka bir konsol açın ve şunu yazın:

    sudo tcpdump -ni any
    

    Çıktı çok ayrıntılı ise, filtreleyebilirsiniz ( | grep -v "patter1n|pattern2").

  3. Üçüncü bir konsolu açın ve şunu yazın:

    telnet localhost 6666
    

Beklenen çıktı:

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

Eğer kullanırsan şöyle bir sudo tcpdump -i anyşey göreceksin:

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
Bu diğer cevapla aynıdır - -i anyeğer adres / port-to-isim dönüşümünü bastırmak istiyorsanız, bu gerekli değildir -n.

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

1
i do not get it
Pierre.Vriens

1
Soru “ip ve port numarasını göster ancak ana makine adını ve protokolünü gösterme” derken, “ip ve port numarasını göster ancak diğer bilgilerden hiçbirisini gösterme” anlamına geldiğinden şüpheliyim . (Yanılıyor olabilirim ama başka hiç kimse soruyu sizin yaptığınız gibi yorumlamıyor gibi görünmüyor.) Bu yüzden cevabınız iki bölüme -nnayrılıyor gibi görünüyor: (1)  “http” ve “dnp” gibi hizmetleri bir bağlantı noktası olarak görüntülemek için kullanın bir isim yerine (önceki üç cevapta sunulmuş olan) bir numara ve (2) awkpaket içeriği (muhtemelen istenmeyen) hakkında veri atmak için kullanın  .
Scott
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.