मैं लिनक्स पर एक सीरियल पोर्ट के माध्यम से पैकेट को कैसे सूँघ सकता हूँ?
मैं लिनक्स पर एक सीरियल पोर्ट के माध्यम से पैकेट को कैसे सूँघ सकता हूँ?
जवाबों:
कुछ विकल्प हैं:
sersniff 2 सीरियल पोर्ट के बीच सुरंग / सूँघने का एक सरल प्रोग्राम है।
सीरियल टू नेटवर्क प्रॉक्सी (ser2net) एक उपयोगकर्ता के लिए एक नेटवर्क कनेक्शन से एक सीरियल पोर्ट से कनेक्ट करने का एक तरीका प्रदान करता है।
SerialSpy एक सीरियल पास-थ्रू डिवाइस के रूप में कार्य करता है। यह दो सीरियल पोर्ट पर आने वाले डेटा के लिए सुनता है और इसके बाद यह डिवाइस कार्य करता है जैसे कि वे सीधे जुड़े हुए हैं। यह डेटा को लॉग भी करता है क्योंकि यह बंदरगाहों के माध्यम से आगे बढ़ता है।
sercd एक RFC 2217-compliant सीरियल पोर्ट रिडायरेक्टर है। यह आपको एक नेटवर्क के माध्यम से एक सीरियल पोर्ट साझा करने देता है। यह sredird पर आधारित है। RFC2217 प्रोटोकॉल टेलनेट का विस्तार है और यह संचार पोर्ट मापदंडों को बदलने की अनुमति देता है।
SerLooK धारावाहिक लाइनों पर जा रहे डेटा का निरीक्षण करने के लिए एक केडीई अनुप्रयोग है। यह एक बाइनरी टर्मिनल के रूप में काम कर सकता है जो परिभाषित पोर्ट (प्वाइंट टू प्वाइंट मोड) के माध्यम से डेटा भेजता और प्राप्त करता है और उन्हें अलग-अलग विचारों पर प्रदर्शित करता है। प्रत्येक दृश्य को हेक्साडेसिमल, दशमलव, अष्टक, बाइनरी और कच्चे ASCII में डेटा प्रदर्शित करने के लिए कॉन्फ़िगर किया जा सकता है। टर्मिनल इम्यूलेशन विचारों के माध्यम से I / O प्रदर्शन करना और द्वितीयक पोर्ट को परिभाषित करना और "Y" केबल (स्नूपर मोड) का उपयोग करके दो बाहरी मेजबानों के बीच यातायात की निगरानी करना भी संभव है।
nullmodem छद्म टर्मिनलों का एक आभासी नेटवर्क बनाता है। यह दो कार्यक्रमों को जोड़ने के लिए एक एडेप्टर के रूप में इस्तेमाल किया जा सकता है, जिन्हें आमतौर पर सीरियल इंटरफ़ेस कार्ड की आवश्यकता होती है।
ttywatch मॉनिटर, लॉग और मल्टीप्लेक्स टर्मिनल I / O। इसमें पूर्ण लॉग रोटेशन बनाया गया है, और टेलनेट के साथ-साथ स्थानीय TTY पोर्ट का उपयोग कर सकते हैं।
सीरियल लाइन स्निफर (slsnif) एक सीरियल पोर्ट लॉगिंग यूटिलिटी है। यह निर्दिष्ट सीरियल पोर्ट को सुनता है और दोनों दिशाओं में इस पोर्ट से गुजरने वाले सभी डेटा को लॉग करता है।
socat
और tee
। 1) socat -d -d pty,raw,echo=0 pty,raw,echo=0
। आउटपुट आपको दो पोर्ट देगा ...N PTY is /dev/pts/27... N PTY is /dev/pts/28
। 2) sudo cat /dev/ttyS0 | tee /dev/pts/27
और दूसरे टर्मिनल में sudo cat /deb/pts/27 | tee /dev/ttyS0
। अंत में 3) अपने कार्यक्रम से कनेक्ट करें /dev/tty/28
। दो टी कमांड कंसोल को दोनों दिशाओं को डंप करेंगे और वास्तविक सीरियल पोर्ट से / को आगे करेंगे। ध्यान दें कि बॉड्रेट जैसी पोर्ट सेटिंग्स को समय से पहले कॉन्फ़िगर किया जाना चाहिए।
cat /dev/pts/27 | sudo tee /dev/ttyS0 serial-caps
और xxd
यदि यह एक बाइनरी प्रोटोकॉल है तो मदद करेगा cat /dev/pts/27 | sudo tee /dev/ttyS0 serial-caps | xxd
:।
/deb/pts/27
होना चाहिए /dev/pts/27
। इसके अलावा cat /deb/pts/27 | tee /dev/ttyS0
होना चाहिएcat /dev/pts/27 | sudo tee /dev/ttyS0
मैंने इंटरसेप्ट्टी ( GitHub पर प्रतिलिपि ) की कोशिश की , और इसका उपयोग करने में सफल रहा। पहले मैंने इसे ब्याज के बंदरगाह पर चलाया:
interceptty /dev/ttyACM0
फिर मैंने प्रोग्राम-अंडर-टेस्ट को उस छद्म-टर्मिनल से जोड़ा, /dev/pts/5
जो इंटरसेप्टी ने बनाया था।
मैंने slsnif का उपयोग करने की कोशिश की , लेकिन मैंने पाया कि मुझे एक त्रुटि मिली:
Failed to open a pty: No such file or directory
यह मेलिंग सूची आइटम इंगित करता है कि slsnif केवल "विरासत" छद्म-टर्मिनलों ( /dev/ttyp0
आदि) का समर्थन करता है जो संभवतः वर्तमान लिनक्स कर्नेल पर उपयोग नहीं किए जाते हैं।
interceptty
काम किया और काम किया!
Jpnevulator (डेबियन पैकेज्ड) या स्लस्निफ का उपयोग करके देखें । ध्यान दें कि slsniff एक चित्रित टर्मिनल अनुकरण मॉडल का उपयोग करता है।