Linux और Windows टर्मिनल पर हेडलेस पैकेट कैप्चर

इस हफ्ते एक XDA लेखक ने Windows 11 पर Wireshark को छोड़ने और pktmon से शुरू करने का मामला बनाया, जो कि बिल्ट-इन पैकेट मॉनिटर है। यह फ्रेमिंग एक बड़ी वास्तविकता से मेल खाता है जिसके साथ ज्यादातर ऑपरेटर जीते हैं: जिस बॉक्स को हमें स्निफ करना है वह शायद ही कभी वह बॉक्स है जिसके सामने हम बैठे हैं। यह Docker कंटेनर, एक अप्रबंधित VPS, एक कोठरी में Raspberry Pi, या केवल SSH खुली OPNsense राउटर हो सकता है। यह हेडलेस पैकेट कैप्चर की समस्या है, और Wireshark का GUI जवाब नहीं है। हमें एक CLI की जरूरत है जो SSH पर काम करता है, बिना निरीक्षण के एक घूमने वाली pcap लिखता है, और BPF फिल्टर को उसी तरह पढ़ता है जैसे Wireshark का कैप्चर इंजन करता है। हमने सात टूल का परीक्षण किया जो Windows और Linux होस्ट पर बिल्कुल ऐसा ही करते हैं, और उन्हें शक्ति के आधार पर रैंक किया है।

हेडलेस पैकेट कैप्चर टूल में क्या खोजें

एक दूरस्थ कैप्चर में डेस्कटॉप की तुलना में अलग-अलग बाधाएं हैं। छह चीजें इसे संभव बनाती हैं:

यह चेकलिस्ट है। अब उपकरण।

त्वरित तुलना

उपकरणसर्वश्रेष्ठप्लेटफॉर्ममुफ्त योजनाशुरुआती मूल्य/महीनारेटिंग
TSharkकमांड लाइन पर पूर्ण Wireshark dissectorsWindows, macOS, Linuxहांमुफ्त5/5
tcpdumpLinux और BSD पर सर्वव्यापी हेडलेस कैप्चरLinux, macOS, BSDहांमुफ्त5/5
pktmonकुछ भी स्थापित किए बिना Windows कैप्चरWindows 10, 11, Server 2019+हांमुफ्त4/5
tcpflowTCP स्ट्रीम को फाइलों में पुनः संरचना करनाLinux, macOSहांमुफ्त4/5
ngrepतार पर grep-शैली पैटर्न मिलानLinux, macOS, Windowsहांमुफ्त4/5
Zeekपैकेट को खोजे जाने योग्य लॉग में बदलनाLinux, macOS, BSDहांमुफ्त4.5/5
TermsharkSSH सत्र के अंदर Wireshark का UILinux, macOS, Windows, BSDहांमुफ्त4/5

उपकरण

1. TShark, कमांड लाइन पर पूर्ण Wireshark dissectors के लिए

TShark Wireshark के साथ आता है और बिल्कुल समान dissector इंजन चलाता है, GUI को छोड़कर। जो भी प्रोटोकॉल Wireshark को डिकोड करता है, TShark stdout को डिकोड करता है, और Wireshark से जो भी प्रदर्शन फिल्टर हम जानते हैं वह शब्दशः काम करता है (-Y "http.request.method == POST"). इसे -i eth0 के साथ एक इंटरफेस पर निर्देशित करें, लिखने के लिए -w capture.pcap जोड़ें, एक पूरे दिन के लिए हर घंटे घुमाने के लिए -b duration:600 -b files:24 जोड़ें, और हमारे पास एक बाइनरी में निरीक्षण रहित कैप्चर और विश्लेषण है।

जहां यह कम पड़ता है: Windows पर इसे Npcap लेने के लिए पूर्ण Wireshark इंस्टॉल की आवश्यकता होती है; स्ट्रिप्ड Linux इमेज पर यह dissector लाइब्रेरी को खींचता है, जो छोटी नहीं हैं। लाइव TLS डिक्रिप्शन को अभी भी keylog फाइल की आवश्यकता है, जैसे GUI।

मूल्य निर्धारण: मुफ्त, ओपन-सोर्स, GPLv2।

प्लेटफॉर्म: Windows, macOS, अधिकांश Linux वितरण, BSD।

डाउनलोड: Wireshark Foundation

निचली पंक्ति: डिफ़ॉल्ट जब हम Wireshark के विंडो के बिना Wireshark की मस्तिष्क चाहते हैं।

2. tcpdump, Linux और BSD पर हेडलेस कैप्चर के लिए

tcpdump वह उपकरण है जो हर Unix होस्ट के पास पहले से है, या इसे प्राप्त करने के लिए एक पैकेज दूर है। tcpdump -i eth0 -w /var/log/capture.pcap -G 3600 -C 200 'tcp port 443' एक घूमने वाली pcap में रिकॉर्ड करता है जिसे हम बाद में खींच सकते हैं और Wireshark, TShark, या नीचे दिए गए किसी भी उपकरण में खोल सकते हैं। इसकी BPF फिल्टर सिंटैक्स Wireshark के कैप्चर फिल्टर से बिल्कुल मेल खाता है, और बाइनरी अधिकांश वितरण पर 2 MB से कम वजन में है।

जहां यह कम पड़ता है: कोई प्रदर्शन फिल्टर नहीं, बिल्ट-इन -vvv मोड के बाहर कोई प्रोटोकॉल डिकोडिंग नहीं। macOS Big Sur और बाद में, कुछ इंटरफेस अतिरिक्त अनुमतियों के बिना लॉक किए जाते हैं।

मूल्य निर्धारण: मुफ्त, ओपन-सोर्स, 3-क्लॉज BSD।

प्लेटफॉर्म: Linux, macOS, FreeBSD, OpenBSD, NetBSD।

डाउनलोड: Tcpdump Group

निचली पंक्ति: किसी भी Unix बॉक्स पर रिफ्लेक्स उत्तर जो हेडलेस चलता है।

3. pktmon, कुछ भी स्थापित किए बिना Windows कैप्चर के लिए

pktmon Packet Monitor है जो Microsoft Windows 10, Windows 11 और Windows Server 2019 और बाद में के साथ भेजता है। pktmon start --capture --pkt-type all --file-size 200 एक ETL फाइल में रिकॉर्ड करता है जिसे हम pktmon pcapng के साथ कन्वर्ट करते हैं (या, पुरानी बिल्डों पर, pktmon etl2txt) और अन्यत्र Wireshark या TShark में खोलते हैं। Server Core बॉक्स, या एक कठोर लैपटॉप जहां एक sniffer स्थापित करना एक परिवर्तन टिकट है, pktmon डिस्क पर पहले से मौजूद उपकरणों के साथ कैप्चर करता है।

जहां यह कम पड़ता है: CLI वर्बोज़ है, इसकी फिल्टर सिंटैक्स BPF के बजाय कंपोनेंट IDs का उपयोग करता है, और ETL-से-pcap चरण एक अतिरिक्त कदम है जो हमें रूपांतरण के लिए Windows मशीन से जोड़ता है।

मूल्य निर्धारण: मुफ्त, Windows के साथ भेजा जाता है।

प्लेटफॉर्म: Windows 10, Windows 11, Windows Server 2019+।

डाउनलोड: Microsoft Learn

निचली पंक्ति: जब होस्ट Windows है और सॉफ्टवेयर इन्वेंटरी को छूना नहीं है।

4. tcpflow, TCP स्ट्रीम को फाइलों में पुनः संरचना के लिए

tcpflow लाइव ट्रैफिक को कैप्चर करता है (या pcap को पढ़ता है) और प्रत्येक पुनर्निर्मित TCP स्ट्रीम को अपनी फाइल में लिखता है, प्रति दिशा में एक फाइल। यह अक्सर वह होता है जो हम वास्तव में चाहते हैं जब सवाल “इस क्लाइंट ने उस सर्वर को क्या भेजा” है और Wireshark में पैकेट के माध्यम से पृष्ठ देखना गलत ऊंचाई है। यह Debian, Ubuntu, Fedora और Homebrew में भेजा जाता है, और इसकी फिल्टर भाषा शुद्ध BPF है।

जहां यह कम पड़ता है: UDP दूसरे दर्जे का नागरिक है; TLS और अन्य एन्क्रिप्टेड स्ट्रीम tcpdump की तरह ciphertext को डंप करते हैं। पुनर्निर्मित फाइलें भी लंबे कैप्चर पर तेजी से बढ़ती हैं।

मूल्य निर्धारण: मुफ्त, ओपन-सोर्स, GPLv3।

प्लेटफॉर्म: Linux, macOS।

डाउनलोड: Simson Garfinkel on GitHub

निचली पंक्ति: जब डिलिवरेबल “HTTP बॉडी” है, “पैकेट ट्रेस” नहीं।

5. ngrep, तार पर grep-शैली पैटर्न मिलान के लिए

ngrep लाइव ट्रैफिक और pcap फाइलों में एक परिचित POSIX-शैली पैटर्न लाता है। ngrep -q -W byline -d eth0 'GET|POST' 'tcp port 80' केवल उन पैकेटों को प्रिंट करता है जिनके पेलोड regex से मेल खाते हैं, इंटरफेस पक्ष को संकीर्ण करने के आसपास BPF फिल्टर के साथ। “क्या क्लाइंट गलत होस्ट हेडर भेज रहा है” या “क्या प्रतिक्रिया में वह त्रुटि स्ट्रिंग है” जैसे त्वरित सवालों के लिए, ngrep प्रदर्शन-फिल्टर जिमनास्टिक को हराता है।

जहां यह कम पड़ता है: यह TLS या HTTP/2 फ्रेमिंग को समझ नहीं पाता, इसलिए कोई भी एन्क्रिप्टेड चीज शोर के रूप में वापस आती है। इसकी रिलीज गति धीमी हो गई है, और जबकि अधिकांश वितरण अभी भी इसे पैकेज करते हैं, कुछ नहीं।

मूल्य निर्धारण: मुफ्त, ओपन-सोर्स, संशोधित BSD।

प्लेटफॉर्म: Linux, macOS, WSL के माध्यम से Windows।

डाउनलोड: ngrep on GitHub

निचली पंक्ति: जब हमारी पहली प्रवृत्ति grep है।

6. Zeek, पैकेट को खोजे जाने योग्य लॉग में बदलने के लिए

Zeek, पूर्व में Bro, कच्चे कैप्चर और पूर्ण IDS के बीच बैठता है। pcap के बजाय, यह प्रोटोकॉल प्रति संरचित लॉग लिखता है (conn.log, dns.log, http.log, ssl.log, x509.log और दर्जनों अन्य) जिन्हें हम grep कर सकते हैं, Splunk या Loki में भेज सकते हैं, या SIEM में फीड कर सकते हैं। एक होम-लैब टैप या मिरर पोर्ट वाले राउटर पर, Zeek हमें हफ्तों का व्यवहार डेटा देता है जो pcap नहीं छू सकता।

जहां यह कम पड़ता है: यह पांच मिनट का इंस्टॉल नहीं है; एक संकलन कदम या एक distro पैकेज प्लस एक हल्का कॉन्फ़िगरेशन पास की अपेक्षा करें। सीखने की वक्र वास्तविक है, और मूल्य दिन दो पर दिखाई देता है, दिन शून्य पर नहीं।

मूल्य निर्धारण: मुफ्त, ओपन-सोर्स, संशोधित BSD।

प्लेटफॉर्म: Linux, macOS, FreeBSD।

डाउनलोड: The Zeek Project

निचली पंक्ति: जब हम हफ्तों बाद सवालों का जवाब देना चाहते हैं, आज पैकेट को देखने के लिए नहीं।

7. Termshark, SSH सत्र के अंदर Wireshark के UI के लिए

Termshark TShark के लिए एक टर्मिनल फ्रंटएंड है। pcap खोलें या लाइव इंटरफेस से जुड़ें और हमें एक परिचित पैकेट सूची, प्रोटोकॉल ट्री और hex pane मिलता है, सभी पहले से खुले टर्मिनल में प्रस्तुत किए जाते हैं। यह SSH पर, tmux पर, हेडलेस VM में सीरीज कंसोल पर काम करता है, जहां TTY सब कुछ है जो हमारे पास है।

जहां यह कम पड़ता है: 80 कॉलम में लेआउट तंग हो जाता है, और बहुत उच्च पैकेट-प्रति-सेकंड लिंक पर लाइव कैप्चर UI में पिछड़ सकते हैं। यह एक व्यूअर है, स्क्रिप्टेड संग्रह का प्रतिस्थापन नहीं।

मूल्य निर्धारण: मुफ्त, ओपन-सोर्स, MIT।

प्लेटफॉर्म: Linux, macOS, Windows, FreeBSD।

डाउनलोड: Termshark

निचली पंक्ति: हेडलेस बॉक्स पर Wireshark का जितना करीब हम पहुंचते हैं।

कैसे चुनें

FAQ

एक Windows सर्वर के लिए सर्वश्रेष्ठ हेडलेस पैकेट कैप्चर टूल क्या है?

Windows Server 2019 और बाद में pktmon। यह OS के साथ आता है, ETW लेयर पर कैप्चर करता है, अपने आप को घुमाता है, और वर्तमान बिल्डों पर सीधे pcapng को आउटपुट करता है। जब हमें Wireshark के dissectors की आवश्यकता होती है, तो हम फाइल को कन्वर्ट करते हैं और इसे वर्कस्टेशन पर TShark में खोलते हैं।

क्या हम TShark या tcpdump को बिना root के चला सकते हैं?

Linux पर हां, बाइनरी पर setcap cap_net_raw,cap_net_admin+eip के साथ। यह कैप्चर विशेषाधिकार को एक विशिष्ट निष्पादन योग्य देता है बिना कॉलर को पूर्ण root दिए। BSD पर, उपयोगकर्ता को समूह में जोड़ें जो bpf उपकरणों के मालिक हैं। Windows पर, TShark को Npcap के साथ बात करने के लिए Administrator की आवश्यकता है।

हम कैप्चर को कैसे घुमाते हैं ताकि एक लंबे समय तक चलने वाला सत्र डिस्क को न भरे?

tcpdump समय-आधारित रोटेशन के लिए -G <seconds> और आकार-आधारित के लिए -C <MB> का उपयोग करता है, -W <count> के साथ जुड़ा हुआ है कि कितनी फाइलें रखी जाती हैं। TShark -b duration: और -b filesize: के माध्यम से समान उजागर करता है। pktmon को --file-size और इसके परिपत्र लॉग मोड के साथ सीमित किया जाता है। Zeek अपने आप में एक निश्चित शेड्यूल पर अपने लॉग को घुमाता है।

क्या Wireshark की प्रदर्शन फिल्टर भाषा tcpdump सिंटैक्स जैसी है?

नहीं। tcpdump और TShark की कैप्चर फिल्टर (-f) BPF सिंटैक्स का उपयोग करती है (tcp port 443 and host 10.0.0.1)। Wireshark और TShark की प्रदर्शन फिल्टर (-Y) एक अलग भाषा है (tcp.port == 443 && ip.addr == 10.0.0.1)। दोनों सीखने के लायक हैं; कैप्चर-पक्ष फिल्टर कर्नेल गति पर चलता है, प्रदर्शन-पक्ष पहले से कैप्चर किए गए पैकेट पर चलता है।

क्या pktmon पूरी तरह से Wireshark को बदल सकता है?

नहीं। pktmon एक कैप्चर टूल है, विश्लेषक नहीं। यह ETL में रिकॉर्ड करता है, नई बिल्डों पर pcapng में परिवर्तित करता है, और रुकता है। TLS हैंडशेक, HTTP/2 स्ट्रीम या QUIC को डिकोड करने के लिए, हम अभी भी परिणामी pcap को Wireshark या TShark में खोलते हैं। दोनों एक-दूसरे की पूरक हैं, प्रतिस्थापन नहीं।

उत्पादन होस्ट पर इन उपकरणों को चलाना क्या सुरक्षित है?

हां, उचित देखभाल के साथ। पैकेट कैप्चर निष्क्रिय है और ट्रैफिक को संशोधित नहीं करता है, लेकिन एक व्यस्त लिंक पर CPU लागत शून्य नहीं है, और pcap फाइलें तेजी से बढ़ सकती हैं। एक रोटेशन नीति के साथ डिस्क को सीमित करें, CPU को सीमित करने के लिए BPF फिल्टर को सीमित करें, और जहां जोखिम प्रोफाइल महत्वपूर्ण है, वहां इनलाइन कैप्चर के ऊपर मिरर पोर्ट या टैप को प्राथमिकता दें।