Wireshark एक अग्रणी ओपन-सोर्स नेटवर्क ट्रैफिक विश्लेषक है, जिसका उपयोग रीयल-टाइम में पैकेट कैप्चर और निरीक्षण के लिए किया जाता है। यह टूल दो हज़ार से अधिक नेटवर्क प्रोटोकॉल का समर्थन करता है और सभी प्रमुख प्लेटफ़ॉर्म पर काम करता है। Wireshark User Guide (2026) के अनुसार, यह उपयोगिता मोबाइल और वेब डेवलपमेंट में नेटवर्क निदान, API डिबगिंग और सुरक्षा विश्लेषण के लिए उपयोग की जाती है।
मुख्य बातें
Wireshark एक ओपन-सोर्स प्रोग्राम (GPLv2) है जो कंप्यूटर के नेटवर्क इंटरफ़ेस से गुज़रने वाले डेटा पैकेट को कैप्चर करता है। यह OSI मॉडल की डेटा-लिंक लेयर पर कैप्चर के लिए libpcap (Unix) या Npcap (Windows) लाइब्रेरी पर आधारित है।
सामान्य मोड में नेटवर्क कार्ड केवल उन्हीं फ़्रेम को प्राप्त करता है जो उसके MAC पते पर निर्देशित होते हैं। Wireshark इंटरफ़ेस को promiscuous (अविवेचक) मोड में बदल देता है, जिसमें सिस्टम प्राप्तकर्ता की परवाह किए बिना सभी गुज़रने वाले फ़्रेम को संसाधित करता है। कैप्चर किया गया डेटा raw socket के माध्यम से कर्नेल में भेजा जाता है, जिसके बाद libpcap लाइब्रेरी इसे विश्लेषण के लिए यूज़र स्पेस में कॉपी करती है।
Wireshark एक मॉड्यूलर आर्किटेक्चर का उपयोग करता है: प्रत्येक प्रोटोकॉल एक अलग dissector — प्लगइन के रूप में लागू किया जाता है, जो बाइनरी डेटा को पार्स करता है और इसे संरचित रूप में प्रदर्शित करता है। वर्ष 2026 तक प्रोग्राम में HTTP/2, QUIC, gRPC और MQTT सहित 2,874 प्रोटोकॉल के लिए dissectors लागू किए गए हैं। Dissectors प्रोटोकॉल ट्री सिस्टम के माध्यम से काम करते हैं — प्रत्येक पैकेट को परत दर परत पार्स किया जाता है: Ethernet फ़्रेम से लेकर एप्लिकेशन लेयर तक।
// कस्टम प्रोटोकॉल के लिए सरल डिसेक्टर का उदाहरण
static int dissect_custom(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree, void *data) {
proto_item *ti = proto_tree_add_item(tree, hf_custom_field,
tvb, 0, tvb_captured_length(tvb), ENC_NA);
return 0;
}
Wireshark का ग्राफिकल इंटरफ़ेस तीन पैनलों में विभाजित है: पैकेट सूची (packet list), प्रोटोकॉल विवरण (packet details) और हेक्स-डंप (packet bytes)। प्रत्येक पैनल रीयल-टाइम में अपडेट होता है और इंटरैक्टिव नेविगेशन का समर्थन करता है — पैकेट की पंक्ति पर क्लिक करने से उसकी पूरी संरचना खुल जाती है।
यह टूल pcap, pcapng, snoop और NetMon प्रारूपों में कैप्चर फ़ाइलें पढ़ता है। JSON, XML, CSV और सादे टेक्स्ट में निर्यात संभव है। मुख्य एप्लिकेशन-लेयर प्रोटोकॉल में — HTTP/HTTPS, DNS, DHCP, TCP, UDP, TLS, QUIC, WebSocket, MQTT, AMQP और Protobuf शामिल हैं। मोबाइल डेवलपमेंट के लिए स्ट्रीम मल्टीप्लेक्सिंग के साथ gRPC और HTTP/2 का समर्थन विशेष रूप से महत्वपूर्ण है।
अंतर्निहित उपयोगिताओं में Follow Stream (पूर्ण TCP/UDP/TLS संवाद की पुनर्निर्माण), IO Graph (थ्रूपुट चार्ट), वार्तालाप सांख्यिकी (Conversations) और प्रोटोकॉल पदानुक्रम (Protocol Hierarchy) शामिल हैं। Flow Graph सुविधा नोड्स के बीच पैकेट के अनुक्रम को विज़ुअलाइज़ करती है, जिससे क्लाइंट-सर्वर इंटरैक्शन की डिबगिंग में देरी के कारणों को खोजना आसान हो जाता है।
कैप्चर की शुरुआत नेटवर्क इंटरफ़ेस के चयन से होती है — Ethernet, Wi-Fi, Bluetooth PAN या Loopback। Windows पर WinPcap API Compatible Mode में Npcap इंस्टॉल करने की आवश्यकता हो सकती है। मोबाइल डिवाइस पर कैप्चर के लिए SSH टनल के माध्यम से Remote Packet Capture का उपयोग किया जाता है।
Android डिवाइस पर ट्रैफिक tcpdump या PCAPdroid के माध्यम से कैप्चर किया जाता है, और फिर फ़ाइल को कार्य कंप्यूटर पर स्थानांतरित किया जाता है। ADB के माध्यम से दूरस्थ कैप्चर के लिए कमांड:
# ADB shell के माध्यम से Android पर ट्रैफिक कैप्चर
adb shell tcpdump -i wlan0 -s 0 -w /sdcard/capture.pcap
# कंप्यूटर पर कॉपी करना
adb pull /sdcard/capture.pcap .
Windows पर localhost (127.0.0.1) ट्रैफिक भौतिक इंटरफ़ेस से नहीं गुज़रता, इसलिए Wireshark इसे सीधे नहीं देख पाता। समाधान — Loopback Support विकल्प के साथ Npcap इंस्टॉल करना या RawCap के माध्यम से ट्रैफिक को पुनर्निर्देशित करना। Linux और macOS पर loopback इंटरफ़ेस (lo) अतिरिक्त सेटिंग्स के बिना कैप्चर हो जाता है।
Wireshark दो प्रकार के फ़िल्टर प्रदान करता है: capture filters (कैप्चर से पहले, libpcap स्तर पर लागू होते हैं) और display filters (पहले से कैप्चर किए गए डेटा पर लागू होते हैं)। Capture filters BPF (Berkeley Packet Filter) सिंटैक्स का उपयोग करते हैं, display filters — ऑटो-कंप्लीशन के साथ Wireshark की अपनी भाषा।
BPF फ़िल्टर tcpdump प्रारूप में लिखे जाते हैं और कर्नेल में निष्पादित होते हैं, जिससे उच्च भार के तहत पैकेट हानि कम होती है। फ़िल्टर के उदाहरण:
| फ़िल्टर | उद्देश्य |
|---|---|
| tcp port 80 | केवल मानक पोर्ट पर HTTP ट्रैफिक |
| host 192.168.1.1 | किसी विशिष्ट होस्ट के पैकेट |
| not arp | ARP अनुरोधों को छोड़कर सभी पैकेट |
Display filters पश्चात लागू किए जाते हैं और लॉजिकल ऑपरेटरों and, or, not के साथ जटिल शर्तों का समर्थन करते हैं। उदाहरण: http.request.method == "POST" and ip.src == 192.168.0.100 किसी विशिष्ट IP से केवल POST अनुरोधों को फ़िल्टर करेगा। पुनः उपयोग के लिए फ़िल्टर को पसंदीदा के रूप में सहेजा जा सकता है।
HTTP ट्रैफिक Wireshark में पठनीय रूप में प्रदर्शित होता है: अनुरोध विधि, URI, हेडर और प्रतिक्रिया का मुख्य भाग। Follow TCP Stream फ़ंक्शन क्लाइंट और सर्वर का पूरा संवाद एक विंडो में एकत्र करता है। HTTPS के लिए TLS सत्रों के डिक्रिप्शन की आवश्यकता होती है, क्योंकि सामग्री एन्क्रिप्टेड होती है।
Chrome और Firefox ब्राउज़र SSLKEYLOGFILE पर्यावरण चर का समर्थन करते हैं, जो TLS सत्र कुंजियों को एक टेक्स्ट फ़ाइल में लिखता है। Wireshark इस फ़ाइल का उपयोग रिकॉर्ड को डिक्रिप्ट करने के लिए करता है। सेटिंग Preferences → Protocols → TLS → (Pre)-Master-Secret log filename के माध्यम से की जाती है।
# TLS कुंजियों के लॉग के साथ Chrome लॉन्च करना
export SSLKEYLOGFILE=/tmp/sslkeys.log
google-chrome .
# कैप्चर के बाद Wireshark में पथ निर्दिष्ट करें
# Edit → Preferences → Protocols → TLS → Log Filename
gRPC परिवहन के रूप में HTTP/2 और डेटा सीरियलाइज़ेशन के लिए Protobuf का उपयोग करता है। Wireshark gRPC संदेशों को डिक्रिप्ट करता है, यदि संरचना परिभाषाओं के साथ .proto फ़ाइल प्रदान की जाए। Protobuf dissector बाइनरी फ़ील्ड को proto फ़ाइल के नामों से मैप करता है, जो माइक्रोसर्विस आर्किटेक्चर की डिबगिंग में महत्वपूर्ण है।
Wireshark के माध्यम से मोबाइल डिबगिंग के लिए डिवाइस के ट्रैफिक को कंप्यूटर पर प्रॉक्सी करना आवश्यक है। सबसे विश्वसनीय तरीका — लैपटॉप पर Wi-Fi एक्सेस पॉइंट बनाना और NAT के माध्यम से ट्रैफिक को पुनर्निर्देशित करना। Android पर root अधिकारों के बिना PCAPdroid ऐप के साथ VPN विधि भी उपलब्ध है।
PCAPdroid एक स्थानीय VPN सेवा बनाता है जो ऐप्स के ट्रैफिक को UDP स्ट्रीम के माध्यम से Wireshark पर पुनर्निर्देशित करती है। ऐप को root-एक्सेस की आवश्यकता नहीं होती और यह अलग-अलग प्रक्रियाओं के आधार पर फ़िल्टरिंग का समर्थन करता है। प्राप्त pcap फ़ाइलें पूर्ण विश्लेषण के लिए Wireshark में खोली जाती हैं।
# कंप्यूटर पर PCAPdroid से ट्रैफिक प्राप्त करना
# PCAPdroid → Settings → PCAP dumper → UDP Exporter
nc -l -u 192.168.0.10 12345 > capture.pcap
Wireshark एक सार्वभौमिक उपकरण है, लेकिन विशिष्ट कार्यों के लिए अधिक विशेषीकृत समाधान मौजूद हैं। tcpdump बिना ग्राफिक्स के सर्वर कैप्चर के लिए अधिक प्रभावी है, Charles Proxy HTTPS ट्रैफिक विश्लेषण के लिए अधिक सुविधाजनक है, और Fiddler — चलते-फिरते अनुरोधों को संशोधित करने की क्षमता के साथ वेब ट्रैफिक निरीक्षण के लिए उपयुक्त है।
Charles Proxy अपनी स्वयं की SSL सर्टिफिकेशन के माध्यम से HTTPS को इंटरसेप्ट करने की क्षमता के साथ एक मध्यवर्ती प्रॉक्सी सर्वर के रूप में कार्य करता है। Wireshark के विपरीत, Charles को SSLKEYLOGFILE सेटिंग की आवश्यकता नहीं होती और यह ट्रैफिक को न केवल देख सकता है, बल्कि संशोधित भी कर सकता है — प्रतिक्रियाओं को बदलना, देरी का अनुकरण करना और अनुरोधों को दोहराना।
Fiddler .NET पारिस्थितिकी तंत्र में लोकप्रिय एक और प्रॉक्सी उपकरण है। यह एक अंतर्निहित अनुरोध संपादक, मॉक्स के लिए AutoResponder समर्थन और कस्टम अनुरोध बनाने के लिए कंपोज़र प्रदान करता है। Fiddler ब्राउज़र के वेब ट्रैफिक विश्लेषण के लिए अधिक उपयुक्त है, Wireshark — निम्न-स्तरीय नेटवर्क विश्लेषण के लिए।
| उपकरण | प्रकार | बिना कुंजियों HTTPS | ट्रैफिक संशोधन |
|---|---|---|---|
| Wireshark | स्निफर | नहीं (SSLKEYLOGFILE चाहिए) | केवल देखना |
| Charles | प्रॉक्सी | हाँ (कस्टम सर्टिफिकेट) | हाँ |
| Fiddler | प्रॉक्सी | हाँ (कस्टम सर्टिफिकेट) | हाँ |
| tcpdump | स्निफर | नहीं | केवल देखना |
Wireshark के लिए ट्रैफिक कैप्चर के बुनियादी सिद्धांतों की समझ आवश्यक है। सामान्य परिदृश्यों में से एक — tcp.analysis.ack_rtt फ़िल्टर के माध्यम से मोबाइल ऐप में देरी के स्रोत की खोज। धीमे HTTP अनुरोधों को खोजने के लिए http.time 1 से बड़ा वाली शर्त का उपयोग करें।
धीमे HTTP अनुरोधों को खोजने के लिए http.time 1 से बड़ा फ़िल्टर करें — Wireshark 1 सेकंड से अधिक प्रतिक्रिया समय वाले अनुरोध दिखाएगा। किसी विशिष्ट सर्वर के विश्लेषण के लिए ip.addr के साथ जोड़ें। 1 सेकंड अंतराल वाला IO Graph लोड के शिखर को स्पष्ट रूप से दिखाएगा।
Wireshark File मेनू के माध्यम से CSV, JSON और XML में निर्यात का समर्थन करता है। स्वचालित विश्लेषण के लिए tshark का उपयोग करें — कंसोल संस्करण जो CI/CD पाइपलाइनों में काम करता है। Tshark समान फ़िल्टर और आउटपुट प्रारूपों का समर्थन करता है जैसे ग्राफिकल संस्करण।
Wireshark के लिए ट्रैफिक कैप्चर के बुनियादी सिद्धांतों की समझ आवश्यक है। सामान्य परिदृश्यों में से एक — tcp.analysis.ack_rtt फ़िल्टर के माध्यम से मोबाइल ऐप में देरी के स्रोत की खोज। धीमे HTTP अनुरोधों को खोजने के लिए http.time 1 से बड़ा वाली शर्त का उपयोग करें।
धीमे HTTP अनुरोधों को खोजने के लिए http.time 1 से बड़ा फ़िल्टर करें — Wireshark 1 सेकंड से अधिक प्रतिक्रिया समय वाले अनुरोध दिखाएगा। किसी विशिष्ट सर्वर के विश्लेषण के लिए ip.addr के साथ जोड़ें। 1 सेकंड अंतराल वाला IO Graph लोड के शिखर को स्पष्ट रूप से दिखाएगा।
Wireshark File मेनू के माध्यम से CSV, JSON और XML में निर्यात का समर्थन करता है। स्वचालित विश्लेषण के लिए tshark का उपयोग करें — कंसोल संस्करण जो CI/CD पाइपलाइनों में काम करता है। Tshark समान फ़िल्टर और आउटपुट प्रारूपों का समर्थन करता है जैसे ग्राफिकल संस्करण।
अक्सर पूछे जाने वाले प्रश्न
Wireshark पैकेट विज़ुअलाइज़ेशन, अंतर्निहित फ़िल्टर और सांख्यिकी के साथ एक ग्राफिकल इंटरफ़ेस प्रदान करता है। tcpdump — GUI के बिना एक कंसोल उपयोगिता है, जो SSH के माध्यम से सर्वर कैप्चर के लिए सुविधाजनक है। Wireshark tcpdump फ़ाइलों को पढ़ सकता है और इसके विपरीत।
डिक्रिप्शन के लिए TLS सत्र कुंजियों की फ़ाइल (SSLKEYLOGFILE) आवश्यक है। Chrome और Firefox पर्यावरण चर के साथ लॉन्च होने पर कुंजियों को निर्यात करते हैं। फ़ाइल का पथ Wireshark में Protocols → TLS सेटिंग्स में दर्शाया जाता है।
Windows पर Loopback-ट्रैफिक डिफ़ॉल्ट रूप से Npcap ड्राइवर से नहीं गुज़रता। समाधान — Loopback Support विकल्प के साथ Npcap इंस्टॉल करना या स्थानीय ट्रैफिक कैप्चर के लिए RawCap उपयोगिता का उपयोग करना।
हाँ, ट्रैफिक को कंप्यूटर पर प्रॉक्सी करके। Android PCAPdroid (बिना root) या tcpdump (root के साथ) के माध्यम से कैप्चर का समर्थन करता है। iOS के लिए कैप्चर हेतु macOS के माध्यम से RVI (Remote Virtual Interface) या jailbreak आवश्यक है।
Display filter frame contains पूरे पैकेट में स्ट्रिंग या hex अनुक्रम खोजता है। उदाहरण: frame contains "password" किसी भी फ़ील्ड में password सबस्ट्रिंग वाले पैकेट ढूंढेगा। फ़ील्ड के आधार पर सटीक खोज के लिए http.request.uri contains "api" का उपयोग करें।
निष्कर्ष
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें