पोर्ट पर IP पते से / को हस्तांतरित बाइट्स की मॉनिटर संख्या


19

स्थानीय सर्वर और निर्दिष्ट IP पते / पोर्ट के बीच स्थानांतरित बाइट्स की संख्या की निगरानी के लिए क्या कोई भी linux कमांड लाइन टूल की सिफारिश कर सकता है।

समतुल्य tcpdump कमांड होगा:

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

कौन से आउटपुट:

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

मुझे कुछ ऐसा ही चाहिए जो आउटपुट देता है:

54 bytes out, 176 bytes in

मैं चाहूंगा कि यह आरएचईएल पर काम करे और मुक्त / खुला स्रोत हो। यह अच्छा होगा यदि कोई मौजूदा उपकरण था जो मैं अभी भी गायब था!

जवाबों:


14

आप iptables का उपयोग कर सकते हैं। यदि आप पहले से इसका उपयोग नहीं कर रहे हैं, तो आप एक खुले स्वीकार कॉन्फ़िगरेशन का उपयोग कर सकते हैं, लेकिन गिनती करने के लिए एक नियम है।

उदाहरण के लिए, RHEL पर आपकी /etc/sysconfig/iptablesफ़ाइल कुछ इस तरह दिख सकती है:

*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 होस्ट है: जिस पोर्ट पर आप ट्रैफ़िक गिनना चाहते हैं (आप होस्टनाम का उपयोग नहीं कर सकते हैं)। तब आप कमांड के साथ गिने हुए ट्रैफ़िक iptables -nvxLको रूट के रूप में जाँच सकते हैं ।

उदाहरण आउटपुट:

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
यह भी लक्ष्य के बिना एक नियम के लिए पूरी तरह से कानूनी है, केवल गिनती के उद्देश्यों के लिए, जैसे कि iptables-एक INPUT -d 1.2.3.4 -p tcp --dport 3456। यह ट्रैफ़िक के लिए कुछ भी नहीं करेगा, क्योंकि कोई "-जे" तर्क नहीं है, लेकिन प्रत्येक मिलान पैकेट मायने रखता है।
मैडहेटर

9

मैं वायरशार्क का सुझाव देने वाला था (क्योंकि यह कई ' वार्तालाप ' सुविधाएँ है), लेकिन यह कमांड-लाइन टूल नहीं है। हालांकि आप क्षार की कोशिश कर सकते हैं , जो एक कमांड-लाइन विश्लेषक उपकरण है जो कि वायरशार्क के करीब है। आउटपुट में (कुछ) होना चाहिए जो आप देख रहे हैं (उदाहरण के लिए नीचे):

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

परिणाम:

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

7

एक उपकरण भी है, जिसे 'iftop' कहा जाता है, जो होस्ट द्वारा इंटरफ़ेस पर बैंडविड्थ उपयोग प्रदर्शित करता है। मुझे लगता है कि अगर आप ऐसा वर्णित करते हैं, लेकिन आमतौर पर इसका इंटरफ़ेस 'टॉप' जैसा होता है।

तो आपके उदाहरण के लिए, मुझे लगता है कि आप अपने फ़िल्टर-कोड को प्रदान करने के लिए बस कॉन्फ़िगर फ़ाइल बना सकते हैं।

तो यहाँ मेरी config फाइल में मेरा फ़िल्टर-कोड है।

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

फिर, मैंने नेटवर्क ट्रैफ़िस को देखने के लिए निम्न भाग लिया।

$ sudo iftop -c /tmp/conf

यकीन नहीं होता है कि यह सबसे अच्छा विकल्प है, लेकिन निश्चित रूप से एक तरीका है जो आपको चाहिए। HTH।


3
आप बिना iftop -f 'port 80 and host google.com'
कॉन्फिगर

कुल हस्तांतरित बाइट्स की तरह, नहीं बैंडविड्थ। iftopकि दिखा सकते हैं?
हवालात

3

तुम भी "iptraf" की कोशिश कर सकते हैं यह हल्का और सरल है। यह पोर्ट द्वारा फ़िल्टर कर सकता है और आपको उच्च स्तर की जानकारी, कोई पेलोड डेटा आदि नहीं देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.