Bagaimana saya bisa menangkap paket N detik terakhir menggunakan tcpdump?
Bagaimana saya bisa menangkap paket N detik terakhir menggunakan tcpdump?
Jawaban:
Jika Anda hanya ingin tcpdump berjalan selama n detik dan kemudian berhenti, Anda bisa menggunakan batas waktu.
Sebagai contoh:
timeout 2 tcpdump -eni mon0
Kalau tidak, saya tidak percaya tcpdump memiliki opsi untuk melakukan ini.
Saya pikir cara terbaik untuk mencapai ini adalah dengan -c flag tcpdump, yang, ketika digunakan dengan -w, akan menyimpan dump Anda ke file baru setiap N detik. Contohnya:
tcpdump -w outfile-% s -G 10
Ini akan membuat file baru dengan nama 'outfile-XXXX' (di mana XXXX mewakili jumlah detik sejak zaman) setiap 10 detik.
Lihat halaman manual untuk tcpdump (8) dan strftime (3) untuk detail tambahan.
Anda dapat menggunakan tethereal alih-alih tcpdump. Anda dapat menggunakan opsi baris perintah ini:
-a duration:X
tshark -a duration:600 -i eth0 -w $(hostname).10mins.pcap
akan menangkap lalu lintas senilai sepuluh menit dari antarmuka eth0 ke dalam file $ (hostname) .10mins.pcap
tcpdump options -w new.tcpdump
ps -ef |grep tcpdump
catat PID, katakan itu 11193
at 11:00
kill 11193
sekarang tunggu sampai 11:00 datang dan tangkapan Anda akan terbunuh tetapi disimpan
Saya mencoba untuk memecahkan masalah yang sama jadi, saya menulis skrip portabel untuk menjalankan tcpdump selama n detik.
#tcpdump_for_n_sec.sh
n=$1
shift #remove first arg from $@
tcpdump $@ & x=$!
sleep $n
kill $x
Penggunaan ./tcpdump_for_n_sec.sh detik args untuk tcpdump
./tcpdump_for_n_sec.sh 5 i- any not port 22 -s0 -wfile.pcap
sudo tcpdump -i -w & ini akan menjalankan tcpdump adalah mode tidur