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

تتبّع الطبقات الأربع بالترتيب

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

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

ابدأ بالخدمة التي لا تعمل مرتين

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

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

ثم اسأل من يملك المنفذ

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

Get-NetUDPEndpoint -LocalPort 500,4500 | Select-Object LocalAddress,LocalPort,OwningProcess
netstat -ano | findstr :500
sudo lsof -nP -iUDP:500
ss -lunp | grep -E ':500|:4500'

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

برنامج تشغيل المرشح يقع تحت مساراتك

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

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

قرّر أي منتج يملك الإقلاع، ثم سجّل ذلك

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

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

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