Saya akan senang jika ada alat baris perintah tunggal untuk mengendus paket perintah tunggal di Linux. sesuatu seperti sniff dumpfile command
sehingga Anda bisa menjalankan perintah yang Anda inginkan untuk mengendus paket di terminal dan mendapatkan dump paket di tempat lain.
Saya ingin membuang / menyimpan / hanya melihat lalu lintas jaringan dari satu perintah yang saya masukkan, tidak semua lalu lintas TCP pada antarmuka jaringan tunggal saya. Jadi jika saya masuk ke komputer dan menjalankan IRC di latar belakang, dan saya melakukannya sniff somefile wget http://www.google.com
, saya ingin melihat semua lalu lintas jaringan yang dilakukan oleh perintah wget untuk mengunduh http://www.google.com . Saya tidak ingin 'somefile' memiliki lalu lintas jaringan IRC membingungkan.
Ada banyak perintah linux / unix yang menerima perintah yang berbeda dan melakukan sesuatu yang berbeda. Dari sudo
(jalankan sebagai superuser), nice
ubah level yang bagus, trickle
(batasi bandwidth perintah)
Jawaban:
Tidak ada yang saya ketahui, tetapi secara teoritis seharusnya tidak sulit untuk mendapatkan yang serupa. Strace dapat digunakan untuk mencegat syscall jaringan.
Ini akan memberi Anda informasi tentang data yang dikirim antara kernel dan proses. Output dari strace tidak persis seperti yang Anda inginkan. Namun, strace menggunakan syscall ptrace untuk mencegat panggilan sistem. Dimungkinkan untuk menulis suatu program untuk menghasilkan data sedikit lebih bermanfaat.
Atau, Anda juga dapat mencegat soket berguna yang bagus, mengikat dan mendengarkan panggilan sys. Dimungkinkan untuk menulis program kecil yang menggunakan ptrace pada panggilan ini dan libpcap untuk secara dinamis mengubah filter tangkap setiap kali soket baru dibuka.
sumber
Tracedump
Unduh dan deskripsikan di sini: http://mutrics.iitis.pl/tracedump
sumber
Coba Wireshark - perintahnya adalah
tshark
Atau, Apakah Anda benar-benar hanya ingin LSOF?
Saya tidak berpikir ada alat yang secara dinamis akan terus memfilter untuk semua komunikasi yang terkait dengan suatu proses. Namun, Anda dapat mencoba melacak proses komunikasi dengan alat-alat seperti
lsof
dan setelah Anda memiliki filter yang baik yang dapat mengisolasi komunikasi dari proses itu dari semua lalu lintas lain yang berjalan di sistem Anda, Anda bisa mendapatkan tangkapan yang benar.Misalnya, dengan
wget
biasanya alamat IP tujuan berbeda dari lalu lintas terkait proses lainnya. Bahkan jika Anda mengambil sesuatu sepertiskype
kisaran port tujuan biasanya diperbaiki untuk sebuah instance.Ini agak seperti prinsip ketidakpastian. Anda biasanya dapat mengetahui apa yang sedang terjadi melalui serangkaian jalur komunikasi (dengan filter sniffer pada kelompok aliran yang diidentifikasi), atau di mana berbagai tautan komunikasi dibuat (dengan lsof).
Saya benar-benar ingin tahu apakah keduanya dapat dilakukan untuk suatu aplikasi. Saya pikir itu harus layak. Tapi, belum melihat alat apa pun melakukannya.
sumber
Pelajari cara menggunakan ekspresi filter.
Sementara ini tidak akan melakukan hal-hal mewah yang Anda minta.
Ini akan memungkinkan Anda untuk menghapus hampir semua "hal membingungkan seperti IRC" dari tangkapan layar.
Selain itu, sangat berguna untuk mengetahui sintaks filter untuk referensi cepat di masa mendatang.
sumber
Khusus untuk browser web / halaman web seperti plug-in Firebug untuk Firefox dapat memberi Anda beberapa informasi yang Anda cari: http://getfirebug.com/net.html
Untuk aplikasi yang lebih umum, Anda mungkin perlu menggunakan netstat untuk mengidentifikasi port (s) yang digunakan oleh aplikasi dan kemudian Wireshark / tshark / dtrace dengan filter untuk menangkap hanya lalu lintas itu. Bukan jawaban satu baris yang Anda cari ...
sumber
Satu ide, coba VMWare
-mengatur vm -mengonfigurasi
vm untuk menggunakan antarmuka tertentu
-mengakui antarmuka dari tuan rumah (seperti seorang pria dalam serangan tengah)
Jika Anda mengisolasi aplikasi jaringan apa yang berjalan pada vm itu, Anda mungkin memiliki jawaban
Solusi yang lebih ideal, saya kira, adalah melakukan apa yang VMWare lakukan dalam hal bagaimana ia menentukan bagaimana ia memilih antarmuka untuk dibicarakan. Saya pikir keajaibannya berasal dari modul kernel yang digunakannya, dalam hal ini, mungkin modul kernel vmnet.
Sepengetahuan saya aplikasi tidak mengetahui untuk apa mereka berbicara dan saya percaya ini adalah desain; mereka tidak perlu khawatir tentang hal-hal seperti itu.
Lebih jauh,
Mungkin sebuah program sudah ada, saya tidak tahu. Tetapi jika ada yang ditulis Anda bisa menyebutnya nettrace (misalnya) dan Penggunaan bisa seperti
antarmuka program nettrace
kemudian mengendus antarmuka yang digunakannya dan menambahkan rute (mungkin itu melakukan secara otomatis) ke antarmuka Anda yang sebenarnya
sumber
Dengan asumsi bahwa Anda adalah satu-satunya orang di kotak yang mencoba terhubung ke google pada saat itu, saya pikir sesuatu seperti ini harus melakukan trik:
tcpdump -w <outfile> -i <interface> tcp dst host www.google.com and dst port 80
Jika Anda bukan satu-satunya koneksi yang mencoba terhubung ke google pada kotak, maka jika Anda dapat mengidentifikasi IP / port yang Anda hubungkan, Anda juga dapat menentukan port src / src ip.
Mengidentifikasi port src mungkin menjadi masalah kecuali Anda dapat menentukannya pada klien apa pun yang Anda gunakan. Saya tidak yakin apakah Anda bisa dengan wget.
Saya sangat curiga bahwa Anda dapat menentukan port src dan dst dengan
netcat
jadi jika itu benar-benar google yang Anda minati, Anda dapat melakukan GET (secara manual) melalui netcat.Tentu saja halaman manual akan memberikan Anda spesifik
sumber
Halaman manual tcpdump dan banyak situs web memberikan contoh filter yang mendalam, dan bahkan ada beberapa repositori online ekspresi filter tcpdump. Seharusnya bisa melakukan hampir semua yang Anda impikan, dengan asumsi Anda tahu sesuatu tentang lalu lintas jaringan (sumber, tujuan, port, protokol, dll.) Di luar apa yang dihasilkan oleh program itu.
Jika Anda bekerja pada server atau kotak tanpa kepala, Anda selalu dapat meminta tcpdump menulis file dump dan kemudian membukanya di Wireshark di workstation Anda dan mendapatkan pemfilteran lanjutan dan antarmuka grafis.
sumber
Mungkin skrip ini akan melakukan apa yang Anda inginkan dengan modifikasi yang sesuai dengan perintah tshark:
Baca file dump nanti:
sumber
Dtrace harus mengizinkan ini, walaupun saya belum tahu apakah itu cukup berhasil masuk ke Linux.
sumber