Bağlantı noktasındaki IP adresine / adresinden aktarılan bayt sayısını izleyin


19

Herkes yerel sunucu ve belirtilen bir IP adresi / bağlantı noktası arasında aktarılan bayt sayısını izlemek için bir linux komut satırı aracı önerebilir.

Eşdeğer tcpdump komutu şöyle olur:

tcpdump -s 0 -i any -w mycapture.trc port 80 host google.com

hangi çıktılar:

46 packets captured
131 packets received by filter
0 packets dropped by kernel

Çıktılar benzer bir şey istiyorum:

54 bytes out, 176 bytes in

RHEL üzerinde çalışmasını ve serbest / açık kaynak olmasını istiyorum. Ben de sadece eksik olan mevcut bir araç olsaydı iyi olurdu!

Yanıtlar:


14

İptables kullanabilirsiniz. Henüz kullanmıyorsanız, açık bir Accept yapılandırması kullanabilirsiniz, ancak sayımı yapmak için bir kuralınız olabilir.

Örneğin, RHEL'de /etc/sysconfig/iptablesdosyanız aşağıdaki gibi görünebilir:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -j INPUT
-A INPUT -s 10.10.1.1 -p tcp -m tcp --sport 80 -j ACCEPT
-A OUTPUT -d 10.10.1.1 -p tcp -m tcp --dport 80 -j ACCEPT

10.10.1.1:80, trafiği saymak istediğiniz ana bilgisayar: bağlantı noktasıdır (bir ana bilgisayar adı kullanamazsınız). Daha sonra iptables -nvxLroot olarak komutla sayılan trafiği kontrol edebilirsiniz .

Örnek çıktı:

Chain INPUT (policy ACCEPT 7133268 packets, 1057227727 bytes)
    pkts      bytes target     prot opt in     out     source               destination     
 7133268 1057227727 ACCEPT     tcp  --  *      *       10.10.1.1            0.0.0.0/0              tcp spt:80


Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination     
       0          0 INPUT      all  --  *      *       0.0.0.0/0            0.0.0.0/0       

Chain OUTPUT (policy ACCEPT 7133268 packets, 1057227727 bytes)
    pkts      bytes target     prot opt in     out     source               destination     
 7133268 1057227727 ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.1              tcp dpt:80

7
Sadece sayma amacıyla, hedefi olmayan bir kurala sahip olmak da tamamen yasaldır, örneğin iptables -A INPUT -d 1.2.3.4 -p tcp --dport 3456. "-J" argümanı olmadığı için trafiğe hiçbir şey yapmaz, ancak eşleşen her paket sayıları çarpacaktır.
MadHatter,

9

Wireshark'ı önermek üzereydim (birçok ' konuşma ' özelliği için), ancak bir komut satırı aracı değil. Yine de wireshark'a yakın bir komut satırı analiz aracı olan tshark'ı deneyebilirsiniz . Çıktıda (bir şekilde) aradığınız şey olmalıdır (aşağıdaki örnek):

tshark -R "ip.addr == 10.2.3.67" -z conv,ip -p -f "tcp port 22"

Sonuç:

                                     |       <-      | |       ->      | |     Total     |
                                     | Frames  Bytes | | Frames  Bytes | | Frames  Bytes |
10.2.3.23           <-> 10.2.3.67        42     15341      35      4890      77     20231

7

Ana bilgisayar tarafından bir arabirimde bant genişliği kullanımını gösteren 'iftop' adlı bir araç da vardır. Bence iftop sizin tarif ettiğiniz şeyi yapabilir ama normalde onun arayüzü 'top' gibi bir şey.

Bu nedenle, örneğin, filtre kodunuzu sağlamak için yapılandırma dosyası oluşturabileceğinizi düşünüyorum.

İşte benim yapılandırma dosyamda filtre kodum.

$ cat /tmp/conf
filter-code: port http and host google.com

Sonra ağ trafiğini görmek için aşağıdakileri çalıştırdım.

$ sudo iftop -c /tmp/conf

Bunun en iyi seçenek olup olmadığından emin değilim ama ihtiyacınız olanı elde etmenin kesinlikle bir yolu. HTH.


3
Filtreyi bir yapılandırma dosyası kullanmadan komut satırında da belirtebilirsiniz:iftop -f 'port 80 and host google.com'
gioele

Toplamda gibi Op 'd bayt transfer bandwidth.Can değil iftopgöstermektedir?
arainone

3

Ayrıca hafif ve basit "iptraf" deneyebilirsiniz. Bağlantı noktasına göre filtreleyebilir ve size yüksek düzeyde bilgi verir, yük verisi vermez, vb.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.