التحقق بدقة من خوادم DNS وتكوينها على نظام Linux أمر بالغ الأهمية للحفاظ على استقرار وكفاءة شبكتك. يوفر هذا المقال دليلاً شاملاً لكل من المبتدئين والمستخدمين المتقدمين حول كيفية التحقق من خوادم DNS وإعدادها على Linux. بدءًا بالمفاهيم الأساسية، يغطي استخدام أدوات سطر الأوامر المحددة، وتحرير ملفات التكوين، واستكشاف الأخطاء وإصلاحها، ويشمل المعرفة العملية بشكل شامل. نتيجة لذلك، سيصبح نظام Linux الخاص بك أكثر كفاءة في الوصول إلى الموارد على الإنترنت.
ما هو DNS: شرح المفهوم الأساسي
نظام أسماء النطاقات (DNS) هو نظام يحول أسماء نطاقات الإنترنت إلى عناوين IP والعكس. يلعب دورًا حاسمًا في جعل بحث الإنترنت والوصول إلى المواقع الإلكترونية ممكنًا من خلال ترجمة أسماء النطاقات السهلة التذكر (مثل www.example.com) إلى عناوين IP الرقمية (مثل 192.0.2.1) التي يمكن للكمبيوترات فهمها. يسهل هذا العملية، المعروفة بـ “حل الأسماء”، استرجاع المعلومات على الإنترنت.
يتمتع نظام DNS ببنية تسلسلية مع “خوادم DNS الجذرية” في القمة، والتي تدير الجزء الأخير من أسماء النطاقات (مثل .com، .org). تتبعها “خوادم النطاقات العليا (TLD)”، ثم “خوادم DNS الموثوقة”، وأخيرًا، “خوادم DNS المحلية” التي تستجيب لاستفسارات المستخدمين في هذا الإعداد المنظم.
عندما يدخل المستخدم اسم نطاق في متصفح ويب، يبحث خادم DNS المحلي عن العنوان IP المقابل. إذا لم يكن لدى خادم DNS المحلي المعلومات، يتم تمرير الطلب إلى خوادم DNS ذات مستويات أعلى حتى يتم استرجاع المعلومات اللازمة. تتم هذه العملية عادةً في غضون مللي ثوانٍ، مما يتيح للمستخدم الوصول إلى صفحة الويب.
نظام DNS ضروري لبنية الإنترنت، وتشغيله الفعال له تأثير كبير على أداء وإمكانية الوصول إلى الويب. لذلك، تكوين وإدارة خوادم DNS على أنظمة Linux بشكل صحيح هي مهارة حاسمة لمدراء النظام.
كيفية التحقق من خوادم DNS: باستخدام أدوات سطر الأوامر
هناك عدة طرق للتحقق من إعدادات خادم DNS على أنظمة Linux، ولكن الطريقة الأكثر مباشرة وشيوعًا هي استخدام أدوات سطر الأوامر. هنا، نقدم أداتين مستخدمتين على نطاق واسع: الأمر cat
والأمر nmcli
.
التحقق من /etc/resolv.conf باستخدام الأمر `cat`
الطريقة الأساسية هي عرض ملف /etc/resolv.conf
. يحتوي هذا الملف على عناوين خوادم DNS التي يستخدمها النظام لحل DNS. يمكنك التحقق من محتواه بتنفيذ الأمر التالي:
cat /etc/resolv.conf
قد يبدو الإخراج مثل هذا:
# Generated by NetworkManager
search example.com
nameserver 192.168.1.1
nameserver 8.8.8.8
في هذا المثال، تشير الأسطر التي تبدأ بـ nameserver
إلى عناوين IP لخوادم DNS، مع تعيين 192.168.1.1
وعنوان DNS العام لجوجل 8.8.8.8
.
التحقق من خوادم DNS باستخدام الأمر `nmcli`
في الأنظمة التي تستخدم NetworkManager
، يمكنك استخدام الأمر nmcli
للتحقق من إعدادات DNS للاتصال الشبكي الحالي. يسترجع الأمر التالي معلومات خادم DNS:
nmcli device show | grep IP4.DNS
يستخرج هذا الأمر ويعرض إعدادات خادم DNS (IPv4) من معلومات جهاز الشبكة الحالي. قد يبدو الإخراج مثل هذا:
IP4.DNS[1]: 192.168.1.1
IP4.DNS[2]: 8.8.8.8
تتيح لك هذه الطرق التحقق بسهولة من معلومات خادم DNS المعينة على نظام Linux الخاص بك، والتي يمكن أن تكون مفيدة لتشخيص مشاكل الاتصال بالشبكة أو النظر في تغييرات على خادم DNS محدد.
كيفية إعداد خوادم DNS: تحرير /etc/resolv.conf
إحدى الطرق الأساسية لإعداد خوادم DNS على نظام Linux هي بتحرير ملف /etc/resolv.conf
مباشرة. يحتفظ هذا الملف بقائمة خوادم DNS التي يشير إليها النظام لحل DNS. هنا، نشرح كيفية تحرير هذا الملف بأمان.
تحرير ملف /etc/resolv.conf
- أولاً، قم بعمل نسخة احتياطية من الإعدادات الحالية. من المهم أن تتمكن من استعادة الملف الأصلي في حالة حدوث أي مشاكل. استخدم الأمر التالي لإنشاء نسخة احتياطية:
sudo cp /etc/resolv.conf /etc/resolv.conf.backup
- بعد ذلك، استخدم محرر نصوص لتحرير ملف
/etc/resolv.conf
. هنا نستخدم محررnano
، ولكن يمكنك استخدام محررك المفضل مثلvi
أوemacs
:
sudo nano /etc/resolv.conf
- بمجرد فتح الملف، أضف أو عدل الأسطر التي تبدأ بـ
nameserver
لتحديد عناوين خوادم DNS. على سبيل المثال، لاستخدام عناوين DNS العامة لجوجل، يجب كتابة:
nameserver 8.8.8.8
nameserver 8.8.4.4
- بعد إجراء التغييرات، احفظ الملف واخرج من المحرر. إذا كنت تستخدم
nano
، اضغط علىCtrl + O
للحفظ وCtrl + X
للخروج.
تفعيل الإعدادات الجديدة
بعد تحرير ملف /etc/resolv.conf
، عادةً ما تحتاج إلى إعادة تشغيل خدمة الشبكة لتطبيق التغييرات. يمكن القيام بذلك بالأمر التالي:
sudo systemctl restart network.service
أو، إذا كنت تستخدم NetworkManager
، يمكنك إعادة تشغيل الاتصال بالشبكة بهذا الأمر:
sudo systemctl restart NetworkManager
يطبق هذا الإعدادات الجديدة لـ DNS على نظامك. للتأكد من أن الإعدادات تعمل بشكل صحيح، يُنصح بالاختبار عن طريق الوصول إلى المواقع الإلكترونية أو استخدام أوامر مثل ping
لحل أسماء النطاقات.
تكوين خادم DNS يدويًا فعال لضبط استراتيجيات حل DNS وفقًا لمتطلبات النظام أو الشبكة. ومع ذلك، قد لا تكون هذه الطريقة مناسبة للحلول طويلة الأمد، حيث يمكن الكتابة فوق ملف /etc/resolv.conf
تلقائيًا بواسطة عمليات أخرى. لذلك، ضع في اعتبارك استخدام أدوات مثل resolvconf
، systemd-resolved
، أو NetworkManager
لإدارة إعدادات DNS.
التحقق من إعدادات DNS وتغييرها باستخدام أدوات سطر الأوامر
توفر Linux عدة طرق للتحقق من إعدادات DNS وتغييرها باستخدام سطر الأوامر، دون الاعتماد على أدوات واجهة المستخدم الرسومية. تكون هذه الطرق مفيدة بشكل خاص لبيئات الخادم أو إدارة الأنظمة عن بُعد. هنا، نشرح طرقًا باستخدام أوامر systemd-resolve
و nmcli
.
التحقق من إعدادات DNS باستخدام الأمر `systemd-resolve`
في الأنظمة التي تستخدم systemd
، يمكن استخدام الأمر systemd-resolve
للتحقق من إعدادات DNS الحالية. يتعلق هذا الأمر بخدمة systemd-resolved
ويوفر تكوين وإحصائيات حل الأسماء.
للتحقق من إعدادات DNS، نفذ الأمر التالي:
systemd-resolve --status
يوفر هذا الأمر إخراجًا مفصلاً يتضمن خوادم DNS المستخدمة، ونطاقات البحث، ومعلومات أخرى متعلقة بالشبكة. يتم تقسيم الإخراج حسب واجهة الشبكة، مع عرض كل قسم للإعدادات الخاصة بتلك الواجهة.
تغيير إعدادات DNS باستخدام الأمر `nmcli`
في الأنظمة التي تستخدم NetworkManager، يمكن استخدام الأمر nmcli
لتغيير إعدادات DNS. nmcli
هو أداة سطر الأوامر لإعداد وإدارة اتصالات الشبكة.
على سبيل المثال، لتعيين خوادم DNS لاتصال معين، استخدم الأمر التالي:
nmcli connection modify <اسم الاتصال> ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify <اسم الاتصال> ipv4.ignore-auto-dns yes
nmcli connection up <اسم الاتصال>
في هذا الأمر، يتم تعيين خوادم DNS لجوجل (8.8.8.8
و 8.8.4.4
) للاتصال المسمى <اسم الاتصال>
. يُستخدم الخيار ipv4.ignore-auto-dns yes
لتجاهل الإعدادات التلقائية لـ DNS واستخدام DNS المحدد يدويًا بدلاً من ذلك. أخيرًا، يُستخدم الأمر nmcli connection up
لإعادة تشغيل الاتصال وتطبيق الإعدادات الجديدة.
تتيح لك هذه الأدوات سطر الأوامر المرونة في التحقق من إعدادات DNS وتغييرها على أنظمة Linux. وهي مفيدة بشكل خاص لإدارة الأنظمة عن بُعد والأتمتة من خلال السكربتات.
إعدادات DNS مع systemd-resolved
systemd-resolved
هو محلل DNS حديث مدمج في نظام ومدير الخدمة systemd. يقدم ميزات متنوعة مثل التخزين المؤقت لـ DNS، التحقق من صحة DNSSEC، وتوجيه السجلات، مما يبسط عملية حل DNS. هنا، نشرح كيفية إدارة إعدادات DNS باستخدام systemd-resolved
.
نظرة عامة على systemd-resolved
systemd-resolved
يتعامل مع طلبات حل DNS من التطبيقات المحلية، مخزنًا الاستجابات من خوادم DNS الخارجية لتحسين سرعة وموثوقية حل الأسماء. كما يدير ملف /etc/resolv.conf
، موفرًا استراتيجية حل الأسماء على مستوى النظام.
تمكين وتكوين systemd-resolved
معظم التوزيعات الحديثة من Linux لديها systemd-resolved
ممكّن بشكل افتراضي. ومع ذلك، إذا لم يكن ممكّنًا، يمكنك بدء وتمكين الخدمة باستخدام الأمر التالي:
sudo systemctl enable --now systemd-resolved.service
بمجرد تمكينه، يمكنك تحرير ملف /etc/systemd/resolved.conf
لتعيين عناوين خوادم DNS المخصصة. يُنصح بعمل نسخة احتياطية من الملف قبل التحرير.
sudo nano /etc/systemd/resolved.conf
على سبيل المثال، لاستخدام خوادم DNS العامة لجوجل، يمكنك ضبط الإعدادات التالية:
[Resolve]
DNS=8.8.8.8 8.8.4.4
FallbackDNS=1.1.1.1 9.9.9.9
تحدد الخيار DNS
عناوين IP لخوادم DNS الأساسية التي يجب استخدامها، مفصولة بمسافات. يسرد FallbackDNS
خوادم DNS التي يتم استخدامها إذا كانت الخوادم الأساسية غير متاحة.
بعد تغيير الإعدادات، أعد تشغيل خدمة systemd-resolved
لتطبيق التغييرات:
sudo systemctl restart systemd-resolved
العلاقة بين systemd-resolved و /etc/resolv.conf
في الأنظمة التي تستخدم systemd-resolved
، يُنصح بربط ملف /etc/resolv.conf
بـ /run/systemd/resolve/stub-resolv.conf
. يتيح ذلك استخدام ميزات التخزين المؤقت المحلي وإعادة التوجيه التي يوفرها systemd-resolved
. لإعداد الرابط الرمزي، استخدم الأمر التالي:
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
يتيح ذلك لـ systemd-resolved
إدارة عملية حل DNS للنظام، موفرًا اتصالًا بالإنترنت أسرع وأكثر أمانًا.
إدارة DNS باستخدام Network Manager
في أنظمة Linux، Network Manager (NetworkManager) هو الأداة الأكثر استخدامًا لتكوين وإدارة الشبكة. يسهل إدارة واجهات الشبكة المختلفة، بما في ذلك الشبكات اللاسلكية والسلكية والنطاق العريض المتنقل واتصالات VPN. يمكن أيضًا إدارة إعدادات DNS من خلال هذه الأداة. هنا، نناقش كيفية إعداد DNS باستخدام Network Manager.
تغيير إعدادات DNS باستخدام Network Manager
مع Network Manager، يمكنك تغيير إعدادات DNS باستخدام واجهة المستخدم الرسومية (GUI) أو واجهة سطر الأوامر (CLI). لواجهة سطر الأوامر، الأمر nmcli
مفيد جدًا.
لتغيير إعدادات DNS لاتصال شبكة معين، حدد أولاً اسم الاتصال. يمكنك سرد جميع اتصالات الشبكة المتاحة بالأمر التالي:
nmcli connection show
ثم، استخدم اسم الاتصال لتعيين خوادم DNS. يقوم الأمر التالي بتعيين عناوين خوادم DNS للاتصال المسمى “اسم الاتصال”:
nmcli connection modify "اسم الاتصال" ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify "اسم الاتصال" ipv4.ignore-auto-dns yes
nmcli connection up "اسم الاتصال"
يقوم هذا الأمر بتعيين خوادم DNS لجوجل (8.8.8.8
و 8.8.4.4
) لاتصال محدد، متجاهلاً الإعدادات التلقائية لـ DNS. أخيرًا، يتم إعادة تشغيل الاتصال باستخدام nmcli connection up
لتطبيق الإعدادات.
تغيير الإعدادات العالمية لـ DNS
يمكنك أيضًا استخدام Network Manager لتغيير إعدادات DNS للنظام بأكمله. للقيام بذلك، عدل ملف /etc/NetworkManager/NetworkManager.conf
وأضف خيار dns
تحت قسم [main]
:
[main]
dns=dnsmasq
يتيح هذا الإعداد لـ Network Manager استخدام dnsmasq
لمعالجة استفسارات DNS. dnsmasq
هو خادم تخزين مؤقت لـ DNS وخادم DHCP خفيف يوفر حل استفسارات DNS المحلية والتخزين المؤقت، مما يحسن من سرعة حل DNS.
بعد تغيير الإعدادات، تحتاج إلى إعادة تشغيل Network Manager:
sudo systemctl restart NetworkManager
تعزز إدارة DNS من خلال Network Manager المرونة والراحة في تكوين الشبكة بشكل كبير. تتيح للمستخدمين تخصيص إعدادات DNS بسهولة، مما يحسن من أداء وأمان الشبكة.
استكشاف الأخطاء وإصلاحها: المشكلات الشائعة وحلولها
يمكن أن تظهر مشكلات متعلقة بـ DNS بأشكال مختلفة، مثل مشاكل الاتصال بالإنترنت، صعوبات في الوصول إلى المواقع الإلكترونية، والتأخيرات. هنا، نناقش المشكلات الشائعة المتعلقة بـ DNS التي قد تواجهها على Linux والنهج لحلها.
بطء حل DNS
إذا كان حل DNS بطيئًا، فقد يكون خادم DNS الذي تستخدمه سبب التأخير. التبديل إلى خادم DNS آخر قد يحل المشكلة. على سبيل المثال، Google Public DNS (8.8.8.8 و 8.8.4.4) و Cloudflare DNS (1.1.1.1) خيارات سريعة وموثوقة.
فشل حل DNS
إذا فشل حل DNS، تحقق أولاً مما إذا كان نظامك يشير إلى خوادم DNS الصحيحة. يمكنك التحقق من ذلك باستخدام ملف /etc/resolv.conf
أو الأمر systemd-resolve --status
. إذا تم تعيين خوادم DNS الصحيحة واستمرت المشكلة، قد يساعد مسح ذاكرة التخزين المؤقت لـ DNS. إذا كنت تستخدم systemd-resolved
، يمكنك مسح ذاكرة التخزين المؤقت باستخدام الأمر التالي:
sudo systemd-resolve --flush-caches
عدم القدرة على الوصول إلى مواقع معينة
إذا كنت تواجه مشكلة في الوصول إلى مواقع معينة، قد تكون هناك مشكلات في سجلات DNS لتلك المواقع، أو قد تحتفظ ذاكرة التخزين المؤقت المحلية لـ DNS بمعلومات قديمة. قد يحل مسح ذاكرة التخزين المؤقت لـ DNS المشكلة. أيضًا، تحقق مما إذا كان ملف /etc/hosts
لم يضف سجلات يدويًا لتلك المواقع.
خادم DNS لا يستجيب
إذا كان خادم DNS الذي تستخدمه لا يستجيب، تحقق أولاً مما إذا كان خادم DNS معطلاً أو إذا كانت هناك أي مشاكل في اتصالك بالشبكة. يمكنك اختبار ما إذا كان بإمكانك الوصول إلى خادم DNS باستخدام الأمر ping
. إذا لم يستجب خادم DNS، فكر في التبديل إلى خادم DNS آخر.
بتجربة هذه الخطوات العامة لاستكشاف الأخطاء وإصلاحها، يجب أن تتمكن من حل العديد من المشكلات المتعلقة بـ DNS. ومع ذلك، إذا استمرت المشكلة، قد تكون هناك حاجة لمزيد من التحقيق في إعدادات الشبكة أو التكوين. في بعض الحالات، قد يكون الاتصال بمزود خدمة الإنترنت (ISP) أو مسؤول الشبكة هو الإجراء المناسب.
اعتبارات الأمان: الأمور التي يجب مراعاتها عند إعداد DNS
عند إعداد تكوينات DNS، من المهم مراعاة الآثار الأمنية. يمكن أن تزيد الإعدادات غير الصحيحة لـ DNS من الضعف أمام الهجمات الإلكترونية. هنا، نقدم بعض الاعتبارات الأمنية الرئيسية التي يجب وضعها في الاعتبار عند تكوين DNS.
موثوقية وأمان خوادم DNS
يجب أن يكون خادم DNS الذي تختاره موثوقًا ولديه تدابير أمان معمول بها. إذا كنت تستخدم خدمة DNS عامة، تحقق من ميزات الأمان التي يوفرها مزود الخدمة، مثل دعم DNSSEC وحظر المواقع الضارة.
التخفيف من تسمم ذاكرة التخزين المؤقت لـ DNS
تسمم ذاكرة التخزين المؤقت لـ DNS هو هجوم يقوم فيه المهاجم بحقن معلومات DNS كاذبة في الذاكرة، موجهًا المستخدمين إلى مواقع ضارة، مثل مواقع التصيد الاحتيالي. استخدام خوادم DNS التي تدعم DNSSEC (امتدادات أمان DNS) يمكن أن يحمي ضد مثل هذه الهجمات.
تأمين تكوين خادم DNS المحلي
إذا كنت تدير خادم DNS الخاص بك، احتفظ بتحديثات البرامج الحالية، وعطل الخدمات غير الضرورية، وتأكد من تكوين آمن. أيضًا، من الضروري تكوين جدار الحماية بشكل صحيح لمنع الوصول غير المصرح به من الخارج.
حماية الخصوصية
يمكن أن تكشف استفسارات DNS عن سجل استخدام الإنترنت للمستخدمين. لحماية الخصوصية، ضع في اعتبارك استخدام خوادم DNS التي تدعم استفسارات DNS المشفرة، مثل DNS عبر HTTPS (DoH) أو DNS عبر TLS (DoT).
خاتمة
فهم كيفية التحقق من خوادم DNS وتكوينها على Linux وإدارتها بشكل مناسب أمر بالغ الأهمية للحفاظ على كفاءة الشبكة وأمانها. تناول هذا المقال أساسيات DNS، كيفية التحقق من خوادم DNS وإعدادها، إدارة DNS باستخدام systemd-resolved وNetwork Manager، استكشاف الأخطاء وإصلاحها، واعتبارات الأمان. تطبيق هذه المعرفة سيمكن من تكوين DNS بشكل أكثر فعالية وأمان على أنظمة Linux.