tcpdump가 IP 및 포트 번호를 표시하지만 호스트 이름 및 프로토콜은 표시하지 않는 방법


42

IP 및 포트 번호를보고 싶지만 tcpdump의 출력은 다음과 같습니다.

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

그것은 http에 대한 호스트 이름과 프로토콜 만 보여줍니다 .80이라는 것을 쉽게 알 수 있지만 dnp의 경우 검색해야합니다

그래서 tcpdump가 IP와 포트 번호를 표시하지만 호스트 이름과 프로토콜은 표시하지 않는 방법은 무엇입니까? 감사

답변:


44

명령 행에 추가 -n하십시오 tcpdump.

로부터 tcpdump를 맨 :

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

또한 Fedora (및 기타 파생 상품 : RHEL, CentOS 등)에서 포트 번호를 제거 하는 별도의 옵션 을 포함하도록 원래 tcpdump 버전을 패치 했습니다 -nn. 로부터 :

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

포트 번호는 여전히 사용하는 프로토콜 이름으로 변환됩니다-n
misteryes을

"포트 번호는 여전히 -n을 사용하여 프로토콜 이름으로 변환됩니다."예를 들어, OS X Mountain Lion과 함께 제공되는 tcpdump 4.1.1 또는 tcpdump.org Git 트렁크의 상단에서 빌드 된 tcpdump와는 다릅니다. 어떤 버전의 tcpdump에서 -n 이 포트 번호를 프로토콜 이름으로 변환하는 것을 억제 하지 않습니까?

5

-nn매개 변수를 사용 합니다.

-nn: 호스트 이름 또는 포트 이름을 확인하지 마십시오.

다음과 같이 실행하십시오.

tcpdump -nn 

2

-n호스트 이름에만 작동하지만 포트 번호에는 작동하지 않습니다. -nn둘 다 트릭을 수행합니다. Fedora 20 gnu / linux에서 tcpdump 버전 4.5.1을 실행 중입니다. @ATMc의 공감 된 답은 유일한 것입니다. 슬프게도 업장이 적거나 업장이 적기 때문에 그 아래에 의견을 쓸 수 없습니다.


1

가장 좋은 방법은 다음과 같습니다.

sudo tcpdump -ni any

테스트 단계 :

  1. 콘솔을 열고 다음을 입력하십시오.

    sudo nc -l -p 6666
    
  2. 다른 콘솔을 열고 다음을 입력하십시오.

    sudo tcpdump -ni any
    

    출력이 너무 자세하면 필터링 할 수 있습니다 ( | grep -v "patter1n|pattern2")

  3. 세 번째 콘솔을 열고 다음을 입력하십시오.

    telnet localhost 6666
    

예상 출력 :

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

당신이 사용 sudo tcpdump -i any하면 다음과 같은 것을 볼 수 있습니다 :

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
이는 다른 답변과 동일합니다. -i any주소 / 포트-이름 변환을 억제하려는 경우 필요하지 않습니다 -n. 중요한 것입니다.

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

1
나는 그것을 얻지 못한다
Pierre.Vriens

1
질문은 "디스플레이의 IP와 포트 번호가 아닌 호스트 이름과 프로토콜"라고하지만, 나는 그것이 "디스플레이의 IP와 포트 번호가 아닌 의미 의심 어떤 다른 정보를". (나는 틀릴 수 있지만, 아무도 당신이 한 것처럼 질문을 해석하지 않은 것 같습니다.) 따라서 당신의 대답은 두 부분으로 -nn요약됩니다 . (1)  “http”와“dnp”와 같은 서비스를 포트로 표시하는 데 사용 이름 대신 숫자를 사용하고 (이전의 세 가지 답변에서 제시 한) (2) awk패킷 내용에 대한 데이터를 버리는 데 사용  합니다 (아마도 바람직하지 않음).
Scott
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.