Pantau jumlah byte yang ditransfer ke / dari alamat IP pada port
19
Adakah yang bisa merekomendasikan alat baris perintah linux untuk memantau jumlah byte yang ditransfer antara server lokal dan alamat IP / port tertentu.
Perintah tcpdump yang setara adalah:
tcpdump -s 0 -i any -w mycapture.trc port 80 host google.com
yang keluaran:
46 packets captured
131 packets received by filter
0 packets dropped by kernel
Saya ingin sesuatu yang serupa yang dihasilkan:
54 bytes out, 176 bytes in
Saya ingin ini bekerja di RHEL dan bebas / open-source. Akan lebih baik jika ada alat yang sudah ada yang hilang juga!
Anda bisa menggunakan iptables. Jika Anda belum menggunakannya, Anda dapat menggunakan konfigurasi Terima yang terbuka, tetapi miliki aturan untuk melakukan penghitungan.
Misalnya, di RHEL /etc/sysconfig/iptablesfile Anda dapat terlihat seperti:
Di mana 10.10.1.1:80 adalah host: port tujuan penghitungan lalu lintas (Anda tidak dapat menggunakan nama host). Anda kemudian dapat memeriksa lalu lintas yang dihitung dengan perintah iptables -nvxLsebagai root.
Juga sepenuhnya sah untuk memiliki aturan tanpa target, semata-mata untuk tujuan penghitungan, misalnya iptables -A INPUT -d 1.2.3.4 -p tcp --dport 3456. Ini tidak akan melakukan apa pun untuk lalu lintas, karena tidak ada argumen "-j", tetapi setiap paket yang cocok akan menambah jumlah.
MadHatter mendukung Monica
9
Saya akan menyarankan wireshark (untuk itu banyak fitur ' percakapan '), tetapi itu bukan alat baris perintah. Anda dapat mencoba tshark , yang merupakan alat penganalisa baris perintah yang tertutup untuk wireshark. Keluaran seharusnya memiliki (agak) apa yang Anda cari (contoh di bawah):
Ada juga alat yang disebut 'iftop' yang menampilkan penggunaan bandwidth pada antarmuka oleh tuan rumah. Saya pikir iftop dapat melakukan apa yang Anda gambarkan tetapi biasanya antarmuka adalah sesuatu seperti 'atas'.
Jadi untuk contoh Anda, saya pikir Anda bisa membuat file config untuk memberikan kode filter Anda.
Jadi di sini adalah kode-filter saya di file konfigurasi saya.
$ cat /tmp/conf
filter-code: port http and host google.com
Kemudian, saya menjalankan yang berikut untuk melihat jalur jaringan.
$ sudo iftop -c /tmp/conf
Tidak yakin apakah ini pilihan terbaik tetapi tentu saja salah satu cara untuk mencapai apa yang Anda butuhkan. HTH.
Anda juga dapat menentukan filter pada baris perintah tanpa menggunakan file konfigurasi:iftop -f 'port 80 and host google.com'
gioele
Apakah Anda ingin total byte yang ditransfer, bukan bandwidth. Bisakah Anda iftopmenunjukkan itu?
arainone
3
Anda juga dapat mencoba "iptraf" yang ringan dan sederhana. Itu dapat menyaring berdasarkan port dan memberi Anda info tingkat tinggi, tidak ada data payload, dll.
Saya akan menyarankan wireshark (untuk itu banyak fitur ' percakapan '), tetapi itu bukan alat baris perintah. Anda dapat mencoba tshark , yang merupakan alat penganalisa baris perintah yang tertutup untuk wireshark. Keluaran seharusnya memiliki (agak) apa yang Anda cari (contoh di bawah):
Hasil:
sumber
Ada juga alat yang disebut 'iftop' yang menampilkan penggunaan bandwidth pada antarmuka oleh tuan rumah. Saya pikir iftop dapat melakukan apa yang Anda gambarkan tetapi biasanya antarmuka adalah sesuatu seperti 'atas'.
Jadi untuk contoh Anda, saya pikir Anda bisa membuat file config untuk memberikan kode filter Anda.
Jadi di sini adalah kode-filter saya di file konfigurasi saya.
Kemudian, saya menjalankan yang berikut untuk melihat jalur jaringan.
Tidak yakin apakah ini pilihan terbaik tetapi tentu saja salah satu cara untuk mencapai apa yang Anda butuhkan. HTH.
sumber
iftop -f 'port 80 and host google.com'
iftop
menunjukkan itu?Anda juga dapat mencoba "iptraf" yang ringan dan sederhana. Itu dapat menyaring berdasarkan port dan memberi Anda info tingkat tinggi, tidak ada data payload, dll.
sumber