Wireshark: ما هو، تحليل حركة المرور والتقاط الحزم

المؤلف: IT Sectr نُشر: 2026-05-08 وقت القراءة: 9 دق

Wireshark هو المحلل الرائد لحركة مرور الشبكة مفتوح المصدر، ويُستخدم لالتقاط الحزم وفحصها في الوقت الفعلي. تدعم الأداة أكثر من ألفي بروتوكول شبكة وتعمل على جميع المنصات الرئيسية. وفقًا لدليل مستخدم Wireshark (2026)، تُستخدم الأداة لتشخيص الشبكات وتصحيح أخطاء واجهات API وتحليل الأمان في تطوير تطبيقات الجوال والويب.

أهم النقاط

  • Wireshark هو متلصص حزم مجاني بواجهة رسومية لتحليل حركة مرور الشبكة.
  • يتم التقاط حركة المرور عبر واجهة الشبكة في وضع promiscuous على مستوى طبقة الارتباط.
  • يتم تنفيذ تصفية الحزم حسب IP والمنفذ والبروتوكول والمحتوى عبر لغة BPF وdisplay filters.
  • يتطلب تحليل HTTPS إعداد SSLKEYLOGFILE أو بروكسي وسيط لفك تشفير الجلسات.
  • تصحيح أخطاء الجوال ممكن عبر الجمع بين tcpdump على الجهاز وRemote Packet Capture.

ما هو Wireshark وكيف يعمل

Wireshark هو برنامج مفتوح المصدر (GPLv2) يلتقط حزم البيانات التي تمر عبر واجهة شبكة الكمبيوتر. يعتمد على مكتبة libpcap (Unix) أو Npcap (Windows) للالتقاط على مستوى طبقة الارتباط لنموذج OSI.

مبدأ التقاط الحزم

في الوضع العادي تستقبل بطاقة الشبكة الإطارات الموجهة إلى عنوان MAC الخاص بها فقط. يقوم Wireshark بتحويل الواجهة إلى وضع promiscuous (غير المميّز)، حيث يعالج النظام جميع الإطارات المارة بغض النظر عن المرسل إليه. تُنقل البيانات الملتقطة إلى النواة عبر raw socket، ثم تنسخها مكتبة libpcap إلى مساحة المستخدم للتحليل.

بنية المعالجة

يستخدم Wireshark بنية معيارية: كل بروتوكول يُنفَّذ كمحلل dissector مستقل — إضافة plugin تقوم بتحليل البيانات الثنائية وعرضها بشكل منظم. اعتبارًا من عام 2026، تم تنفيذ محللات لنحو 2 874 بروتوكولًا، بما في ذلك HTTP/2 وQUIC وgRPC وMQTT. تعمل المحللات عبر نظام شجرة البروتوكولات — يتم تحليل كل حزمة طبقة بطبقة: من إطار Ethernet حتى طبقة التطبيق.

c
// مثال على محلل بسيط لبروتوكول مخصص
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

تنقسم الواجهة الرسومية لـ Wireshark إلى ثلاث لوحات: قائمة الحزم (packet list)، وتفاصيل البروتوكولات (packet details)، وتمثيل hex السداسي (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 على تصور تسلسل الحزم بين العقد، مما يسهل العثور على أسباب التأخير عند تصحيح أخطاء التفاعل بين العميل والخادم.

كيف تلتقط حركة المرور عبر Wireshark

يبدأ تشغيل الالتقاط باختيار واجهة الشبكة — Ethernet أو Wi-Fi أو Bluetooth PAN أو Loopback. على Windows قد يلزم تثبيت Npcap في وضع WinPcap API Compatible Mode. للالتقاط على أجهزة الجوال يُستخدم Remote Packet Capture عبر نفق SSH.

الالتقاط على جهاز بعيد

على جهاز Android يتم التقاط حركة المرور عبر tcpdump أو PCAPdroid مع نقل الملف لاحقًا إلى كمبيوتر العمل. الأمر للالتقاط عن بُعد عبر ADB:

bash
# التقاط حركة المرور على Android عبر ADB shell
adb shell tcpdump -i wlan0 -s 0 -w /sdcard/capture.pcap
# النسخ إلى الكمبيوتر
adb pull /sdcard/capture.pcap .

التقاط حركة Loopback

على Windows لا تمر حركة localhost (127.0.0.1) عبر الواجهة المادية، لذلك لا يراها Wireshark مباشرة. الحل هو تثبيت Npcap مع خيار Loopback Support أو إعادة توجيه الحركة عبر RawCap. على Linux وmacOS يتم التقاط واجهة loopback (lo) دون إعدادات إضافية.

تصفية الحزم في Wireshark

يوفر Wireshark نوعين من الفلاتر: capture filters (تُطبق قبل الالتقاط، على مستوى libpcap) وdisplay filters (تُطبق على البيانات الملتقطة بالفعل). تستخدم capture filters صيغة BPF (Berkeley Packet Filter)، بينما تستخدم display filters لغة Wireshark الخاصة مع إكمال تلقائي.

Capture Filters (BPF)

تُكتب فلاتر BPF بصيغة tcpdump وتُعمل في النواة، مما يقلل فقدان الحزم تحت الحمل العالي. أمثلة على الفلاتر:

الفلترالوظيفة
tcp port 80حركة HTTP فقط على المنفذ القياسي
host 192.168.1.1الحزم من مضيف محدد
not arpجميع الحزم باستثناء طلبات ARP

Display Filters

تُطبق display filters بعد الالتقاط وتدعم شروطًا معقدة مع العوامل المنطقية and وor وnot. مثال: http.request.method == "POST" and ip.src == 192.168.0.100 سيفلتر فقط طلبات POST من عنوان IP محدد. يمكن حفظ الفلاتر كقائمة مفضلة لإعادة استخدامها.

تحليل حركة HTTP وHTTPS

تُعرض حركة HTTP في Wireshark بشكل قابل للقراءة: طريقة الطلب وعنوان URI والرؤوس وجسم الاستجابة. تجمع وظيفة Follow TCP Stream الحوار الكامل بين العميل والخادم في نافذة واحدة. بالنسبة لـ HTTPS يلزم فك تشفير جلسات TLS، لأن المحتوى مشفر.

فك تشفير HTTPS عبر SSLKEYLOGFILE

يدعم متصفحا Chrome وFirefox متغير البيئة SSLKEYLOGFILE الذي يكتب مفاتيح جلسة TLS في ملف نصي. يستخدم Wireshark هذا الملف لفك تشفير السجلات. يتم الإعداد عبر Preferences → Protocols → TLS → (Pre)-Master-Secret log filename.

bash
# تشغيل Chrome مع تسجيل مفاتيح TLS
export SSLKEYLOGFILE=/tmp/sslkeys.log
google-chrome .

# بعد الالتقاط حدد المسار في Wireshark
# Edit → Preferences → Protocols → TLS → Log Filename

تحليل gRPC وProtobuf

يستخدم gRPC HTTP/2 كنقل وProtobuf لتسلسل البيانات. يقوم Wireshark بفك تشفير رسائل gRPC إذا تم توفير ملف .proto مع تعريفات البنى. يربط محلل Protobuf الحقول الثنائية بالأسماء من ملف proto، وهو أمر بالغ الأهمية عند تصحيح أخطاء بنية الخدمات المصغرة.

تصحيح أخطاء تطبيقات الجوال باستخدام Wireshark

يتطلب تصحيح أخطاء الجوال عبر Wireshark توجيه حركة الجهاز إلى الكمبيوتر. الطريقة الأكثر موثوقية هي إنشاء نقطة وصول Wi-Fi على اللابتوب وإعادة توجيه الحركة عبر NAT. على Android يتوفر أيضًا أسلوب VPN مع تطبيق PCAPdroid دون صلاحيات root.

الإعداد على Android بدون root

يقوم PCAPdroid بإنشاء خدمة VPN محلية تعيد توجيه حركة التطبيقات إلى Wireshark عبر تدفق UDP. لا يتطلب التطبيق صلاحيات root ويدعم التصفية حسب العمليات الفردية. تُفتح ملفات pcap الناتجة في Wireshark للتحليل الكامل.

bash
# استقبال حركة المرور من PCAPdroid على الكمبيوتر
# PCAPdroid → Settings → PCAP dumper → UDP Exporter
nc -l -u 192.168.0.10 12345 > capture.pcap

مقارنة Wireshark مع البدائل

Wireshark أداة عالمية، لكن بالنسبة لمهام محددة توجد حلول أكثر تخصصًا. tcpdump أكثر فاعلية للالتقاط على الخادم بدون رسوميات، وCharles Proxy أكثر ملاءمة لتحليل حركة HTTPS، أما Fiddler فهو مناسب لفحص حركة الويب مع إمكانية تعديل الطلبات أثناء التنفيذ.

Charles Proxy مقابل Wireshark

يعمل Charles Proxy كخادم بروكسي وسيط مع إمكانية اعتراض HTTPS عبر شهادة SSL خاصة به. على عكس Wireshark، لا يتطلب Charles إعداد SSLKEYLOGFILE ويمكنه ليس فقط عرض الحركة بل تعديلها أيضًا — استبدال الاستجابات ومحاكاة التأخيرات وإعادة الطلبات.

Fiddler Everywhere

Fiddler أداة بروكسي أخرى شائعة في نظام .NET البيئي. يوفر محرر طلبات مدمجًا ودعم AutoResponder للنماذج الوهمية mocks وcomposer لإنشاء طلبات مخصصة. Fiddler أنسب لتحليل حركة ويب المتصفح، بينما Wireshark أنسب للتحليل الشبكي منخفض المستوى.

الأداةالنوعHTTPS بدون مفاتيحتعديل الحركة
Wiresharkمتلصصلا (يحتاج SSLKEYLOGFILE)عرض فقط
Charlesبروكسينعم (شهادة مخصصة)نعم
Fiddlerبروكسينعم (شهادة مخصصة)نعم
tcpdumpمتلصصلاعرض فقط

نصائح عملية للعمل مع Wireshark

يتطلب Wireshark فهم المبادئ الأساسية لالتقاط حركة المرور. أحد السيناريوهات الشائعة هو البحث عن مصدر التأخيرات في تطبيق الجوال عبر فلتر tcp.analysis.ack_rtt. للبحث عن طلبات HTTP البطيئة استخدم الشرط http.time أكبر من 1.

البحث عن الطلبات البطيئة

للبحث عن طلبات HTTP البطيئة قم بتصفية http.time أكبر من 1 — سيُظهر Wireshark الطلبات ذات زمن الاستجابة أكثر من ثانية واحدة. ادمج مع ip.addr لتحليل خادم محدد. سيعرض IO Graph بفاصل زمني ثانية واحدة قمم الحمل بوضوح.

التصدير وإعداد التقارير

يدعم Wireshark التصدير إلى CSV وJSON وXML عبر قائمة File. للتحليل التلقائي استخدم tshark — النسخة النصية التي تعمل في مسارات CI/CD. يدعم Tshark نفس الفلاتر وصيغ الإخراج مثل النسخة الرسومية.

نصائح عملية للعمل مع Wireshark

يتطلب Wireshark فهم المبادئ الأساسية لالتقاط حركة المرور. أحد السيناريوهات الشائعة هو البحث عن مصدر التأخيرات في تطبيق الجوال عبر فلتر tcp.analysis.ack_rtt. للبحث عن طلبات HTTP البطيئة استخدم الشرط http.time أكبر من 1.

البحث عن الطلبات البطيئة

للبحث عن طلبات HTTP البطيئة قم بتصفية http.time أكبر من 1 — سيُظهر Wireshark الطلبات ذات زمن الاستجابة أكثر من ثانية واحدة. ادمج مع ip.addr لتحليل خادم محدد. سيعرض IO Graph بفاصل زمني ثانية واحدة قمم الحمل بوضوح.

التصدير وإعداد التقارير

يدعم Wireshark التصدير إلى CSV وJSON وXML عبر قائمة File. للتحليل التلقائي استخدم tshark — النسخة النصية التي تعمل في مسارات CI/CD. يدعم Tshark نفس الفلاتر وصيغ الإخراج مثل النسخة الرسومية.

الأسئلة الشائعة

ما الفرق بين Wireshark وtcpdump؟

يوفر Wireshark واجهة رسومية مع تصور الحزم وفلاتر مدمجة وإحصائيات. tcpdump أداة سطر أوامر بدون واجهة رسومية، مناسبة للالتقاط على الخادم عبر SSH. يمكن لـ Wireshark قراءة ملفات tcpdump والعكس.

كيف ألتقط حركة HTTPS في Wireshark؟

لفك التشفير يلزم ملف مفاتيح جلسة TLS (SSLKEYLOGFILE). يقوم Chrome وFirefox بتصدير المفاتيح عند التشغيل مع متغير البيئة. يُشار إلى مسار الملف في إعدادات Protocols → TLS في Wireshark.

لماذا لا يرى Wireshark حركة localhost على Windows؟

لا تمر حركة loopback على Windows عبر برنامج تشغيل Npcap افتراضيًا. الحل هو تثبيت Npcap مع تفعيل خيار Loopback Support أو استخدام الأداة RawCap لالتقاط الحركة المحلية.

هل يمكن استخدام Wireshark لتطبيقات الجوال؟

نعم، عبر توجيه حركة المرور إلى الكمبيوتر. يدعم Android الالتقاط عبر PCAPdroid (بدون root) أو tcpdump (مع root). يتطلب iOS RVI (Remote Virtual Interface) عبر macOS أو jailbreak للالتقاط.

كيف أفلتر الحزم حسب المحتوى في Wireshark؟

يبحث display filter frame contains عن سلسلة أو تسلسل سداسي في الحزمة بأكملها. مثال: frame contains "password" سيجد الحزم التي تحتوي على سلسلة password في أي حقل. للبحث الدقيق حسب حقل استخدم http.request.uri contains "api".

الخلاصة

  • Wireshark هو الأداة الرئيسية لتحليل حركة مرور الشبكة في التطوير، ويدعم أكثر من 2800 بروتوكول.
  • يتم التقاط الحزم في وضع promiscuous عبر مكتبة libpcap أو Npcap على مستوى الوصول للقناة.
  • التصفية تنقسم إلى capture filters (BPF على مستوى النواة) وdisplay filters (لغة Wireshark مع إكمال تلقائي).
  • فك تشفير HTTPS متاح عبر SSLKEYLOGFILE لمتصفحي Chrome وFirefox.
  • تصحيح أخطاء الجوال يُنفَّذ عبر PCAPdroid (Android) أو Remote Virtual Interface (iOS) دون الحاجة إلى root.
  • gRPC وProtobuf مدعومان عبر تحميل ملفات .proto لإزالة تسلسل البيانات الثنائية.
  • Flow Graph وIO Graph يساعدان في تصور التأخيرات والعثور على الاختناقات في التفاعل بين العميل والخادم.

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا