النقاط الرئيسية
يمكنك مسح ذاكرة التخزين المؤقتة لنظام أسماء النطاقات على جهاز كمبيوتر يعمل بنظام Linux يستند إلى systemd باستخدام الأمر “resolvectl flush-caches”. إذا كنت تستخدم dnsmasq، فيمكنك مسح ذاكرة التخزين المؤقتة لنظام أسماء النطاقات باستخدام “sudo killall -HUP dnsmasq” بدلاً من ذلك.
هل تجربة تصفح الإنترنت بطيئة على جهاز Linux الخاص بك، أو هل المواقع التي تزورها قديمة أو خاطئة تمامًا؟ دعنا نناقش مسح ذاكرة التخزين المؤقت لنظام أسماء النطاقات على Linux، وكيفية معرفة ما إذا كنت بحاجة إلى ذلك حقًا.
ما هي ذاكرة التخزين المؤقتة DNS؟
خدمة اسم المجال هي قطعة سحرية تحول الأسماء إلى أرقام. فهي تأخذ أسماء شبكات الأجهزة وأسماء مواقع الويب وتبحث عن عناوين IP الخاصة بها. ومن ثم يمكن للشبكة استخدام عنوان IP لتوجيه حركة المرور بشكل صحيح إلى تلك الأجهزة أو المواقع.
لا تتم عمليات البحث هذه، المعروفة بالطلبات، بشكل فوري. فهناك فترة زمنية صغيرة ومحدودة. وقد تتطلب طلبات DNS على الإنترنت الاستعلام عن خوادم DNS السابقة، وخوادم الأسماء الجذرية، وخوادم النطاقات ذات المستوى الأعلى، وخوادم الأسماء المعتمدة. طلبات DNS سريعة، ولكن لجعلها أسرع، يتم تخزين الإجابات على طلبات DNS الأخيرة مؤقتًا على خوادم DNS السابقة.
إذا تم العثور على إجابة لطلب DNS في ذاكرة التخزين المؤقتة للخادم السابق، فلن تكون هناك حاجة للاتصال بخوادم أخرى. يتم إرسال الإجابة من ذاكرة التخزين المؤقتة للخادم السابق. وبالمثل، يتم الاحتفاظ بذاكرة تخزين مؤقتة صغيرة بواسطة جهاز التوجيه عريض النطاق في المنزل. إذا طلبت جهاز شبكة محلية باستخدام اسم جهاز الشبكة الخاص به، فسيوفر لك جهاز التوجيه عنوان IP. قد يقوم أيضًا بتخزين الاستجابات التي تلقاها من خوادم DNS الخارجية.
عادةً، يتم تكوين الشبكات وأجهزة الكمبيوتر التي تعمل بنظام Linux لاستخدام خدمات DNS الخارجية، سواء التي يوفرها مزود خدمة الإنترنت الخاص بك أو من خلال خدمة مجانية مثل أوبن دي إن إس أو جوجل DNSهناك أسباب وجيهة تجعل بعض الأشخاص يديرون خادم DNS الخاص بهم، لكن معظمنا لا يفعل ذلك. ومع ذلك، يمكن لجهاز الكمبيوتر الذي يعمل بنظام Linux — حتى إذا لم يكن يشغل خادم DNS — تخزين نتائج طلبات DNS مؤقتًا.
تكمن المشكلة في استخدام البيانات المخزنة مؤقتًا في أن الأمر برمته يعتمد على افتراض عدم تغير أي من التفاصيل المخزنة مؤقتًا منذ تخزينها مؤقتًا. وإذا تغيرت التفاصيل، فستصبح المعلومات التي تتلقاها قديمة.
إذا تضرر أحد إدخالات ذاكرة التخزين المؤقت أو ذاكرة التخزين المؤقت بالكامل، فسوف تحصل على أداء ضعيف في أفضل الأحوال، وثغرات أمنية في أسوأ الأحوال. في هذه الحالة، قد ترغب في البحث عن “تنظيف” ذاكرة التخزين المؤقت لنظام أسماء النطاقات أو مسحها.
هل يستخدم جهاز الكمبيوتر الخاص بك ذاكرة التخزين المؤقتة DNS المحلية؟
تم تشغيل ذاكرة التخزين المؤقتة المحلية لنظام أسماء النطاقات في بعض أجهزة الكمبيوتر التي قمنا باختبارها، وتم إيقاف تشغيلها في أجهزة أخرى. تم إيقاف تشغيلها على جهاز الكمبيوتر Manjaro 21 الخاص بنا، ولكنها كانت قيد التشغيل افتراضيًا على Fedora 37 وUbuntu 22.10.
لتحديد ما إذا كان جهاز الكمبيوتر الذي يعمل بنظام Linux الخاص بك يخزن طلبات DNS مؤقتًا، استخدم is-active
خيار systemctl
الأمر. الديمون الذي يدير ذاكرة التخزين المؤقت لـ DNS هو مدير حل اسم الشبكة systemd، والمعروف باسم systemd-resolved
.
systemctl is-active systemd-resolved
إذا كانت الاستجابة “نشطة”، فإن التخزين المؤقت لـ DNS يحدث. وإذا كانت الاستجابة “غير نشطة”، فهي ليست كذلك. على هذا الكمبيوتر المعين، تكون نشطة. يمكننا استخدام resolvectl
استخدم الأمر مع خيار الإحصائيات لمعرفة عدد السجلات الموجودة في ذاكرة التخزين المؤقت.
resolvectl statistics
يمكننا أن نرى أن هناك 330 إدخالاً في ذاكرة التخزين المؤقت DNS لهذا الكمبيوتر.
مراجعة ذاكرة التخزين المؤقت لنظام DNS
إن مراجعة إدخالات ذاكرة التخزين المؤقت DNS ليست شرطًا أساسيًا لمسح ذاكرة التخزين المؤقت، وإذا لم تكن مهتمًا بالقيام بذلك، فيمكنك تخطي هذه الخطوة بأكملهافي بعض الأحيان، قد يكون ذلك مفيدًا. فقد ترى إدخالات مشوشة تشير إلى تلف، أو قد ترى رسائل خطأ تتعلق بمشكلات تحديد عناوين الأجهزة على شبكتك.
الآن، لا توجد طريقة مباشرة لعرض هذه الإدخالات. يمكننا القيام بذلك ولكن نحتاج إلى القليل من الإبداع. USR1
، أو الإشارة المحددة من قبل المستخدم رقم واحد، هي إشارة يمكن إرسالها بواسطة kill
و killall
الأوامر. لا تحتوي هذه الإشارة على معنى محدد مسبقًا. التطبيقات حرة في تجاهل هذه الإشارة أو الرد عليها بأي طريقة نفذها المطورون.
ال systemd-resolved
يتفاعل الديمون مع USR1
من خلال كتابة ذاكرة التخزين المؤقت الخاصة به في سجلات النظام. يمكننا بعد ذلك استخدام journalctl
أمر لتصفية إدخالات DNS.
سوف نستخدم killall
الأمر مع USR1
لإرسال الإشارة إلى systemd-resolved
daemon. لاحظ أنه على الرغم من أننا نستخدم killall
الأمر، systemd-resolved
يستمر تشغيل البرنامج. هذه ليست إشارة إنهاء نقوم بإرسالها.
sudo killall -USR1 systemd-resolved
الآن سوف نستخدم journalctl
الأمر مع -u
(تصفية حسب systemd
خيار (وحدة) لاستخراج إدخالات السجل التي تم إنشاؤها بواسطة systemd-resolved
سوف نقوم بإعادة توجيه هذا الإخراج إلى ملفات نصية تسمى “dns.txt”.
sudo journalctl -u systemd-resolved > dns.txt
سوف نستخدم less
عارض الملفات لعرض محتويات الملف.
less dns.txt
ستتمكن من العثور على التعيينات المخزنة مؤقتًا بين أسماء النطاق وعناوين IP عن طريق التمرير والبحث عبر النص.
يمكننا رؤية إدخال لـ Google يحمل عنوان IP 216.58.212.196. يمكنك التحقق من ذلك عن طريق إدخال عنوان IP في متصفح الويب. يجب أن ترى الصفحة الرئيسية لبحث Google.
كيفية مسح ذاكرة التخزين المؤقت لـ DNS على Linux
يؤدي مسح ذاكرة التخزين المؤقت إلى إزالة جميع الإدخالات، وبدء عملية التجميع مرة أخرى. إذا كان هناك أي إدخالات، فإن هذا يؤدي إلى إزالة الإدخالات الخاطئة والفاسدة من ذاكرة التخزين المؤقت بالقوة.
الأمر بسيط؛ نستخدم resolvectl
مع flush-caches
خيار.
resolvectl flush-caches
لقد عدنا بصمت إلى سطر الأوامر. للتأكد من حدوث شيء ما بالفعل، سنتحقق من إحصائيات ذاكرة التخزين المؤقت لنظام أسماء النطاقات مرة أخرى.
resolvectl statistics
يمكننا أن نرى أن حجم ذاكرة التخزين المؤقت انخفض إلى الصفر. وسوف يزداد بمرور الوقت مع تراكم الإدخالات الجديدة.
كيفية مسح ذاكرة التخزين المؤقت dnsmasq على Linux
ال dnsmasq
يوفر التطبيق ذاكرة تخزين مؤقتة لنظام أسماء النطاقات وخادم DHCP. وهو شائع الاستخدام بين المستخدمين الذين يرغبون في تشغيل خادم DNS الخاص بهم، وخاصةً في التثبيتات غير التابعة لـsystemd.
غسل dnsmasq
إن تخزين ذاكرة التخزين المؤقتة لـ DNS أمر سهل. نحتاج إلى إرسال SIGHUP
الإشارة التي تخبر dnsmasq
daemon لإعادة التهيئة بشكل فعال. يؤدي القيام بذلك إلى مسح ذاكرة التخزين المؤقت DNS الخاصة به. لإرسال الإشارة، نستخدم killall
الأمر مع -HUP
العلم واسم التطبيق.
sudo killall -HUP dnsmasq
احمر وجهي بالنجاح
بالطبع، إذا لم يكن جهاز الكمبيوتر الخاص بك يخزن البيانات مؤقتًا على الإطلاق، فلا يوجد شيء تحتاج إلى التحقق منه.
إذا كان يقوم بتخزين طلبات DNS مؤقتًا ولكن كل شيء يعمل بشكل جيد، فيمكنك تجاهله أيضًا. ولكن إذا كنت تواجه تحديثات بطيئة أو متقطعة لصفحات الويب عند تصفح الويب، أو ترى صفحات ويب خاطئة تمامًا، فربما يكون الوقت مناسبًا لمسح ذاكرة التخزين المؤقت لـ DNS.