tcpdump는 대기 시간이 긴 패킷을 보여줍니다

tcpdump는 대기 시간이 긴 패킷을 보여줍니다

tcpdump를 사용하여 로컬 rsyslog 서비스에서 syslog 서버로 패킷을 캡처하고 있지만 tcpdump에서 다른 명령을 시도하면(dst 옵션 포함/미포함) 표시되는 결과에 지연이 발생합니다.

예상/원하는 동작:

tcpdump -n -e -i any -A | grep hello               # without dst option
tcpdump -n -e -i any dst 10.8.8.3 -A | grep hello  # with dst option

위의 두 명령은 동시에 또는 매우 짧은 지연으로 패킷을 표시해야 합니다.

실제 동작: dst 옵션을 붙인 명령은 tcpdump -n -e -i any dst 10.8.8.3 -A | grep hello최대 20초의 패킷 지연을 보여 패킷이 성공적으로 전송되지 않은 것으로 믿게 되었습니다.

command1은 즉시 패킷을 캡처합니다.

여기에 이미지 설명을 입력하세요.

command2는 패킷을 즉시 캡처할 수 없습니다. 약 20초 후에 마침내 패킷이 화면에 나타났습니다.

추가 정보:

  • 데비안 4.9.189-3+deb9u2 (2019-11-11) x86_64 GNU/Linux
  • tcpdump 버전 4.9.3
  • libpcap 버전 1.8.1

답변1

~에서tcpdump(8)(OP 버전보다 약간 오래된 버전을 선택하지만 최신 버전이면 됩니다):

-l

표준 출력 라인을 버퍼링하도록 만듭니다. 이는 캡처된 데이터를 보려는 경우에 유용합니다. 예를 들어,

tcpdump -l | tee dat

또는

tcpdump -l > dat & tail -f dat

[...]

-U비슷하게 동작 -l하지만 "패킷 버퍼링" 출력이 발생합니다. [...]

따라서 -l"라이브" 디스플레이가 필요할 때마다 추가하세요.tcpdump

관련 정보