tcpdump를 사용하여 마지막 N 초의 패킷을 캡처하는 방법


14

tcpdump를 사용하여 마지막 N 초의 패킷을 어떻게 캡처 할 수 있습니까?


1
"나를 줘"는 당신을 여기로 데려 가지 않을 것입니다. 어쩌면 지금까지 시도한 내용과 문제가있는 정확한 위치를 보여 주어야 할 수도 있습니다.
matthias krull

bash 명령어는 "man tcpdump"
William Pursell

답변:


15

tcpdump를 n 초 동안 실행 한 다음 종료하려면 시간 종료를 사용할 수 있습니다.

예를 들면 다음과 같습니다.

timeout 2 tcpdump -eni mon0

그렇지 않으면 tcpdump 에이 옵션이 있다고 생각하지 않습니다.


불행하게도 CentOS 5.x에는 타임 아웃 명령이 없습니다. 최신 버전의 coreutils에 추가되었습니다. OS 업그레이드에 대한 또 다른 동기.
Mister_Tom

시간 초과가없는 경우 스크립트를 사용하여 시간 초과와 같은 것을 만들 수 있다고 가정합니다.
siesta

나를 위해 잘 작동합니다. 이 프로그램을 사용하여 작동하지 않는 프로그램의 모든 트래픽을 모니터링했습니다. 시간 초과 N 초로 tcpdump를 시작했습니다. 그런 다음 프로그램을 시작했습니다 (최대 N 초 소요).
Trevor Boyd Smith

질문은 마지막 N 초 를 캡처하도록 요청합니다 . 귀하의 답변은 처음 N 초 를 캡처하는 방법을 알려줍니다 .
Flimzy

3

이 작업을 수행하는 가장 좋은 방법은 tcpdump의 -G 플래그를 사용하는 것입니다. -w와 함께 사용하면 N 초마다 덤프를 새 파일에 저장합니다. 예를 들어 :

tcpdump -w 출력 파일-% s -G 10

그러면 10 초마다 이름이 'outfile-XXXX'(여기서 XXXX는 에포크 이후의 시간 (초)를 나타냄)로 새 파일이 작성됩니다.

자세한 내용은 tcpdump (8) 및 strftime (3) 매뉴얼 페이지를 참조하십시오.


CentOS 5.10과 함께 제공되는 tcpdump 3.9.4에는 -G 옵션이 없습니다. OS를 업그레이드해야합니다.
Mister_Tom

-G는 tcpdump 명령을 중지하지 않습니다. 여전히 영원합니다. 제한 시간 2 tcpdump는 2 초 후에 명령을 중지합니다.
ciceron

@ ciceron : 문제는 tcpdump 중지에 관한 것이 아닙니다. 마지막 N 초를 캡처하는 것이 었 습니다 . 귀하의 제안은 처음 N 초를 캡처합니다 . OP가 요구 한 바는 확실하지 않습니다.
Flimzy

1

tcpdump 대신 tethereal을 사용할 수 있습니다. 이 명령 행 옵션을 사용할 수 있습니다.

-a duration:X

이것이 질문에 대한 답변이 될 수 있지만, 그 이유에 대한 설명을 제공 할 수 있다면 더 나은 답변이 될 것 입니다.
DavidPostill

tcpdump 자체는 시간 제한 패킷 추적을 허용하지 않지만 tshark는 허용합니다. (이 질문은 질문과 대답 이후 NB는, 미묘한 Wireshark는되었다) tshark -a duration:600 -i eth0 -w $(hostname).10mins.pcap파일 $ (호스트 이름) .10mins.pcap에 인터페이스 eth0를 트래픽의 십분 분량을 캡처
앤드류 빌즈

0

tcpdump options -w new.tcpdump

ps -ef |grep tcpdump

PID를 기록하고 11193이라고 말하십시오.

at 11:00 kill 11193

이제 11:00이 될 때까지 기다리면 캡처가 종료되지만 저장됩니다


fwiw pgrep는 ps | grep에 대한 훨씬 더 나은 대안입니다. 특히 여기에.
Good Person

0

나는 같은 문제를 해결하려고 노력했기 때문에 ncp 동안 tcpdump를 실행하는 휴대용 스크립트를 작성했습니다.

#tcpdump_for_n_sec.sh
n=$1
shift #remove first arg from $@ 
tcpdump $@ & x=$!
sleep $n
kill $x

tcpdump의 사용법 ./tcpdump_for_n_sec.sh sec 인수

./tcpdump_for_n_sec.sh 5 i- any not port 22 -s0 -wfile.pcap

0

sudo tcpdump -i -w & 이것은 tcpdump가 휴면 모드입니다.

  • w : .pcap 파일에 출력 저장 & : tcpdump 프로세스가 절전 모드에서 실행됩니다. 참고 : 원하는 경우 사용 가능한 공간이 충분한 지 확인하십시오. 잠시 동안 실행합니다. 프로세스를 종료 할 때까지 로그 오프해도 중단되지 않습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.