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

ما الذي قاسته القائمة فعلًا

يحتفظ دليل عام بحقول مثل وقت آخر فحص، ورقم زمن الاستجابة المرصود، وعدد الجلسات، وأحيانًا قائمة البروتوكولات. كل واحد من هذه يصف آخر ملاحظة ناجحة من وجهة نظر المشروع نفسه، لا حالة العقدة عند وصول حزمتك.

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

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

راقب مراحل العميل، لا المؤشر الدوّار

كل عميل VPN يمر بالتسلسل العريض نفسه: تحليل الاسم، وفتح اتصال نقل، والتفاوض على الأمان، والمصادقة، ثم تهيئة النفق وتمرير البيانات. الفشل في كل مرحلة يترك أدلة مختلفة، والمؤشر الدوّار لا يعرض أيًا منها.

ابدأ بتحليل الاسم. إذا لم يُحلّ اسم المضيف، فلم يُختبر أي شيء يخص توفّر العقدة، لأن الاتصال لم يغادر جهازك قط. بعد ذلك النقل: تبادل TCP أو UDP مرفوض أو منتهي المدة يخبرك بأن نقطة النهاية لا تجيب على ذلك المنفذ، وهذه نتيجة حقيقية عن العقدة. ثم التفاوض والمصادقة، حيث تفشل شهادة خاطئة أو ملف تعريف منتهٍ أو شيفرة غير متطابقة بينما العقدة سليمة تمامًا. وفقط بعد تهيئة النفق يمكن لعطل في التوجيه أو DNS أن يفسّر الخطوة الأخيرة.

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

متغير واحد لكل محاولة

قارن المرشحين بالعميل نفسه، وشبكة الوصول نفسها، وصيغة الملف نفسها، وغيّر نقطة النهاية فقط. وإلا فقد يكون العطل من عندك وستنسبه إلى العقدة.

محاولتان تكفيان لإنشاء نمط، والثالثة تؤكده. إذا فشلت العقدة A في مرحلة النقل وفشلت العقدة B في المصادقة، فعندك مشكلتان غير مترابطتين لا قائمة واحدة قديمة.

عندما تفشل كل العقد بالطريقة نفسها

الفشل الشامل في المرحلة الأولى يشير إلى جهتك: محلل أسماء لا يستطيع الإجابة، أو جدار حماية محلي يحجب البروتوكول، أو شبكة تسمح بحركة الويب فقط. لا يستطيع الدليل الإبلاغ عن ذلك، لأن فحوصه لا تنطلق من مقعدك.

افحص حالة الشبكة المشكَّلة عن قصد. بعض شبكات الوصول تسمح بـ HTTPS إلى الويب وتُسقط البروتوكولات الأخرى، مما يجعل كل مرشح يبدو ميتًا بينما القائمة دقيقة. ومقارنة تحميل صفحة في المتصفح بمحاولة اتصال خام تفصل بين الحالتين في أقل من دقيقة.

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

أعد إنتاج المحاولة من الطرفية كي تكون المراحل مرئية. الأوامر الثلاثة أدناه تحلّ الاسم، وتختبر ما إذا كان المنفذ يجيب، وتطبع أسطر التفاوض من ملف تعريف OpenVPN:

dig +short node.example.net
curl -s --max-time 5 telnet://node.example.net:443
openvpn --config node.ovpn --verb 4 2>&1 | grep -iE "TLS|AUTH|PUSH"

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

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