Wireshark — تحلیلگر پیشرو ترافیک شبکه با کد منبع باز است که برای رهگیری و بازرسی بستهها در زمان واقعی استفاده میشود. این ابزار بیش از دو هزار پروتکل شبکه را پشتیبانی میکند و روی همه پلتفرمهای اصلی کار میکند. بر اساس Wireshark User Guide (2026)، این ابزار برای عیبیابی شبکهها، اشکالزدایی API و تحلیل امنیت در توسعه موبایل و وب استفاده میشود.
نکات اصلی
Wireshark — برنامهای با کد منبع باز (GPLv2) است که بستههای داده عبوری از رابط شبکه رایانه را رهگیری میکند. این برنامه بر پایه کتابخانه libpcap (Unix) یا Npcap (Windows) برای رهگیری در سطح لایه پیوند مدل OSI ساخته شده است.
کارت شبکه در حالت عادی فقط فریمهای ارسالشده به آدرس MAC خود را دریافت میکند. Wireshark رابط را به حالت promiscuous (بیتوجه به آدرس) تغییر میدهد که در آن سیستم همه فریمهای عبوری را بدون توجه به گیرنده پردازش میکند. دادههای رهگیریشده از طریق سوکت خام raw socket به هسته منتقل میشوند و سپس کتابخانه libpcap آنها را برای تحلیل به فضای کاربر کپی میکند.
Wireshark از معماری ماژولار استفاده میکند: هر پروتکل بهعنوان یک دیسکتور جداگانه — پلاگینی که دادههای باینری را تجزیه و بهصورت ساختاریافته نمایش میدهد — پیادهسازی شده است. تا سال 2026 در این برنامه دیسکتورهایی برای 2 874 پروتکل از جمله HTTP/2، QUIC، gRPC و MQTT پیادهسازی شده است. دیسکتورها از طریق سیستم درخت پروتکل کار میکنند — هر بسته بهصورت لایهبهلایه تحلیل میشود: از فریم 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) و دامپ hex (packet bytes). هر پنل در زمان واقعی بهروزرسانی میشود و ناوبری تعاملی را پشتیبانی میکند — کلیک روی ردیف یک بسته ساختار کامل آن را باز میکند.
این ابزار فایلهای رهگیری را در قالبهای pcap، pcapng، snoop و NetMon میخواند. خروجی به JSON، XML، CSV و plain text ممکن است. از جمله پروتکلهای کلیدی لایه کاربرد: 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. در ویندوز ممکن است نصب Npcap در حالت WinPcap API Compatible Mode لازم باشد. برای رهگیری روی دستگاههای موبایل از Remote Packet Capture از طریق تونل SSH استفاده میشود.
روی دستگاه اندرویدی ترافیک از طریق tcpdump یا PCAPdroid رهگیری و سپس فایل به رایانه کاری منتقل میشود. دستور رهگیری راه دور از طریق ADB:
# رهگیری ترافیک در اندروید از طریق ADB shell
adb shell tcpdump -i wlan0 -s 0 -w /sdcard/capture.pcap
# کپی کردن به رایانه
adb pull /sdcard/capture.pcap . در ویندوز ترافیک localhost (127.0.0.1) از رابط فیزیکی عبور نمیکند، بنابراین Wireshark آن را مستقیماً نمیبیند. راهحل — نصب Npcap با گزینه Loopback Support یا هدایت ترافیک از طریق RawCap. در لینوکس و 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 فقط درخواستهای POST از یک IP خاص را فیلتر میکند. میتوان فیلترها را برای استفاده مجدد بهعنوان موارد دلخواه ذخیره کرد.
ترافیک HTTP در Wireshark بهصورت خوانا نمایش داده میشود: متد درخواست، URI، هدرها و بدنه پاسخ. عملکرد Follow TCP Stream گفتگوی کامل کلاینت و سرور را در یک پنجره جمع میکند. برای HTTPS به رمزگشایی جلسات TLS نیاز است، زیرا محتوا رمزگذاری شده است.
مرورگرهای Chrome و Firefox از متغیر محیطی SSLKEYLOGFILE پشتیبانی میکنند که کلیدهای جلسه TLS را در یک فایل متنی ثبت میکند. Wireshark از این فایل برای رمزگشایی رکوردها استفاده میکند. تنظیم از طریق Preferences → Protocols → TLS → (Pre)-Master-Secret log filename انجام میشود.
# اجرای Chrome با ثبت کلیدهای TLS
export SSLKEYLOGFILE=/tmp/sslkeys.log
google-chrome .
# پس از رهگیری مسیر را در Wireshark مشخص کنید
# Edit → Preferences → Protocols → TLS → Log Filename gRPC از HTTP/2 بهعنوان حملونقل و از Protobuf برای سریالسازی داده استفاده میکند. Wireshark در صورت ارائه فایل .proto با تعریف ساختارها، پیامهای gRPC را رمزگشایی میکند. دیسکتور Protobuf فیلدهای باینری را با نامهای فایل proto مطابقت میدهد که در اشکالزدایی معماری میکروسرویسی حیاتی است.
اشکالزدایی موبایل از طریق Wireshark نیاز به پراکسیکردن ترافیک دستگاه به رایانه دارد. مطمئنترین روش — ایجاد نقطه دسترسی Wi-Fi روی لپتاپ و هدایت ترافیک از طریق NAT. در اندروید روش VPN با اپلیکیشن PCAPdroid بدون دسترسی root نیز در دسترس است.
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 بهعنوان سرور پروکسی واسط با امکان رهگیری HTTPS از طریق گواهینامه SSL اختصاصی عمل میکند. برخلاف Wireshark، Charles به تنظیم SSLKEYLOGFILE نیاز ندارد و میتواند ترافیک را نهتنها مشاهده، بلکه تغییر دهد — پاسخها را جایگزین کند، تأخیرها را شبیهسازی و درخواستها را تکرار کند.
Fiddler — یکی دیگر از ابزارهای پروکسی است که در اکوسیستم .NET محبوب است. این ابزار ویرایشگر داخلی درخواست، پشتیبانی از AutoResponder برای mockها و کامپوزر برای ایجاد درخواستهای سفارشی فراهم میکند. 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 ترکیب کنید. IO Graph با بازه 1 ثانیه پیکهای بار را بهوضوح نشان میدهد.
Wireshark از خروجی به CSV، JSON و XML از طریق منوی File پشتیبانی میکند. برای تحلیل خودکار از tshark — نسخه کنسولی که در پایپلاینهای CI/CD کار میکند — استفاده کنید. Tshark همان فیلترها و قالبهای خروجی نسخه گرافیکی را پشتیبانی میکند.
Wireshark به درک اصول اولیه رهگیری ترافیک نیاز دارد. یکی از سناریوهای رایج — یافتن منبع تأخیرها در اپلیکیشن موبایل از طریق فیلتر tcp.analysis.ack_rtt. برای یافتن درخواستهای HTTP کند از شرط http.time بزرگتر از 1 استفاده کنید.
برای یافتن درخواستهای HTTP کند http.time بزرگتر از 1 را فیلتر کنید — Wireshark درخواستهایی با زمان پاسخ بیش از 1 ثانیه نشان میدهد. برای تحلیل یک سرور خاص با ip.addr ترکیب کنید. IO Graph با بازه 1 ثانیه پیکهای بار را بهوضوح نشان میدهد.
Wireshark از خروجی به CSV، JSON و XML از طریق منوی File پشتیبانی میکند. برای تحلیل خودکار از tshark — نسخه کنسولی که در پایپلاینهای CI/CD کار میکند — استفاده کنید. Tshark همان فیلترها و قالبهای خروجی نسخه گرافیکی را پشتیبانی میکند.
سوالات متداول
Wireshark رابط گرافیکی با تجسم بستهها، فیلترهای داخلی و آمار فراهم میکند. tcpdump — ابزار کنسولی بدون GUI است که برای رهگیری سروری از طریق SSH مناسب است. Wireshark میتواند فایلهای tcpdump را بخواند و برعکس.
برای رمزگشایی فایل کلیدهای جلسه TLS (SSLKEYLOGFILE) لازم است. Chrome و Firefox هنگام اجرا با متغیر محیطی کلیدها را صادر میکنند. مسیر فایل در تنظیمات Protocols → TLS در Wireshark مشخص میشود.
ترافیک loopback در ویندوز بهطور پیشفرض از درایور Npcap عبور نمیکند. راهحل — نصب Npcap با فعال بودن گزینه Loopback Support یا استفاده از ابزار RawCap برای رهگیری ترافیک محلی.
بله، از طریق پراکسیکردن ترافیک به رایانه. اندروید رهگیری را از طریق PCAPdroid (بدون root) یا tcpdump (با root) پشتیبانی میکند. iOS برای رهگیری به RVI (Remote Virtual Interface) از طریق macOS یا jailbreak نیاز دارد.
Display filter frame contains یک رشته یا توالی hex را در کل بسته جستجو میکند. نمونه: frame contains "password" بستههای دارای زیررشته password در هر فیلدی را پیدا میکند. برای جستجوی دقیق بر اساس فیلد از http.request.uri contains "api" استفاده کنید.
جمعبندی
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید