Wireshark হল একটি শীর্ষস্থানীয় ওপেন-সোর্স নেটওয়ার্ক ট্রাফিক বিশ্লেষক, যা রিয়েল-টাইমে প্যাকেট ক্যাপচার ও পরীক্ষার জন্য ব্যবহৃত হয়। টুলটি দুই হাজারেরও বেশি নেটওয়ার্ক প্রোটোকল সমর্থন করে এবং সব প্রধান প্ল্যাটফর্মে কাজ করে। Wireshark User Guide (2026)-এর মতে, ইউটিলিটিটি মোবাইল ও ওয়েব ডেভেলপমেন্টে নেটওয়ার্ক ডায়াগনস্টিকস, API ডিবাগিং এবং নিরাপত্তা বিশ্লেষণের জন্য ব্যবহৃত হয়।
মূল বিষয়
Wireshark একটি ওপেন-সোর্স প্রোগ্রাম (GPLv2) যা কম্পিউটারের নেটওয়ার্ক ইন্টারফেসের মধ্য দিয়ে যাওয়া ডেটা প্যাকেট ক্যাপচার করে। এটি OSI মডেলের ডেটা-লিংক লেয়ারে ক্যাপচারের জন্য libpcap (Unix) বা Npcap (Windows) লাইব্রেরির ওপর ভিত্তি করে তৈরি।
সাধারণ মোডে নেটওয়ার্ক কার্ড কেবল তার MAC ঠিকানায় নির্দেশিত ফ্রেম গ্রহণ করে। Wireshark ইন্টারফেসটিকে promiscuous (অবৈষম্যহীন) মোডে নিয়ে যায়, যেখানে সিস্টেম গন্তব্য নির্বিশেষে সব পাস করা ফ্রেম প্রসেস করে। ক্যাপচার করা ডেটা raw socket-এর মাধ্যমে কার্নেলে পাঠানো হয়, এরপর libpcap লাইব্রেরি বিশ্লেষণের জন্য তা ইউজার স্পেসে কপি করে।
Wireshark একটি মডুলার আর্কিটেকচার ব্যবহার করে: প্রতিটি প্রোটোকল একটি আলাদা ডিসেক্টর — প্লাগইন হিসেবে বাস্তবায়িত, যা বাইনারি ডেটা পার্স করে এবং তা কাঠামোবদ্ধ আকারে প্রদর্শন করে। ২০২৬ সালের হিসাবে প্রোগ্রামে HTTP/2, QUIC, gRPC ও MQTT সহ ২ ৮৭৪টি প্রোটোকল-এর জন্য ডিসেক্টর বাস্তবায়িত হয়েছে। ডিসেক্টররা প্রোটোকল ট্রি সিস্টেমের মাধ্যমে কাজ করে — প্রতিটি প্যাকেট স্তরে স্তরে পার্স হয়: ইথারনেট ফ্রেম থেকে অ্যাপ্লিকেশন লেয়ার পর্যন্ত।
// কাস্টম প্রোটোকলের জন্য একটি সহজ ডিসেক্টরের উদাহরণ
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 ডিসেক্টর বাইনারি ফিল্ডগুলোকে 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 পুরো প্যাকেটে স্ট্রিং বা হেক্স সিকোয়েন্স খোঁজে। উদাহরণ: frame contains "password" যেকোনো ফিল্ডে password সাবস্ট্রিংসহ প্যাকেট খুঁজে পাবে। ফিল্ড অনুযায়ী সঠিক খোঁজের জন্য http.request.uri contains "api" ব্যবহার করুন।
উপসংহার
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন