WireGuard يرسل البيانات لكنه لا يستقبل شيئًا: أي جهة؟
عدّاد الإرسال المتزايد يدل على اتجاه، لا على تشخيص. حدّد ما إذا كان الطلب لم يغادر النفق قط أو أن الرد لم يعد، قبل أن تعدّل أي شيء.
عدّادات الإرسال التي ترتفع بينما يبقى عدّاد الاستقبال عند الصفر تصف اتجاهًا، لا تشخيصًا. تظهر القراءة نفسها عندما لا يُكمل النظير المصافحة، وعندما تختار الوجهة النظير الخطأ، وعندما لا يكون للطرف البعيد مسار عودة، وعندما يُسقط مرشّح الرد في طريق عودته. كل واحد من هذه يُصلح في مكان مختلف.
المقارنة التي تختصر العمل هي بين طلب لم يغادر النفق قط ورد لم يعد قط. التقاط واحد على الواجهة الصحيحة يحسم بينهما.
العدّادات تصف الحجم، لا اتجاه العطل
تسجّل عدّادات WireGuard ما سلّمته الواجهة إلى النظير وما استلمته منه. وهي لا تقول أي وجهة أو أي نظير أو أي نصف من التبادل فشل. حركة المرور الخلفية تجعل الإجماليات أقل إفادة، لأن بعض البايتات قد تكون رسائل إبقاء حياة أو تدفقات غير ذات صلة. اقرأها كمؤشر على أن الواجهة نشطة، ثم كفّ عن معاملتها كدليل.
الحقيقة الأولى المفيدة هي ما إذا كانت المصافحة حديثة. بدونها لم يُشفَّر أي شيء لهذا النظير وليس لعدّاد الاستقبال سبب للتحرك.
اختيار النظير أو مسار الرد: تفسيران
التفسير الأول أن الحزمة لم تصل إلى النظير المقصود، لأن المسار كان يشير إلى مكان آخر أو لأن البادئات المسموح بها للنظير لم تغطِّ الوجهة. التفسير الثاني أن الحزمة وصلت ولم يتمكن الرد من العودة، وهذه مشكلة توجيه في الطرف البعيد. يفصل الجدول بينهما بحسب ما ستلاحظه عند كل نقطة.
| Observation | Points to |
|---|---|
| No handshake while transmit climbs | Peer selection or endpoint |
| Handshake current, request visible on the server | Reply path or far-side route |
| Request never visible on the server | Allowed prefixes or local route |
| Both packets visible, nothing reaches the client | Return filter or translation |
اقرأ الجدول من الأعلى. غياب المصافحة يوجّهك إلى المفاتيح ونقاط النهاية والمسار الخارجي، لأنه لا يوجد شيء آخر لفحصه بعد. المصافحة الحديثة مع ظهور الطلب على الخادم تنقل المشكلة إلى اتجاه العودة، حيث يقرّر جدول التوجيه الخاص بالوجهة. الطلب الذي لا يظهر أبدًا على الخادم مشكلة اختيار، والبادئات المسموح بها على كلا النظيرين هي أول ما يُقارن.
صفّان من هذه الصفوف الأربعة يُصلحان على العميل وصفّان على الخادم. معرفة في أي زوج أنت هي معظم العمل.
أين تختفي الردود
يغادر الرد الوجهة، ويصل إلى واجهة النفق في الخادم، ويُشفَّر للنظير الذي تطابق عناوينه المسموح بها العنوان الداخلي للعميل. إذا فشل هذا التطابق، يُهمل الرد بصمت، وهو ما يبدو تمامًا كعطل شبكة من جهة العميل. وإذا شُفِّر الرد ورفضه مرشّح العميل نفسه، تتكرر الأعراض نفسها. الحالتان تحتاجان إلى الالتقاط لا إلى العدّاد.
أقوى صورة لهذا الخطأ خادم يمرّر الحزم للعميل لكن ليس لديه مسار عودة إلى النطاق الداخلي للعميل. يقبل الطلب، ويرسل الرد نحو بوابته الافتراضية، ولا يرى النفق ذلك أبدًا. قاعدة ترجمة واسعة تُضاف إلى الخادم تخفي هذا العطل بدل أن تصلح المسار.
اختبر وجهة واحدة من طرف إلى طرف
اختر وجهة واحدة داخل نطاق النظير، واختبرها بينما تكون المصافحة حديثة بشكل واضح. الأوامر أدناه تقرأ حالة النظير والمسار المختار وكلا جانبي التبادل. نفّذ الالتقاط على الواجهة التي تستخدمها الحزم المشفّرة فعليًا.
wg show wg0 latest-handshakes
wg show wg0 transfer
ip route get 10.60.9.5
sudo tcpdump -ni wg0 host 10.60.9.5
الالتقاط الذي يُظهر الطلب على واجهة النفق مع عدم عودة أي شيء هو إجابة من جهة الخادم، ثم جدول التوجيه الخاص بالوجهة هو ما يجب النظر إليه تاليًا. عدم ظهور أي شيء على الإطلاق يعني أن الحزمة سلكت مسارًا آخر، لذلك المسار المحلي هو المشتبه به. التبادل الظاهر في الالتقاطين دون تقدّم في التطبيق ينقل السؤال إلى حجم الحزمة أو إلى مرشّح لا تُظهره إحصاءات الواجهة أبدًا. أبقِ وجهة واحدة وعميلًا واحدًا في الاختبار، لأن متغيرًا ثانيًا يحوّل الدليل مرة أخرى إلى انطباع.
إذا فشلت الأسماء بينما يعمل عنوان مسموح به، فإن الجواب في DNS لا في النفق. إذا توقفت فقط عمليات النقل الكبيرة، فافحص حجم الحزمة بشكل منفصل.