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