يستمر خادم أسماء VPN في الهبوط تحت خادم الشبكة المحلية، وتعديل /etc/resolv.conf يصلح ذلك لبضع دقائق. هذا الملف مُولَّد، لذا لا يبقى الإصلاح أبدًا. في resolvconf على Debian يكون مدخل الترتيب هو /etc/resolvconf/interface-order، وهو يفرز أسماء السجلات لا عناوين DNS. تأكد من أي مكدس محلّل هو المسؤول فعليًا قبل أن تلمس أيًا من الملفين.

تأكد من أن resolvconf يملك المخرجات

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

readlink -f /etc/resolv.conf
dpkg -l resolvconf 2>/dev/null | tail -n 1

إذا كان المسار المحلول لا يؤدي إلى دليل التشغيل الخاص بـ resolvconf، فتوقف هنا: هذا الدليل يخص مكدسًا آخر.

بعد هذا التحقق فقط يستحق الأمر سرد السجلات التي يحتفظ بها resolvconf حاليًا.

اقرأ السجلات قبل كتابة الأنماط

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

ls /run/resolvconf/interfaces
cat /etc/resolvconf/interface-order

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

اكتب الترتيب كأنماط أول تطابق

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

# /etc/resolvconf/interface-order
lo*
tun_work.*
enp*
*

ضع نمط النفق المحدد فوق نمط الالتقاط الشامل وفوق نمط الواجهة الفيزيائية.

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

أعد التوليد وتحقق من النتيجة

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

resolvconf -u
cat /etc/resolv.conf

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

أخرج السجل القديم بدلًا من تخفيض رتبته

سجل VPN قديم يظل في الظهور بعد قطع الاتصال هو خطأ في دورة حياة تكامل العميل. نقله إلى الأسفل يخفي العَرَض ويترك محلّلًا ميتًا في القائمة.

أخرجه عبر المكوّن الذي يسجله، ثم تأكد من أن دليل السجلات لم يعد يسرده.

سجّل اسم المزوّد والنمط الذي غيّرته والاستعلامين اللذين شغّلتهما. الشخص التالي يحتاج تلك الأسماء أكثر من القصة.

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