लिनक्स पर, मैं कैसे बता सकता हूं कि कौन सी प्रक्रिया ईथरनेट पैकेट भेज रही है?


18

मैं gkrellm चला रहा हूं, जो दर्शाता है कि मेरे डेबियन लिनक्स सिस्टम पर कुछ प्रक्रिया eth0 पर लगभग 500KB / s लिख रही है। मुझे यह पता लगाना है कि यह कौन सी प्रक्रिया है। मैं नेटस्टैट के बारे में थोड़ा बहुत जानता हूं, लेकिन यह एक गज़िलियन ओपन टीसीपी कनेक्शन दिखाता है और मैं इसे ट्रैफ़िक के बारे में कोई जानकारी नहीं दे सकता।

क्या किसी को पता है कि मैं उन प्रक्रियाओं की सूची कैसे प्राप्त कर सकता हूं जो वास्तव में eth0 इंटरफ़ेस का उपयोग कर रहे हैं ताकि मैं अपराधी को ट्रैक कर सकूं?


FOLLOWUP : डेबियन लिनक्स वितरण में एक nethogsपैकेज होता है जो इस समस्या को निश्चित रूप से हल करता है। संबंधित उपकरण है कि निशान पर काफी नहीं हैं शामिल हैं iftop, netstat, और lsof


iptrafअच्छा है
Luv33preet

इसने मेरे लिए बहुत अल्पकालिक यूडीपी एक्सचेंजों के लिए काम किया: serverfault.com/a/683327/119360
Luc

जवाबों:


16

मुझे नेथोग पसंद हैं । यह एक छोटा ncurses- आधारित कंसोल प्रोग्राम है जो प्रति-प्रक्रिया नेटवर्क ट्रैफ़िक स्थिति को सुविधाजनक तरीके से प्रदर्शित करता है।


18

netstat -ptuआप सभी tcp और udp सम्मेलनों के लिए स्वयं की प्रक्रिया आईडी (मानक netstat जानकारी के साथ) देंगे। (सामान्य उपयोगकर्ता सभी प्रक्रियाओं को आईडी नहीं कर पाएंगे।)

यदि कोई चीज निरंतर यातायात की उचित मात्रा में भेज रही है तो आपको उसे क्रमशः 2 Recv-Qया Send-Q3 पर देखना चाहिए ।

उदाहरण:
Recv-Q
sudo watch -n .1 'netstat -tup | grep -E "^[t,u]cp[6]{0,1}" | sort -nr -k2'

Send-Q
sudo watch -n .1 'netstat -tup | grep -E "^[t,u]cp[6]{0,1}" | sort -nr -k3'

यदि आपको संदेह है कि उस प्रक्रिया को किसी अन्य प्रक्रिया द्वारा ट्रिगर किया जा रहा है ps axf


(यदि आप जानते हैं कि आप टीसीपी कनेक्शन की तलाश कर रहे हैं, तो यह
-U

5

यदि आप डेटा भेजने / प्राप्त करने की प्रक्रिया को देख रहे हैं तो एक और मैनुअल ऑपरेशन lsofकमांड चलाने के लिए होगा । यह प्रत्येक प्रक्रिया के लिए सभी खुली फाइलों को सूचीबद्ध करेगा जिसमें नेटवर्क कनेक्शन शामिल होंगे क्योंकि वे ओएस के लिए फ़ाइल विवरणक हैं

यकीन नहीं होता कि यह वही है जो आप ढूंढ रहे हैं।


4

स्थापित करें iftop(सरल पाठ-आधारित) या ntop(चित्रमय)।


1
iftopकेवल एक इंटरफेस पर बैंडविड्थ उपयोग प्रदर्शित करें।
क्वांटा

यह इससे कहीं अधिक दिखाता है। डिफ़ॉल्ट रूप से, यह होस्ट द्वारा इसे तोड़ देता है।
डेविड श्वार्ट्ज

क्या यह उन सभी प्रक्रियाओं को सूचीबद्ध कर सकता है जो एक इंटरफ़ेस का उपयोग कर रहे हैं? यदि हां, तो क्या आप कृपया हमें कमांड और विकल्प दिखा सकते हैं?
क्वांटा

1
प्रत्यक्ष नहीं। लेकिन एक बार जब आप मेजबान पाते हैं, तो आप इस प्रक्रिया को देख सकते हैं, उदाहरण के लिए netstat -pn
डेविड श्वार्ट्ज

3

tcpdumpइस इंटरफ़ेस पर कुछ पैकेट सूँघने के लिए उपयोग करें :

# tcpdump -vv -s0 -i eth0 -c 100 -w /tmp/eth0.pcap

ग्राहक को कॉपी करें और देखें कि क्या होता है।


सरल आँकड़ों को प्राप्त करने का सबसे आसान तरीका नहीं है, लेकिन थोड़ा और भी जटिल और वॉशर्सक चमक जाएगा!
सिल्वरफायर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.