Tcpdump का उपयोग करके पैकेट के अंतिम N सेकंड पर कैसे कब्जा करें


14

मैं tcpdump का उपयोग करके पैकेट के अंतिम N सेकंड को कैसे पकड़ सकता हूं?


1
"मुझे दे दो" आपको यहाँ तक नहीं ले जाएगा। हो सकता है कि आपने हमें दिखाया हो कि आपने अभी तक क्या प्रयास किया है और कहाँ वास्तव में आपको समस्याएँ हैं, आप स्वयं को हल नहीं कर सकते।
मथियास क्रुल

बैश कमांड जो आप चाहते हैं वह है: "मैन टैक्स्डंप"
विलियम पर्ससेल

जवाबों:


15

यदि आप चाहते हैं कि tcpdump n सेकंड तक चले और फिर छोड़ दिया जाए, तो आप टाइमआउट का उपयोग कर सकते हैं।

उदाहरण के लिए:

timeout 2 tcpdump -eni mon0

अन्यथा मुझे नहीं लगता कि tcpdump के पास ऐसा करने का विकल्प है।


दुर्भाग्य से टाइमआउट कमांड CentOS 5.x में मौजूद नहीं है। कोरुटिल्स की एक नई रिलीज़ में इसे जोड़ा गया था। ओएस को अपग्रेड करने के लिए मेरे लिए एक और प्रेरणा।
Mister_Tom

मुझे लगता है कि अगर आपके पास टाइमआउट नहीं है, तो आप स्क्रिप्ट के साथ टाइमआउट जैसा कुछ बना सकते हैं:
siesta

मेरे लिए बहुत अच्छा काम करता है। मैंने इसका उपयोग किसी प्रोग्राम के लिए सभी ट्रैफ़िक पर नज़र रखने के लिए किया था जो काम नहीं कर रहा था। मैंने N सेकंड के टाइमआउट के साथ tcpdump शुरू किया। फिर मैंने कार्यक्रम शुरू किया (जो एन सेकंड तक ले जाता है)।
ट्रेवर बॉयड स्मिथ

प्रश्न अंतिम एन सेकंड को पकड़ने के लिए कहता है । आपका उत्तर बताता है कि पहले N सेकंड पर कब्जा कैसे करें ।
10

3

मुझे लगता है कि इसे पूरा करने का सबसे अच्छा तरीका tcpdump -G फ्लैग के साथ है, जो कि -w के साथ प्रयोग किए जाने पर, आपके डंप को हर N सेकंड में एक नई फ़ाइल में बचाएगा। उदाहरण के लिए:

tcpdump -w आउटफिट-% s -G 10

यह 'आउटफाइल-एक्सएक्सएक्सएक्स' (जहां XXXX सेकंड के बाद से सेकंड की संख्या का प्रतिनिधित्व करता है) के नाम के साथ एक नई फ़ाइल बनाएगा।

अतिरिक्त विवरण के लिए मैन पेज tcpdump (8) और स्ट्रैफ़टाइम (3) देखें।


tcpdump 3.9.4 के रूप में CentOS 5.10 के साथ भेजना -G विकल्प नहीं है। मुझे वास्तव में अपने ओएस को अपग्रेड करने की आवश्यकता है।
Mister_Tom

-G tcpdump कमांड को बंद नहीं करता है। यह अभी भी हमेशा के लिए चलता है। टाइमआउट 2 tcpdump 2 सेकंड के बाद कमांड को रोक देगा।
सिसरॉन

@ciceron: सवाल tcpdump को रोकने के बारे में नहीं था। यह अंतिम एन सेकंड पर कब्जा करने के बारे में था । आपका सुझाव पहले N सेकंड को कैप्चर करेगा । ओपी ने जो मांगा था, वह तय नहीं।
फ्लिमज़ी

1

आप tcpdump के बजाय tethereal का उपयोग कर सकते हैं। आप इस कमांड-लाइन विकल्प का उपयोग कर सकते हैं:

-a duration:X

हालांकि यह प्रश्न का उत्तर दे सकता है, यह एक बेहतर उत्तर होगा यदि आप कुछ स्पष्टीकरण प्रदान कर सकते हैं कि यह ऐसा क्यों करता है।
DavidPostill

tcpdump ही समय-सीमित पैकेट ट्रेस के लिए अनुमति नहीं देता है, लेकिन tshark करता है। (जब से यह सवाल पूछा गया था और उत्तर दिया गया था, ईथर tshark -a duration:600 -i eth0 -w $(hostname).10mins.pcapव्यर्थ हो गया) इंटरफ़ेस एथे से फाइल (होस्टनाम) .10mins.pcap
एंड्रयू बील्स

0

tcpdump options -w new.tcpdump

ps -ef |grep tcpdump

पीआईडी ​​पर ध्यान दें, तो कहें कि यह 11193 है

at 11:00 kill 11193

अब बस 11:00 बजे का इंतजार करना होगा और आपका कब्जा मार दिया जाएगा लेकिन बच जाएगा


fwiw pgrep ps के लिए एक बेहतर विकल्प है। grep; विशेष रूप से यहाँ।
गुड पर्सन

0

मैं उसी मुद्दे को हल करने की कोशिश कर रहा था, इसलिए मैंने n सेकंड के लिए tcpdump चलाने के लिए एक पोर्टेबल स्क्रिप्ट लिखी।

#tcpdump_for_n_sec.sh
n=$1
shift #remove first arg from $@ 
tcpdump $@ & x=$!
sleep $n
kill $x

उपयोग ./tcpdump_for_n_sec.sh सेकंड tcpdump के लिए आता है

./tcpdump_for_n_sec.sh 5 i- any not port 22 -s0 -wfile.pcap

0

सुडोकू tcpdump -i -w और यह चलेगा tcpdump स्लीपिंग मोड है

  • w: आउटपुट को .pcap फ़ाइल में सहेजें और: tcpdump प्रक्रिया स्लीपिंग मोड नोट में चलेगी: सुनिश्चित करें कि आपके पास पर्याप्त स्थान उपलब्ध है यदि आप चाहते हैं। थोड़ी देर के लिए इसे चलाने के लिए। जब तक आप इस प्रक्रिया को नहीं मारते तब तक यह बाधित नहीं होगा।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.