DNS في Linux: فهم resolution وملف /etc/hosts عمليًا
DNS من أهم أجزاء الشبكات في Linux. كثير من أعطال الاتصال ليست مشكلة إنترنت، بل مشكلة ترجمة أسماء.
في هذا الدرس ستتعلم كيف تعمل Name Resolution وكيف تشخّص مشاكل DNS بسرعة.
ما هو DNS ولماذا هو مهم؟
- يحوّل اسم النطاق إلى عنوان IP
- يسهّل الوصول للخدمات بدون حفظ IPات
- أي خلل فيه قد يوقف التطبيقات رغم أن الشبكة تعمل
كيف تتم Name Resolution في Linux؟
بشكل مبسط، النظام يبحث بالترتيب التالي غالبا:
- ملف
/etc/hosts - خوادم DNS المحددة في إعدادات resolver
ترتيب المصادر قد يتأثر بإعداد /etc/nsswitch.conf.
الأمر dig: أفضل أداة لاستعلام DNS
dig openai.com
dig +short openai.com
dig A openai.com
dig MX gmail.com
dig @8.8.8.8 openai.com
+short: نتيجة مختصرة@8.8.8.8: استعلام عبر DNS server محدد
الأمر nslookup: فحص DNS سريع
nslookup openai.com
nslookup openai.com 1.1.1.1
بسيط وسريع، لكن dig غالبا أكثر تفصيلا في بيئات الإنتاج.
فهم ملف /etc/resolv.conf
cat /etc/resolv.conf
مثال:
nameserver 8.8.8.8
nameserver 1.1.1.1
search localdomain
| السطر | المعنى |
|---|---|
nameserver |
عنوان DNS server المستخدم للاستعلام |
search |
نطاق افتراضي إضافي للأسماء غير الكاملة |
ملف /etc/hosts: ربط محلي يدوي
cat /etc/hosts
مثال سطر مخصص:
192.168.1.50 app.local
هذا مفيد للاختبار المحلي أو بيئات داخلية بدون DNS مركزي.
اختبار الترجمة باستخدام getent hosts
getent hosts openai.com
getent hosts app.local
أمر ممتاز لأنه يعكس سلوك resolver الفعلي في النظام.
أخطاء شائعة في DNS على Linux
- DNS servers غير متاحة في
resolv.conf - مدخل خاطئ في
/etc/hosts - تغيير إعدادات الشبكة بدون إعادة تحميل resolver
- الاعتماد على cache قديم أثناء الاختبار
تمرين عملي: تشخيص DNS خطوة بخطوة
dig +short openai.com
nslookup openai.com
cat /etc/resolv.conf
getent hosts openai.com
grep -n "openai" /etc/hosts
إذا نتائج dig وgetent متسقة، فطبقة DNS تعمل بشكل سليم غالبا.
FAQ: أسئلة شائعة حول DNS وhosts في Linux
ما هو DNS في Linux؟
DNS هو النظام الذي يحول أسماء النطاقات مثل example.com إلى عناوين IP يمكن للشبكة التعامل معها.
ما دور ملف /etc/hosts؟
ملف /etc/hosts يوفّر ربطا محليا يدويا بين اسم نطاق وعنوان IP قبل الرجوع غالبا إلى DNS الخارجي.
كيف أتحقق من مشكلة DNS بسرعة؟
استخدم dig أو nslookup لاختبار الترجمة، ثم راجع resolv.conf وhosts لمعرفة مصدر المشكلة.