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

خمس خطوات بهذا الترتيب: أعد إنتاج الخطأ، ثم اسرد المستمعين، ثم افهم عنوان البدل، ثم أسنِد المهمة، ثم تحقق.

الخطوة 1: أعد إنتاج الخطأ واقرأه

شغّل dnsmasq في المقدمة بالتهيئة نفسها التي تستخدمها الخدمة، ليظهر الخطأ في طرفيتك بدلًا من سجل عليك تخمينه. لاحظ عائلة العنوان والعنوان المحلي في الرسالة. الربط بعنوان محدد والربط بعنوان البدل فشلان مختلفان ومالكان مختلفان.

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

الخطوة 2: اسرد المالكين

اسرد المقابس أولًا. مرشح على منفذ المصدر 53 يعرض كلا النقلين والعملية المالكة عندما تملك الصلاحية لرؤيتها:

ss -lntup 'sport = :53'

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

الخطوة 3: فخ عنوان البدل

يغيّر خيار bind-interfaces ما إذا كان dnsmasq يربط مقبس بدل أو مقبسًا واحدًا لكل واجهة مهيأة، كما يصف مرجع dnsmasq ذلك. بدونه قد يربط dnsmasq عنوان البدل ويرشح الطلبات بحسب الواجهة بدلًا من ذلك، وهذا يفشل فورًا عندما يحتفظ خادم خدمة آخر بعنوان البدل. يضيف Linux الخيار bind-dynamic، الذي يتعامل مع الواجهات المنشأة بعد بدء التشغيل، وهي مسألة حقيقية عندما تظهر واجهة VPN عند الاتصال فقط.

لهذا تتصادم اثنتان من خوادم الخدمة تبدوان مهيأتين لواجهات مختلفة. التصادم عند المقبس لا عند النية. اختر نمط الربط عن قصد واقرأ السلوك الموثق لإصدارك قبل تغييره.

الخطوة 4: أسنِد المهمة

قرر أي خادم خدمة يجيب عملاء VPN وأيها يجيب المضيف. محلل واحد يستمع على عنوان النفق ويعيد التمرير إلى المنبع ترتيب شائع؛ أما محللان يفترض كل منهما أنه يملك المنفذ 53 فليس ترتيبًا على الإطلاق.

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

الخطوة 5: تحقق من المقبس ثم من المسار

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

ثلاث نتائج منفصلة يجب إبقاؤها متمايزة: المقبس موجود، والعميل يصل إليه، والإجابة صحيحة.

ما لا يجب فعله

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

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

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