التقاط الحزم على Windows عمليًّا — الاختيار بين pktmon وnetsh trace وWireshark

· · Windows, التقاط الحزم, pktmon, netsh, Wireshark, الشبكة, استكشاف الأعطال, TCP/IP

«اتّصال خادم تطبيق الأعمال يفشل بضع مرّات في الشهر. سجلّ التطبيق يقول فقط ‘timeout’. لا خطأ مطابق في سجلّ الخادم في ذلك الوقت. لا نعرف كيف نعيد الإنتاج» — في استشارات التحقيق في الأعطال يتكرّر هذا الشكل باستمرار.

سجلّ التطبيق يحتفظ فقط بما «قرّر التطبيق كتابته». ترى أنّ النتيجة مهلة، لكن هل طلب الاتصال (SYN) لم يلقَ ردًّا، أم أُنشئ الاتصال ثم صمت الخادم، أم قُطع بـ RST، أم وصلت الحزمة أصلًا إلى الوجهة — كلّ ذلك يعيش طبقة تحت السجلّ — في الحزم التي مرّت فعلًا على السلك. إن كان Process Monitor وسيلة النظر طبقة أسفل إلى ملفّات والسجلّ، فالتقاط الحزم وسيلة النظر طبقة أسفل إلى المحادثة.

الحزم طبقة تحت سجلّ التطبيقسجلّ التطبيق يحتفظ فقط بما قرّر التطبيق كتابته؛ هل SYN بلا ردّ، أم صمت النظير بعد الاتصال، أم قطع RST، أم وصول الحزمة يعيش فقط في الحزم التي مرّت فعلًا على السلكانظر طبقة أسفلسجلّ التطبيقيبقى فقط ما تقرّر كتابتهالنتيجة مهلة بكلمة واحدةالحزم التي مرّت فعلًا على السلكلا ردّ على SYN؟صمت بعد الاتصال؟قُطع بـ RST؟هل وصلت إلى الوجهة؟

الشكل 1: السجلّ يحتفظ بالنتيجة فقط؛ تفكيك المهلة يعيش فقط في الحزم طبقة أسفل.

المكان النموذجي الذي يعلق فيه الناس هو قيد «لا نستطيع تثبيت Wireshark على خادم العميل». المواقع التي لا توافق فيها مراقبة التغيير أو سياسة الأمن على برمجيّات إضافيّة للتحقيق ليست نادرة. لكن Windows يشحن أصلًا أداتين لالتقاط الحزم: pktmon وnetsh trace. التقط بأدوات نظام التشغيل المضمَّنة، خذ الملفّ الناتج إلى حاسوبك، واقرأه في Wireshark — بهذا التقسيم تبقى الحزم مرئيّة في موقع يمنع التثبيت.

هذا المقال موجَّه لموظّفي تقنيّة المعلومات في الشركات الصغيرة والمتوسّطة ولمطوّري تطبيقات Windows. ينظّم كيفيّة الاختيار بين pktmon وnetsh trace وWireshark، والإجراء العملي لكلّ منها. فخاخ حركة الاسترجاع، وقرار الالتقاط على العميل أو الخادم، والتعايش مع TLS الذي يخفي الحمولة، وربط الالتقاط بسجلّ التطبيق — كلّها من مصادر أوّليّة محدَّثة حتى أغسطس 2026.

1. الخلاصة أوّلًا

  • «التقاط بالأداة المضمَّنة، وقراءة بـ Wireshark» هو التقسيم الأساسي في الميدان. حتى إن تعذّر تثبيت برمجيّات على خادم العميل، pktmon وnetsh trace مضمَّنان في Windows. حوّل السجلّ الملتقَط إلى pcapng وحلّله في Wireshark على جهازك.12
  • pktmon أداة التقاط الحزم المضمَّنة في Windows 10 / Windows Server 2019 وما بعد. تُستخدم في أربع خطوات — سجّل مرشّحًا، ابدأ، أوقف، حوّل — وقوّتها المميّزة رؤية أي مكوّن في رزمة الشبكة أسقط الحزمة (سبب الإسقاط).34
  • netsh trace الأداة المضمَّنة الأقدم؛ تستطيع تفعيل حزمة مزوّدي ETW كـ«سيناريو». إضافة إلى الحزم تحتفظ بأحداث من داخل مكوّنات Windows، ومع persistent=yes يصمد الالتقاط عبر إعادة التشغيل.56
  • الأداتان تكتبان ETL الذي لا يفتحه Wireshark كما هو. حوّل إلى pcapng بـ pktmon etl2pcap لـ pktmon، وبـ etl2pcapng المفتوح المصدر من Microsoft لـ netsh trace.12
  • مايكروسوفت نفسها تشير إلى «pktmon أوّلًا، ثم netsh trace إن لم يكفِ، وWireshark لتحليل البروتوكول». تقسيم هذا المقال يتبع تلك التوصية الرسميّة.7
  • افتراضيًّا يسجّل pktmon أوّل 128 بايت فقط من كلّ حزمة. إن كنت تنوي قراءة الحمولة في Wireshark فلا تنسَ --pkt-size 0 (سجّل الحزمة كاملة) عند البدء.8
  • حركة localhost لا تظهر في التقاط عادي. لا تمرّ عبر بطاقة شبكة. استخدم محوّل استرجاع Npcap في Wireshark، أو التقاط pktmon داخل الرزمة مع الأدوات المضمَّنة.9
  • حتى عندما يخفي TLS الحمولة، لا يزال بالإمكان تعلّم الكثير. إنشاء الاتصال، نجاح مصافحة TLS، RST، وأي طرف صمت تبقى مرئيّة مع التشفير. فكّ التشفير عبر SSLKEYLOGFILE تقنيّة لبيئة التطوير فقط.10
  • التقاط يحتوي التواصل نفسه. افترض أنّه قد يشمل بيانات اعتماد ومعلومات شخصيّة، وابنِ التقاطًا بالحدّ الأدنى وتضييقًا قبل التسليم في الإجراء.

2. أدوات الالتقاط الثلاث وكيفيّة الاختيار بينها

أوّلًا، جدول واحد لأدوار الأدوات الثلاث.

  pktmon netsh trace Wireshark
كيف تحصل عليها مضمَّنة في Windows 10 / Windows Server 2019 وما بعد3 مضمَّنة في Windows منذ زمن (صالحة على أنظمة قبل pktmon) يتطلّب تثبيتًا منفصلًا
الدور الرئيسي التقاط الحزم، كشف الإسقاط، العدّادات التقاط الحزم + أحداث ETW لمكوّنات Windows تحليل البيانات الملتقَطة (الوجهة الحقيقيّة)
صيغة الإخراج ETL (حوّل إلى pcapng بـ etl2pcap)1 ETL+.cab (حوّل إلى pcapng بـ etl2pcapng)62 pcapng
القوّة المميّزة موقع الإسقاط وسببه داخل الرزمة4 تجميع المزوّدين حسب السيناريو، التقاط عبر إعادة التشغيل5 مرشّحات العرض، تحليل TCP، الإحصاءات، الواجهة
الصلاحيّات مسؤول مسؤول مكافئ المسؤول للالتقاط (غير لازم للتحليل فقط)

بجملة واحدة، pktmon وnetsh trace أداتا «الالتقاط»، وWireshark أداة «القراءة». يستطيع Wireshark الالتقاط أيضًا، لكنّك لا تستخدم ذلك حيث يتعذّر التثبيت. بالمقابل تستطيع تحويل ETL الأدوات المضمَّنة إلى نصّ وقراءته، لكن التحديق بلا مرشّح عرض ولا تحليل TCP شقاء. «التقاط في الميدان بالأداة المضمَّنة، تحويل إلى pcapng، وقراءة في Wireshark على جهازك» أقصر طريق في موقع مقيَّد.

التقاط بالأداة المضمَّنة وقراءة بـ Wiresharkفي الميدان تلتقط ETL بـ pktmon أو netsh trace، وتحوّل كلًّا إلى pcapng بأداة التحويل الخاصّة به، وتحلّل في Wireshark على جهازكpktmon etl2pcapetl2pcapngpktmon(مضمَّن)ملف ETLnetsh trace(مضمَّن)ETL+.cabpcapngحلّل في Wireshark على جهازك

الشكل 2: في الميدان تلتقط ETL بالأدوات المضمَّنة، وتحوّل إلى pcapng، وتقرأ في Wireshark على جهازك.

دليل التحقيق في فقدان الحزم لدى Microsoft له الشكل نفسه: التقط واعزل السبب بـ pktmon أوّلًا، ثم انتقل إلى تتبّعات على مستوى المكوّن مثل netsh trace start scenario=InternetClient إن لم يكفِ، وحلّل سلوك البروتوكول في Wireshark.7

كمتطلّب مسبق لقراءة ما تُظهره الحزمة فعلًا، يفيد أيضًا تصوّر الطبقات المتراصّة — Ethernet وIP وTCP وبيانات التطبيق. تشريح الطبقات موضَّح في «فهم نموذج OSI حقًا».

3. pktmon عمليًّا — مرشّح، بدء، إيقاف، تحويل

تدفّق pktmon الأساسي أربع خطوات. نفّذها في طرفيّة مرتفعة الصلاحيّة.

:: 1. سجّل مرشّحاً أولاً لتضييق الهدف (TCP 8443 على الخادم 192.168.10.20)
pktmon filter add App8443 -i 192.168.10.20 -t tcp -p 8443
pktmon filter list

:: 2. ابدأ الالتقاط. سجّل الحزم كاملة، واكتب فوقها في مخزن حلقي 1 غيغابايت
pktmon start --capture --pkt-size 0 --file-name C:\temp\app-timeout.etl --file-size 1024 --log-mode circular

:: 3. أعد إنتاج الحادثة. أثناء الانتظار يمكن فحص الحجم والإسقاط عبر counters
pktmon counters --drop-reason

:: 4. أوقف، ثم حوّل إلى pcapng لـ Wireshark
pktmon stop
pktmon etl2pcap C:\temp\app-timeout.etl --out C:\temp\app-timeout.pcapng

:: 5. نظّف المرشّح المسجّل (المرشّحات تبقى حتى تُحذف صراحة).
::    ملاحظة: filter remove لا يقبل اسماً؛ يحذف «كل» المرشّحات المسجّلة.
::    على جهاز قد تبقى فيه مرشّحات تحقيق آخر، تحقق أولاً بـ pktmon filter list
pktmon filter remove
إجراء pktmon الأساسيضيّق الهدف بمرشّح، ابدأ الالتقاط، أعد إنتاج الحادثة، أوقف، حوّل إلى pcapng بـ etl2pcap، وأخيرًا احذف المرشّح المسجَّل1. ضيّق الهدف بـ filter add2. ابدأ الالتقاط بـ start --capture3. أعد إنتاج الحادثةافحص الحجم والإسقاط بالعدّادات4. أوقفحوّل إلى pcapng بـ etl2pcap5. نظّف بـ filter remove

الشكل 3: يبدأ pktmon بتسجيل المرشّح، ثم الالتقاط والإيقاف والتحويل، وتحذف المرشّح صراحة في النهاية.

نقاط تُراعى:

  • سجّل المرشّحات قبل بدء الالتقاط. وثائق Microsoft توصي بقوّة بتطبيق مرشّح قبل البدء، لأن التقاط كلّ الحركة صاخب جدًّا. المرشّحات تحدّد عنوان IP والمنفذ وعنوان MAC والبروتوكول ومعرّف VLAN وغيرها، ويمكن تسجيل حتى 32. المرشّحات المتعدّدة OR: تُسجَّل الحزمة إن طابقت أيًّا منها.3
  • مرشّح pktmon لا يميّز المصدر عن الوجهة. -i 192.168.10.20 يعني «حزم يكون هذا العنوان مصدرها أو وجهتها». ضيّق الاتجاه لاحقًا بمرشّح عرض Wireshark بعد التحويل.3
  • حجم الحزمة الافتراضي 128 بايت. يكفي لتحليل الترويسة، لكن إن أردت بيانات التطبيق أيضًا فسجّل الحزمة كاملة بـ --pkt-size 0.8
  • السجلّ افتراضيًّا وضع دائري (ذاكرة حلقيّة)، الحجم الافتراضي 512MB. تغيّر السقف بـ --file-size، و--log-mode real-time يطبع على الشاشة آنًا ولا ينشئ ملفّ سجلّ. أكّد أولًا في الوضع الآني أنّك ترى الحركة التي تهمّك، ثم اضبط التقاط الإنتاج، فتجنّب أخذًا فارغًا.8
كيف تسري مرشّحات pktmonالمرشّحات المتعدّدة المسجَّلة تسجّل عند مطابقة OR، والعنوان المحدَّد لا يميّز المصدر عن الوجهة، ويُضيَّق الاتجاه لاحقًا بمرشّح عرض Wireshark بعد التحويلمرشّح 1سجّل إن طابق أيّمرشّح 2مرشّح 3(حتى 32)مُسجَّل في سجلّ الالتقاط(OR)المصدر والوجهة غير مميَّزينضيّق الاتجاه في Wireshark بعد التحويل

الشكل 4: المرشّحات المتعدّدة تعمل كـ OR، وما إذا كان المضيف مصدرًا أو وجهة يُضيَّق في Wireshark بعد التحويل.

3.1. ما يستطيعه pktmon وحده — رؤية أين أُسقطت الحزمة

قيمة pktmon المميّزة مقابل Wireshark أنّه يلتقط الحزمة في نقاط متعدّدة داخل رزمة الشبكة، لا عند بطاقة واحدة، ويستطيع الإبلاغ أين ولماذا أُسقطت (drop). لأنّك ترى أي مكوّن بلغته الحزمة وأين اختفت، أسباب إسقاط مثل «عدم تطابق MTU» أو «مرشّح VLAN» توصلك إلى السبب دون بحث أعمى.4

pktmon يلتقط في نقاط متعدّدة داخل الرزمةpktmon يلتقط الحزمة في نقاط متعدّدة داخل رزمة الشبكة لا عند بطاقة واحدة، فيستطيع الإبلاغ بسبب أي مكوّن بلغته الحزمة وأين أُسقطتحزمةالتقاط عند النقطة 1التقاط عند النقطة 2إسقاط عند النقطة 3يبلّغ موقع الإسقاط وسببهمثل عدم تطابق MTU أو مرشّح VLAN

الشكل 5: الالتقاط في نقاط متعدّدة داخل الرزمة يخبرك إلى أي مدى وصلت الحزمة وأين أُسقطت، مع سبب.

  • pktmon list يعرض مكوّنات الشبكة القابلة للمراقبة (بطاقات، رزم بروتوكول، برامج تشغيل مرشّحة، وغيرها) ومعرّفاتها.
  • pktmon counters --drop-reason يسرد عدّادات المرور/الإسقاط لكلّ مكوّن وأحدث سبب إسقاط. ملائم كقطع أوّل قبل تحليل السجلّ.11
  • حوّل إلى نصّ بـ pktmon etl2txt فتخرج الحزم المُسقَطة بـ drop وdropReason.3

الشبهة أنّ «شيئًا في نظام التشغيل يُسقط هذا قبل أن يصل إلى التطبيق» لا تُحسَم بالتحديق في Wireshark وحده. هذه القدرة تساعد مثلًا عند عزل حالة يُسقط فيها جدار الحماية لأنّ قاعدة واردة ناقصة («جدار حماية Windows وتطبيقات الأعمال»).

تحذير واحد. pktmon يسجّل الحزمة نفسها في نقاط متعدّدة في الرزمة، فالتحويل كما هو إلى pcapng قد يجعل الحزمة نفسها تظهر أكثر من مرّة. pcapng لا يحمل «أي مكوّن التقط هذا»، فإن كنت تقرأ في Wireshark الحركة القياسيّة التحويل بـ --component-id لاختيار نقطة واحدة (أو وضع الإسقاطات وحدها في ملفّ منفصل بـ --drop-only).1

لماذا قد تظهر الحزمة نفسها مرّتين بعد التحويل إلى pcapngpktmon يسجّل الحزمة نفسها في نقاط متعدّدة في الرزمة، وpcapng لا يحتفظ بأي مكوّن التقطها فتظهر مكرّرات، والحركة القياسيّة التحويل بعد تضييق النقطة بـ component-id أو وضع الإسقاطات وحدها في ملفّ drop-onlyالحزمة نفسها مسجَّلة في نقاط متعدّدةحوّل إلى pcapng كما هومعلومات نقطة الالتقاط لا تُنقَلالحزمة نفسها تظهر أكثر من مرّةضيّق النقطة بـ --component-idملفّ منفصل بـ --drop-only

الشكل 6: معلومات نقطة الالتقاط لا تُنقَل إلى pcapng، فالحركة القياسيّة تضييق النقطة قبل التحويل.

4. netsh trace عمليًّا — سيناريوهات وETL والتقاطات تصمد عبر إعادة التشغيل

netsh trace آليّة التتبّع الموجودة في Windows أطول من pktmon. ميزتها أنّها كـ«سيناريو» تستطيع تفعيل مجموعة مزوّدي ETW المتعلّقة بتلك المشكلة دفعة واحدة.6

:: List available scenarios and inspect the providers in a scenario
netsh trace show scenarios
netsh trace show scenario netconnection

:: Start the capture. Packet capture included, 1GB circular buffer
netsh trace start scenario=netconnection capture=yes tracefile=C:\temp\nettrace.etl maxSize=1024 filemode=circular

:: Reproduce the incident, then stop (the merge takes a little time)
netsh trace stop
  • أضف capture=yes لتفعيل التقاط الحزم، وضيّق الهدف بمرشّح التقاط مثل ipv4.address=192.168.10.20. قائمة المرشّحات في netsh trace show capturefilterHelp.6
  • الإيقاف ينتج ملفّ .cab إضافة إلى ETL. الـ .cab يحمل معلومات نظام مثل إعداد المحوّل وبناء نظام التشغيل، فيضاعف كجمع بيئة.6
  • جلسة تتبّع واحدة فقط يمكن أن تعمل في الوقت نفسه. قبل بدء التقاط آخر، افحص بـ netsh trace show status أنّ لا جلسة متبقّية ما زالت تعمل.6
  • أضف persistent=yes وتصمد الجلسة عبر إعادة التشغيل. التقاط «الاتّصال يفشل لحظة بعد إعادة التشغيل» أو «اتّصال الخدمة عند الإقلاع يفشل» — حوادث لا تلحق بدءها يدويًّا — أرض netsh trace الفريدة.5
التقاط سيناريو netsh traceالبدء بسيناريو يفعّل مجموعة مزوّدي ETW، وcapture=yes يلتقط الحزم أيضًا، والإيقاف ينتج ملف ETL وملف .cabcapture=yesابدأ بسيناريوفعّل مجموعة المزوّدينتُلتقَط الحزم أيضًاأعد إنتاج الحادثةأوقفملف ETL.cab(معلومات النظام)

الشكل 7: البدء بسيناريو يفعّل مجموعة مزوّدين، والإيقاف ينتج ETL و.cab.

4.1. جعل ETL مقروءًا في Wireshark — etl2pcapng

ETL الخاصّ بـ netsh trace لا يُفتح في Wireshark كما هو. etl2pcapng، الأداة مفتوحة المصدر التي تنشرها Microsoft على GitHub، تحوّل الحزم داخل ETL ملتقَط بـ netsh trace start capture=yes إلى pcapng.2

etl2pcapng.exe C:\temp\nettrace.etl C:\temp\nettrace.pcapng

عند التحويل يكتب etl2pcapng معرّف العمليّة المرتبط بكلّ حزمة كتعليق حزمة. القدرة على رؤية «حركة أي عمليّة هذه» في Wireshark تساعد عندما تتحدّث عدّة تطبيقات على الخادم نفسه.2

جانب أحداث ETW (أحداث داخليّة في Windows سجّلتها مزوّدات السيناريو) لا يُحوَّل إلى pcapng. إن أردت الأحداث أيضًا فحوّل إلى نصّ أو ما شابه بـ netsh trace convert input=C:\temp\nettrace.etl، أو افتح ETL في Windows Performance Analyzer.57

قراءة ETL لـ netsh trace تنقسم إلى مسارينالحزم داخل ETL تُحوَّل إلى pcapng بـ etl2pcapng وتُقرأ في Wireshark؛ أحداث ETW لا تُحوَّل إلى pcapng فتقرأها بـ netsh trace convert أو Windows Performance Analyzeretl2pcapngETL لـ netsh traceحزمأحداث ETWحوّل إلى pcapngاقرأ في Wiresharkمعرّف العمليّة يبقى تعليقًالا يُحوَّل إلى pcapngاقرأ بـ convert أو WPA

الشكل 8: من ETL تُحوَّل الحزم إلى pcapng للقراءة؛ أحداث ETW تُقرأ بوسيلة أخرى.

5. نظرة أولى على القراءة في Wireshark — مرشّحات العرض وتحليل TCP

بعد فتح pcapng، اقطع الضوضاء أوّلًا بمرشّح عرض. الشائعة في الجدول.1213

مرشّح العرض المعنى
ip.addr == 192.168.10.20 حزم يكون هذا الـ IP مصدرها أو وجهتها
tcp.port == 8443 حزم تتضمّن منفذ TCP هذا
dns استعلامات DNS وردودها فقط
tcp.flags.syn == 1 && tcp.flags.ack == 0 SYN الاتّصال فقط
tcp.flags.reset == 1 RST (قطع قسري) فقط
tcp.analysis.retransmission حزم حكم عليها Wireshark بأنّها إعادة إرسال
tcp.analysis.zero_window نافذة الاستقبال 0 (المستقبل لا يستطيع أخذ المزيد)
tcp.analysis.flags كلّ حزمة اكتُشف فيها شكل من المشكلة

tcp.analysis.* أعلام تحليل يعيّنها Wireshark بتتبّع أرقام تسلسل TCP. إعادة الإرسال وACK المكرّر وخارج الترتيب وZeroWindow وما شابه تُلتقَط آليًّا، فـالطريقة القياسيّة لبدء القراءة كتابة tcp.analysis.flags أوّلًا وسرد مواضع «يبدو أنّها مشكلة».13

في تحقيق المهلة ابحث عن الأشكال التالية بالترتيب.

  1. هل اكتملت المصافحة الثلاثيّة؟ هل الحزم الثلاث SYN → SYN/ACK → ACK كلّها موجودة؟ إن تكرّر SYN بلا ردّ فلم يصل إلى النظير، أو أُسقط صامتًا في الوسط (نمط جدار الحماية النموذجي).
  2. أي طرف أرسل RST؟ RST فوري لـ SYN يعني لا أحد يستمع على منفذ الوجهة؛ RST بعد إنشاء الاتّصال يعني أنّ طرفًا قطع الاتّصال قسرًا. عنوان IP مصدر RST دليل مباشر على «من قطع».
  3. هل تستمرّ إعادة الإرسال؟ إعادة إرسال متكرّرة للقطعة نفسها علامة أنّ الإقرار (ACK) لا يعود إلى المرسل. هل فُقدت البيانات الصادرة أم فُقد ACK العائد لا يُحسَم من التقاط أحادي الجانب (لذلك يهمّ «التقاط على الجانبين» في الفصل التالي). إعادة الإرسال والمهل مشروحة بعمق أكبر في «حين تتوقّف حركة TCP للكاميرا الصناعيّة لعدّة ثوانٍ».
  4. هل ZeroWindow حاضر؟ تلك علامة أنّ تطبيق الاستقبال لا يقرأ من المقبس وأنّ ذاكرة الاستقبال ممتلئة. مبرّر للاشتباه في تصميم تطبيق الاستقبال («المفهوم الخاطئ بأنّ الاستقبال يتطابق مع وحدة الإرسال في TCP») لا في الشبكة.
ترتيب الأشكال للبحث عنها في تحقيق المهلةأكّد اكتمال المصافحة الثلاثيّة، وجود RST ومصدره، استمرار إعادة الإرسال، ثم ZeroWindow، لتضع علامة أولى على السببلانعمنعملانعملانعمهل لقي SYN ردًّا؟لم يصل أبدًا(جدار حماية نموذجي)هل RST حاضر؟مصدر RST قطعههل تستمرّ إعادة الإرسال؟ACK لا يعودهل ZeroWindow حاضر؟المستقبل لا يقرأ

الشكل 9: البحث عن المصافحة ثم RST ثم إعادة الإرسال ثم ZeroWindow بهذا الترتيب يضيّق أين تنظر تاليًا.

قبل قراءة الحزم واحدة فواحدة يفيد أيضًا استيعاب الصورة كاملة بميزات الإحصاءات. [Statistics] → [Conversations] قائمة «أي زوج IP / زوج منافذ تحدّث، من متى إلى متى، وبكم»، فتعرّف المحادثة التي تهمّك ثم ترشّح إلى تلك المحادثة فقط. [Statistics] → [I/O Graph] رسم حجم عبر الزمن؛ أشكال مثل «من هذا الوقت صمت اتجاه واحد» تقفز. انقر يمينًا محادثة TCP المعنيّة واختر [Follow] → [TCP Stream] فتقرأ تبادل ذلك الاتّصال كنصّ واضح.

استوعب الصورة بالإحصاءات ثم ضيّق إلى محادثةاسرد أي محادثات تحدّثت متى وبكم في Conversations، التقط فترة الصمت من I/O Graph، رشّح إلى المحادثة المعنيّة، واقرأها كتدفّق TCPاستوعب الصورة كاملة بالإحصاءاتقائمة المحادثات في Conversationsانظر الحجم على I/O Graphرشّح إلى المحادثة المعنيّةفترة الصمت تصبح مرئيّةاقرأ كتدفّق TCP

الشكل 10: قبل قراءة الحزمة تلو الحزمة استوعب الصورة بالإحصاءات، ضيّق إلى المحادثة المعنيّة، ثم اقرأها.

6. فخّ الاسترجاع — حركة localhost لا تمرّ عبر بطاقة شبكة

محاولة التحقيق في اتّصال بين تطبيقات على الحاسوب نفسه — مثل تطبيق أعمال يتّصل بخدمة وسيطة على localhost:8080 — والتعثّر عند «لا شيء يظهر في Wireshark» فخّ كلاسيكي.

السبب واضح. حركة localhost (127.0.0.1) لا تمرّ أبدًا عبر بطاقة شبكة مادّيّة؛ تُدار على مسار الاسترجاع الداخلي في نظام التشغيل. الالتقاط العادي الذي يستهدف محوّلًا مادّيًّا لذلك لا يراها.9

لماذا لا تظهر حركة localhost في التقاطحركة localhost لا تمرّ عبر بطاقة مادّيّة وتُدار على مسار الاسترجاع الداخلي في نظام التشغيل، فلا تظهر أبدًا في التقاط عادي يستهدف محوّلًا مادّيًّاخارجيlocalhostتطبيقرزمة الشبكةبطاقة مادّيّةمرئي في التقاط عادييُدار داخل نظام التشغيلليس في التقاط عادياسترجاع Npcap أو pktmon

الشكل 11: حركة localhost تُدار قبل البطاقة، فالتقاط المحوّل المادّي لا يراها أبدًا.

هناك طريقتان للتعامل.

  • عند الالتقاط في Wireshark: اختر «Adapter for loopback traffic capture» من Npcap كهدف الالتقاط. مثبّت Windows لـ Wireshark (3.0 وما بعد) يضمّ Npcap، فإن كان Wireshark مثبّتًا أصلًا تستخدمه بلا عمل إضافي.9
  • عند الالتقاط بالأدوات المضمَّنة: pktmon يلتقط في نقاط متعدّدة داخل رزمة الشبكة لا خارج البطاقة4، فيستطيع مراقبة حركة الاسترجاع أيضًا. للتأكّد، قبل ضبط انتظار إعادة الإنتاج في الإنتاج، أكّد على ذلك الجهاز بـ pktmon start -c -m real-time عرضًا آنيًّا أنّ حركة الاسترجاع التي تهمّك مرئيّة فعلًا.

راقب خلطين أيضًا.

  • «localhost» قد يُحلَّ إلى IPv6 ::1. التطبيق يتّصل بـ IPv6 ::1، والمحقّق ينظر فقط إلى 127.0.0.1 (IPv4) ويستنتج خطأ «لا حركة». مدّ مرشّح العرض عبر الاثنين، كما في ip.addr == 127.0.0.1 || ipv6.addr == ::1، أو اجعل إعداد وجهة التطبيق عنوانًا صريحًا.9
  • الحركة إلى عنوان IP الحقيقي لجهازك لا تخرج إلى السلك أيضًا. عندما يتّصل الحاسوب نفسه من 192.168.10.5 إلى 192.168.10.5، الوجهة عنوان حقيقي لكن نظام التشغيل ما زال يديرها داخليًّا. تذكّر أنّ «حدّدت عنوانًا حقيقيًّا، فلا بدّ أن تمرّ عبر البطاقة» غير مضمون.
الخلط عندما يُحلَّ localhost إلى IPv6قد يُحلَّ localhost التطبيق إلى IPv6 ::1، وإن نظر المحقّق فقط إلى 127.0.0.1 يستنتج خطأ أنّ لا حركة، فمدّ مرشّح العرض عبر العنوانين أو أكّد الوجهة كعنوان صريحالتطبيق يتّصل بـ localhostيُحلَّ فعلًا إلى ::1(IPv6)المحقّق ينظر فقط إلى 127.0.0.1لا شيء يظهر على الشاشةمدّ المرشّح عبر العنوانيناجعل الوجهة عنوانًا صريحًا

الشكل 12: راقب الخلط حيث يُحلَّ localhost إلى ::1 والنظر فقط إلى 127.0.0.1 يؤدّي إلى «لا حركة».

7. أين تلتقط — جانب واحد، جانبان، ومزامنة الساعة

قيمة التقاط تُحسَم بـ«أين التقطت». القاعدة التقريبيّة كالتالي.

موقع الالتقاط ما تتعلّمه متى يناسب
جانب العميل فقط ما أرسلت وما عاد أوّلًا لصورة عامّة. عندما لا تستطيع لمس الخادم
جانب الخادم فقط هل وصل الطلب وهل أُرسل ردّ عندما يكثر العملاء، أو لا تستطيع تحديد واحد
الجانبان معًا أين على المسار اختفت حزمة، أي طرف صمت عندما تحتاج حسم حدود المسؤوليّة

التقاط أحادي الجانب يخبرك فقط «الحقائق كما تُرى من موقعي». إعادة إرسال مستمرّة على العميل لا تميّز إن اختفت الحزمة المُرسَلة على المسار، أم وصلت إلى الخادم واختفى الردّ. التقط على الجانبين واصطفّهما، فتحسم «العميل أرسل / الخادم لم يستلم» — أي طرف صمت. عندما تحتاج حسم حدود المسؤوليّة (التطبيق، نظام التشغيل، جهاز شبكة، أو الطرف الآخر)، يستحقّ تجهيز التقاط الجانبين من البداية.

ما يخبرك به التقاط أحادي الجانب والتقاط الجانبينالتقاط أحادي الجانب لا يميّز إن اختفت الحزمة الصادرة أم اختفى الردّ العائد؛ الالتقاط على الجانبين واصطفافهما يحسم أي طرف صمتالتقاط على جانب واحدحقائق من جانبكصادر أم عائد؟التقاط على الجانبيناصطفّهماأي طرف صمتتحتاج مزامنة الساعة

الشكل 13: جانب واحد يظهر فقط الحقائق التي رأيتها؛ اصطفاف الجانبين هو ما يحسم أوّلًا حدود المسؤوليّة.

7.1. مقدّمة الربط هي مزامنة الساعة

لاصطفاف التقاطات الجانبين يجب أن تتّفق ساعتا الجهازين. قبل بدء الالتقاط افحص وسجّل إزاحة الساعة.

:: Check time-sync status (sync source, last sync time)
w32tm /query /status

:: Measure the offset against the peer server (5 samples)
w32tm /stripchart /computer:sv-app01 /dataonly /samples:5

w32tm /stripchart الأمر الذي يعرض إزاحة الوقت بينك وبين الحاسوب النظير، ويصبح سند تصحيح مثل «ساعة الخادم كانت +0.8 ثانية» عند اصطفاف الالتقاطات.14 في بيئة ذات إزاحة كبيرة، إصلاح مزامنة الوقت أوّلًا ثم الالتقاط أقصر طريق في النهاية.

إجراء فحص إزاحة الساعة قبل الربطأكّد حالة مزامنة وقتك بـ w32tm، قس وسجّل الإزاحة مقابل الخادم النظير بـ stripchart، استخدم تلك الإزاحة سندًا للتصحيح عند اصطفاف الالتقاطات، وإن كانت الإزاحة كبيرة أصلح المزامنة أوّلًا ثم التقطافحص حالة المزامنة بـ queryقس الإزاحة بـ stripchartسجّل الإزاحةسند التصحيح عند الربطإن كانت الإزاحة كبيرة أصلح المزامنة أوّلًا

الشكل 14: قس وسجّل إزاحة الساعة قبل الالتقاط، واستخدمها سندًا للتصحيح عند اصطفاف الالتقاطات.

7.2. لـ«لا نعرف متى سيحدث» — ذاكرة حلقيّة

لحادثة شروط إعادة إنتاجها مجهولة، الحركة الأساسيّة ترك ذاكرة حلقيّة تعمل وإيقافها عند وقوع الحادثة.

  • pktmon: الافتراضي وضع دائري. اضبط السقف (MB) بـ --file-size؛ الحزم الأقدم تُكتَب فوقها.8
  • netsh trace: حدّده كـ maxSize=1024 filemode=circular.5
  • Wireshark: تحت [Capture] → [Options] → [Output] تستطيع ضبط «ملفّات متعدّدة + ذاكرة حلقيّة». تدور حسب حجم الملفّ أو الزمن وتحتفظ بأحدث N ملفّات فقط، فتعمل طويلًا بسقف استخدام قرص.15

في كلّ حالة شارك مع الشخص في الميدان القاعدة أنّ عند وقوع الحادثة «سجّل الوقت أوّلًا ثم» أوقف الالتقاط. الذاكرة الحلقيّة تمحو الماضي كلّما طال الانتظار، فإن طال المسار من الوقوع إلى الإيقاف تُكتَب فوق الفترة التي تهمّك.

الانتظار بالتقاط ذاكرة حلقيّةلحادثة شروط إعادة إنتاجها مجهولة اترك ذاكرة حلقيّة تعمل، وعند وقوع الحادثة سجّل الوقت وأوقف سريعًا؛ إن أوقفت متأخّرًا تُكتَب فوق الحزم الأقدم وتختفي الفترة التي تهمّكابدأ التقاط ذاكرة حلقيّةاتركه يعمل وانتظرتقع الحادثةسجّل الوقتأوقف سريعًاالحزم الأقدم تُكتَب فوقهاإيقاف متأخّر يمحو الفترة التي تهمّك

الشكل 15: الذاكرة الحلقيّة تمحو الماضي كلّما طال الانتظار، فبعد تسجيل الوقت أوقف سريعًا.

8. مشكلة أنّ TLS يخفي الحمولة — ما يزال بإمكانك رؤيته

معظم حركة الأعمال اليوم TLS (HTTPS). يميل الناس إلى التفكير «إن كان مشفّرًا فالالتقاط بلا جدوى»، لكن معظم ما تريده في تحقيق المهلة ما يزال مرئيًّا مع بقاء التشفير.

  • هل أُنشئ اتّصال TCP (المصافحة الثلاثيّة)
  • إلى أي مدى وصلت مصافحة TLS — هل عاد ServerHello إلى ClientHello، هل قُطع بـ RST أو تنبيه أثناء المصافحة
  • اسم المضيف الوجهة في ClientHello (SNI)، وإصدار TLS المتفاوض عليه
  • بعد قيام الاتّصال، أي طرف توقّف عن الإرسال. موقع الصمت، إعادة الإرسال، RST، أو إغلاق نظيف (FIN)

بعبارة أخرى، عزل «لا يتّصل» و«يسقط في الوسط» و«لا يعود ردّ» نادرًا ما يحتاج فكّ تشفير الحمولة. ما يفقده التشفير هو «ماذا قالوا»؛ «من صمت، ومتى» يبقى.

ما يستطيع التقاط TLS إظهاره وما لا يستطيعالتشفير يخفي فقط حمولة بيانات التطبيق؛ إنشاء اتّصال TCP، نجاح مصافحة TLS أو فشلها، SNI وإصدار TLS، RST، وأي طرف صمت تبقى مرئيّة مع بقاء التشفيرالتقاط حركة TLSمرئيغير مرئيإعداد اتّصال TCPنتيجة TLS وSNIRST / من صمتحمولة بيانات التطبيق

الشكل 16: التشفير يفقد الحمولة فقط؛ هيكل المحادثة ما يزال مقروءًا مع بقاء TLS.

عندما ما تزال تحتاج الحمولة، يستطيع Wireshark فكّ تشفير TLS بمفاتيح جلسة تُكتَب عبر متغيّر البيئة SSLKEYLOGFILE. الدعم محدود ببعض التنفيذات مثل Firefox وChrome وEdge المعتمد على Chromium ومكتبات عائلة OpenSSL؛ SChannel المضمَّن في Windows (تطبيقات تستخدم WinHTTP أو WinINET) لا يدعم هذه الآليّة.10 لأنّ «مفتاح الجلسة يُكتَب في ملفّ» يعني أنّ من يملك ذلك الملفّ يستطيع فكّ تشفير المحادثة كاملة، هذه ليست تقنيّة إنتاج؛ عاملها إعادة إنتاج وتصحيحًا في بيئة تطوير.

كيف يعمل فكّ التشفير بـ SSLKEYLOGFILE وحدودهمفاتيح الجلسة المكتوبة عبر SSLKEYLOGFILE تمكّن Wireshark من فكّ تشفير TLS، لكن بعض التنفيذات فقط مثل Firefox وعائلة Chrome تدعمه وSChannel لا يدعمه؛ من يملك ملفّ المفتاح يستطيع فكّ تشفير المحادثة، فعاملها تقنيّة لبيئة التطوير فقطاضبط SSLKEYLOGFILEاكتب مفاتيح الجلسةاقرأ في Wiresharkحامل المفتاح يستطيع فكّ التشفيرتطوير فقطبعض رزم TLS فقطSChannel: بلا دعم

الشكل 17: كتابة مفاتيح الجلسة تستطيع فكّ التشفير، لكن التنفيذات المدعومة محدودة، وطبيعة المفتاح تجعلها تقنيّة لبيئة التطوير فقط.

عندما تمرّ الحركة عبر وكيل داخلي، الوجهة التي تظهر في التقاط هي خادم الوكيل، وTLS يسري داخل نفق CONNECT. السؤال السابق أي وكيل يتّجه إليه التطبيق أصلًا منظَّم في المقال المرافق في اليوم نفسه «الوكلاء المؤسسيّون وتطبيقات Windows — ترتيب حلّ الوكيل في WinINET وWinHTTP و.NET».

9. الربط بسجلّ التطبيق — وضع الوقت على المحور نفسه

التقاط وحده نادرًا ما ينتج الخلاصة. الحركة الحاسمة عمليًّا وضع سطر واحد من سجلّ التطبيق وجولة واحدة من الحزم على المحور الزمني نفسه.

الإجراء يبدو هكذا.

  1. حدّد وقت الحادثة من سجلّ التطبيق (مثلًا استثناء مهلة عند 10:23:41). إن كانت قيمة المهلة 30 ثانية فينبغي أن يكون البدء حوالي 10:23:11.
  2. بدّل عرض الوقت في Wireshark إلى [View] → [Time Display Format] → [Date and Time of Day]، وضيّق الفترة بمرشّح عرض (تستطيع أيضًا الترشيح بالوقت، كما في frame.time >= "2026-08-20 10:23:00" && frame.time <= "2026-08-20 10:24:00").
  3. في تلك الفترة أكّد ترتيب الفصل 5 (مصافحة → RST → إعادة إرسال → ZeroWindow). إن استطعت الاصطفاف حتى «قبل 30 ثانية من وقت المهلة في السجلّ أُرسل SYN، وبعد ذلك إعادة إرسال SYN فقط»، تُستبدل «timeout» السجلّ بالملاحظة «عند نقطة الالتقاط هذه لم يعد أي ردّ أصلًا» (هل لم يصل SYN إلى النظير، أم فُقد SYN/ACK العائد في طريق العودة، لا يُحسَم من نقطة الالتقاط هذه وحدها. إن احتجت الحسم فالتقط على الخادم واصطفّهما).
  4. صحّح دائمًا الإزاحة بين وقت الالتقاط ووقت السجلّ (إزاحة الساعة التي قستها في القسم 7.1، وترميز المنطقة الزمنيّة في السجلّ). خطأ ربط بضع ثوانٍ سيُثبّت المحادثة الخطأ كمتّهم.
إجراء اصطفاف سجلّ التطبيق والحزمحدّد وقت الحادثة من سجلّ التطبيق، اعمل وقت البدء عكسيًّا من قيمة المهلة، ضيّق الفترة في Wireshark بمرشّح عرض، أكّد الأشكال بالترتيب، صحّح إزاحة الساعة، وضعهما على المحور الزمني نفسه1. حدّد وقت الحادثة من السجلّاعمل البدء عكسيًّا من قيمة المهلة2. ضيّق الفترة بمرشّح عرض3. أكّد الأشكال بترتيب الفصل 54. صحّح إزاحة الساعةكلمة السجلّ الواحدة تصبح ملاحظة

الشكل 18: ضيّق الفترة من وقت السجلّ، أكّد الشكل، صحّح إزاحة الساعة، وضعهما على المحور نفسه.

عندما تسلّم نتائج التحقيق لطرف ثالث (مورّد، ناقل، موظّفو شبكة العميل)، قطع الضوضاء بمرشّح قبل التسليم مجاملة وإجراء سلامة. في Wireshark ضيّق إلى المحادثة المعنيّة بمرشّح عرض واحفظ «الحزم المعروضة فقط» بـ [File] → [Export Specified Packets]، فتحصل على pcapng صغير للنطاق الذي تحتاجه فقط.

أخيرًا، تحذير معاملة. ملف التقاط يحتوي التواصل نفسه. قد يشمل بيانات اعتماد لبروتوكولات نصّ واضح، وكعكات HTTP ومفاتيح API، ومحتوى بريد أو تقارير، ومعلومات شخصيّة. قرّر النقاط الثلاث التالية كمجموعة مع إجراء الالتقاط.

  • التقاط بالحدّ الأدنى: ضيّق الهدف بمرشّحات ما قبل الالتقاط (الفصلان 3 و4) واجعل النافذة الزمنيّة أقصر ما يمكن. لا تفعل «التقط كلّ شيء فحسب» في بيئة عميل
  • ضيّق قبل التسليم: صدّر محادثة الهدف فقط؛ لا تضمّن حركة طرف ثالث غير ذات صلة. إن بقيت أجزاء حسّاسة فاتّفق مع المستلم على حجب أو وسيلة أخرى
  • الاحتفاظ والحذف: قرّر أين تُحفَظ ملفات الالتقاط، ولأي مدّة، ومتى تُحذَف، واحذفها عند انتهاء التحقيق
ثلاثة قرارات قبل تسليم ملف التقاطالتقاط يحتوي التواصل نفسه، فقرّر كمجموعة مع إجراء الالتقاط أن تضيّق إلى الحدّ الأدنى بمرشّحات ما قبل الالتقاط ونافذة زمنيّة، وتستخرج محادثة الهدف فقط قبل التسليم فلا تُضمَّن حركة غير ذات صلة، وتقرّر موقع الاحتفاظ ومدّته وتحذف بعد التحقيقالتقاط = الحركةالتقط الحدّ الأدنىاستخرج الهدف أوّلًااضبط الاحتفاظ واحذفرشّح وصدّر

الشكل 19: قرّر التقاط الحدّ الأدنى والتضييق قبل التسليم والاحتفاظ والحذف كمجموعة مع إجراء الالتقاط.

10. الخلاصة

  • طبقة تحت «timeout» سجلّ التطبيق حقيقة الحزم التي مرّت فعلًا على السلك. هل SYN بلا ردّ، أم قطع RST الاتّصال، أم استمرّت إعادة الإرسال، أم ظهر ZeroWindow يغيّر أين تنظر تاليًا.
  • حتى في موقع يتعذّر فيه تثبيت Wireshark تستطيع الالتقاط بـ pktmon وnetsh trace المضمَّنين في Windows. التقاط بالأداة المضمَّنة، وقراءة بـ Wireshark على جهازك — ذلك التقسيم هو الشكل الأساسي.
  • pktmon أربع خطوات: سجّل مرشّحًا → pktmon start --capturepktmon stoppktmon etl2pcap. افتراضيًّا يُقتطَع إلى 128 بايت، فإن أردت الحمولة فلا تنسَ --pkt-size 0. رؤية موقع الإسقاط وسببه قوّة يملكها pktmon وحده.
  • netsh trace يلتقط حزمة مزوّدي ETW كسيناريو، ومع persistent=yes يستطيع الصمود عبر إعادة التشغيل. حوّل ETL إلى pcapng بـ etl2pcapng لتقرأه.
  • في Wireshark ابدأ من tcp.analysis.flags وابحث عن المصافحة وRST وإعادة الإرسال وZeroWindow بهذا الترتيب. أسرع إن استوعبت الصورة بـ Conversations وI/O Graph أوّلًا ثم ضيّقت.
  • حركة localhost لا تمرّ أبدًا عبر بطاقة شبكة، فلا تستطيع التقاطها بالطريقة العاديّة. استخدم محوّل استرجاع Npcap أو التقاط pktmon داخل الرزمة.
  • التقط على الجانبين واصطفّهما فيُحسَم «أي طرف صمت». المقدّمة مزامنة الساعة (w32tm). لحادثة شروط إعادة إنتاجها مجهولة انتظر بذاكرة حلقيّة.
  • حتى تحت TLS هيكل المحادثة مرئي. عامل فكّ التشفير (SSLKEYLOGFILE) تقنيّة لبيئة التطوير فقط، وعامل ملف التقاط نفسه سرًّا: أدخل التقاط الحدّ الأدنى والتضييق والحذف في التشغيل.

يُظنّ التقاط الحزم غالبًا «أداة مختصّ شبكة»، لكن عمليًّا هو أداة تحقيق من جانب التطبيق لا تبدأ معناها إلّا عندما تصطفّها مع سجلّ التطبيق. في المرّة التالية التي يتوقّف فيها التحقيق عند كلمة «timeout» الواحدة، اذهب انظر طبقة أسفل.

مقالات ذات صلة

مجالات الاستشارة ذات الصلة

شركة كومورا سوفت ذ.م.م. تتولّى تحقيقات أعطال أصلها الاتّصال مثل «اتّصال تطبيق الأعمال يفشل بين حين وآخر ولا نجد السبب» و«نريد عزل خطأ اتّصال يحدث فقط في بيئة العميل». نأخذ تصميم الالتقاط (أين وماذا وبكم نلتقط)، وتحليل Wireshark، والربط بسجلّ التطبيق، والإصلاح من جانب التطبيق كعمل متواصل واحد.

روابط مرجعيّة

  1. Microsoft Learn, pktmon etl2pcap. عن تحويل سجلات ETL لـ pktmon إلى pcapng لتحليلها في Wireshark وأدوات مشابهة، وعن ضياع معلومات الإسقاط ونقطة الالتقاط داخل الرزمة في pcapng، فينبغي التضييق أوّلًا بـ –drop-only أو –component-id قبل التحويل.  2 3 4

  2. GitHub, microsoft/etl2pcapng. عن etl2pcapng كأداة مايكروسوفت مفتوحة المصدر التي تحوّل الحزم داخل ملف ETL ملتقَط بـ netsh trace start capture=yes وما شابه إلى pcapng، مع الحفاظ على معلومات الواجهة وكتابة معرّف العمليّة كتعليق حزمة.  2 3 4 5

  3. Microsoft Learn, Pktmon command formatting. عن توفّر pktmon.exe على Windows 10 وWindows Server 2019 (الإصدار 1809) وما بعد؛ وإجراء البدء السريع تسجيل مرشّح → بدء → إعادة إنتاج → فحص العدّادات → إيقاف وتحويل؛ والمرشّحات 32 كحدّ أقصى، تُجمَع بـ OR، ولا تميّز المصدر عن الوجهة؛ والحزم المُسقَطة في الإخراج النصّي تحمل dropReason.  2 3 4 5

  4. Microsoft Learn, Packet Monitor (Pktmon). عن كون Packet Monitor أداة تشخيص مضمَّنة في Windows عبر المكوّنات؛ والتقاط الحزم في نقاط متعدّدة داخل رزمة الشبكة لتصوير مسار الحزمة؛ والإبلاغ عن الإسقاطات في المكوّنات المدعومة مع سبب الإسقاط (MTU Mismatch وFiltered VLAN وغيرها)؛ وتوفير عدّادات حزم لكلّ نقطة.  2 3 4

  5. Microsoft Learn, netsh trace. عن معاملات netsh trace start مثل scenario وcapture وtracefile وmaxSize وfileMode (circular يعمل كذاكرة حلقيّة) وpersistent (الإبقاء على الجلسة عبر إعادة التشغيل)، وعن تحويل ETL إلى نصّ وما شابه بـ netsh trace convert.  2 3 4 5

  6. Microsoft Learn, Using Netsh to manage traces. عن السيناريو كمجموعة مزوّدين محدَّدة مسبقًا لاستكشاف الأعطال؛ وفحصها بـ netsh trace show scenarios / show scenario؛ وأنّ جلسة تتبّع واحدة فقط تستطيع العمل في الوقت نفسه؛ ومرشّحات الحزم مثل ipv4.address عند capture=yes؛ والإيقاف ينتج ETL و.cab يشمل معلومات النظام.  2 3 4 5 6

  7. Microsoft Learn, Diagnose packet loss. عن إجراء التحقيق الرسمي: أوّلًا التقاط تتبّع بـ pktmon وفحص أسباب الإسقاط المحلّيّة والإحصاءات، ودمجه مع تحليل على مستوى البروتوكول في Wireshark، وإن لم يكفِ الانتقال إلى تتبّع على مستوى المكوّن بسيناريو netsh trace.  2 3

  8. Microsoft Learn, pktmon start. عن بدء التقاط بـ –capture؛ و–pkt-size الافتراضي 128 بايت و0 يسجّل الحزمة كاملة؛ و–file-name و–file-size (افتراضي 512MB)؛ وقيم –log-mode (circular وmulti-file وreal-time وmemory) مع circular كافتراضي.  2 3 4

  9. Wireshark Wiki, CaptureSetup/Loopback. عن عجز التقاط عادي يستهدف بطاقة مادّيّة على Windows عن التقاط حركة الاسترجاع إلى 127.0.0.1؛ و«Adapter for loopback traffic capture» من Npcap يجعل التقاط الاسترجاع ممكنًا؛ وNpcap مضمَّن في مثبّت Windows من Wireshark 3.0 فصاعدًا.  2 3 4

  10. Wireshark Wiki, TLS. عن قدرة Wireshark على فكّ تشفير TLS بمفاتيح جلسة تُكتَب عبر متغيّر البيئة SSLKEYLOGFILE؛ والدعم يشمل Firefox وChrome وEdge المعتمد على Chromium ومكتبات عائلة OpenSSL وما شابه؛ وMicrosoft SChannel لا يدعم هذه الآليّة.  2

  11. Microsoft Learn, pktmon counters. عن عرض pktmon counters عدّادات المرور والإسقاط لكلّ مكوّن مراقَب؛ و–drop-reason يعرض أحدث سبب إسقاط لكلّ عدّاد إسقاط؛ والتحديث الحيّ بـ –live. 

  12. Wireshark, Building Display Filter Expressions (Wireshark User’s Guide). عن صياغة مرشّح العرض، ومواصفات الحقول مثل ip.addr وtcp.port، وعوامل المقارنة، وجمعها بـ and/or/not. 

  13. Wireshark, TCP Analysis (Wireshark User’s Guide). عن قائمة أعلام تحليل TCP في Wireshark (tcp.analysis.retransmission وtcp.analysis.duplicate_ack وtcp.analysis.out_of_order وtcp.analysis.zero_window وغيرها) وشروط تعيين كلّ منها.  2

  14. Microsoft Learn, Windows Time service tools and settings. عن w32tm كأداة سطر الأوامر الموصى بها لضبط W32Time ومراقبته واستكشاف أعطاله، وعن w32tm /stripchart الذي يعرض إزاحة الوقت بينك وبين حاسوب نظير (خيارات مثل /dataonly و/samples). 

  15. Wireshark, Capture files and file modes (Wireshark User’s Guide). عن أوضاع إخراج ملف التقاط (ملف واحد، ملفّات متعدّدة، ذاكرة حلقيّة) وعن الذاكرة الحلقيّة التي تحتفظ بأحدث البيانات فقط فتضع سقفًا لاستخدام القرص. 

أحدث المقالات التي تشترك في نفس الوسوم. عمّق فهمك بمواضيع مرتبطة.

ترتبط هذه المقالة بشكل طبيعي بصفحات الخدمات التالية.

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

أسئلة شائعة حول موضوع هذه المقالة.

كيف ألتقط الحزم على خادم عميل لا يمكن تثبيت Wireshark عليه؟
استخدم أداتي Windows المضمَّنتين pktmon أو netsh trace فتلتقط دون تثبيت برمجيات إضافية. مع pktmon سجِّل مرشّحًا في طرفيّة مرتفعة الصلاحيّة، ابدأ الالتقاط بـ pktmon start --capture، وأوقفه بـ pktmon stop. ملف ETL الناتج يُحوَّل إلى pcapng بـ pktmon etl2pcap، فتنقل التحليل إلى Wireshark على جهازك. «التقاط بالأداة المضمَّنة، وقراءة بـ Wireshark» هو التقسيم الأساسي في المواقع التي تقيّد التثبيت.
هل أستخدم pktmon أم netsh trace؟
إن كان نظام التشغيل يملك pktmon (Windows 10 / Windows Server 2019 وما بعد)، ابدأ بـ pktmon. الأوامر بسيطة، وترى أي مكوّن في رزمة الشبكة أسقط الحزمة (سبب الإسقاط)، والتحويل إلى pcapng مكتفٍ ذاتيًّا. netsh trace أفضل عند الالتقاط على نظام قديم بلا pktmon، أو عند جمع أحداث ETW لمكوّنات Windows كسيناريو، أو عندما تريد أن يصمد الالتقاط عبر إعادة التشغيل بـ persistent=yes. مواد استكشاف الأعطال لدى Microsoft تشير إلى هذا الترتيب أيضًا: pktmon أولًا، ثم netsh trace إن لم يكفِ.
لماذا لا تظهر حركة localhost (127.0.0.1) في Wireshark؟
حركة localhost لا تمرّ أبدًا عبر بطاقة شبكة مادّيّة؛ تُدار على مسار الاسترجاع الداخلي في نظام التشغيل. الالتقاط العادي الذي يستهدف محوّلًا مادّيًّا لذلك لا يراها. في Wireshark اختر «Adapter for loopback traffic capture» من Npcap فتلتقط حركة الاسترجاع. pktmon يلتقط داخل رزمة الشبكة، فيستطيع مراقبة حركة الاسترجاع أيضًا. خلط شائع آخر: «localhost» يُحلَّ إلى IPv6 ::1، فالشاشة التي ترقب 127.0.0.1 تبقى فارغة — أكّد بتحديد العنوان صراحةً.
هل أرى محتوى حركة HTTPS (TLS) في التقاط الحزم؟
حمولة بيانات التطبيق مشفّرة وغير مرئيّة. «هيكل» المحادثة — اتصال TCP وانقطاعه، نجاح مصافحة TLS، قطع RST، أي طرف توقّف عن الردّ — يبقى مرئيًّا حتى مع التشفير، فمعظم تحقيقات المهلة تسير وTLS مشفّر. إن احتجت الحمولة ففكّ التشفير عبر SSLKEYLOGFILE موجود، لكنّه مدعوم فقط في بعض تنفيذات TLS مثل Firefox وعائلة Chrome؛ SChannel المضمَّن في Windows غير مدعوم. الآليّة تكتب مادّة المفتاح السرّي، فعاملها خيارًا لبيئة التطوير فقط.
هل من الآمن إرسال ملف التقاط إلى مكتب دعم خارجي؟
إرساله كما هو خطر. التقاط يحتوي التواصل نفسه وقد يشمل بيانات اعتماد لبروتوكولات نصّ واضح، وكعكات، ومفاتيح API، ومعلومات شخصيّة. أولًا عند الالتقاط ضيّق المرشّح والنافذة الزمنيّة إلى أدنى ما تحتاج، وقبل التسليم استخرج محادثة الهدف فقط بمرشّح عرض Wireshark ثم صدّرها. لما يبقى، اتّفق مع المستلم على معاملة الأجزاء الحسّاسة (حجب، أو تسليم بوسيلة أخرى) قبل الإرسال. قرّر مسبقًا مدّة الاحتفاظ بملفات الالتقاط وموعد حذفها.

الملف الشخصي للمؤلف

صفحة الملف الشخصي لمؤلف المقالة.

غو كومورا

مؤسّس شركة كومورا سوفت ذ.م.م.

يركّز على تطوير برامج ويندوز، والاستشارات التقنية، والتحقيق في الأخطاء، ويتميّز في المشاريع التي تبقى فيها الأصول القديمة ناشطة، وفي تشخيص الأعطال التي يصعب تحديد سببها.

العودة إلى المدونة