کش DNS ممکن است به دلایل مختلفی از جمله حملات شبکه یا انواع ویروس ها مشکل پیدا کند. هنگامی که این اتفاق می افتد، آدرس IP برای وب سایت های محبوب خاصی مشکل ساز می شود.
به عنوان مثال، به جای رفتن به www.google.com، مرورگر شما ممکن است شما را به آدرس IP یک وب سایت مخرب هدایت کند که مهاجم در سوابق DNS سیستم شما درج کرده است. یا حتی ممکن است تعداد زیادی خطای ۴۰۴ دریافت کنید.
پاک کردن کش DNS تمام اطلاعات ذخیره شده جستجوی DNS را حذف می کند. سپس سیستم شما دفعه بعد که یک درخواست جستجو ارسال کرد، اطلاعات جدید را از سرورهای DNS دریافت می کند.
در این مقاله، شما نحوه ریست کردن کش DNS را در سیتم عامل های لینوکس و ویندوز یاد میگیرید.
کش DNS چیست؟
لینوکس، ویندوز و سایر سیستم عامل ها اطلاعات name را در قالب کش DNS ذخیره می کنند. این امر زمان بارگذاری پروژه را افزایش می دهد. زیرا حافظه پنهان حاوی آدرس های IP برای دامنه های درخواستی است. به جای نیاز به مسیریابی مجدد به سرورهای DNS، سیستم به درخواست ها از حافظه پنهان یا همان کش پاسخ می دهد.
کش DNS حاوی اطلاعات زیر است:
- Resource data (اطلاعات منابع)
- Record type
- Record name
- TTL (time to live)
- Class
- Resource data length (طول اطلاعات منابع)
نحوه ریست حافظه پنهان DNS در ویندوز
پاک کردن کش DNS یک فرآیند آسان و سریع است. این روش تقریباً برای تمام نسخه های ویندوز یکسان است. در مثال زیر، ما از ویندوز ۱۰ استفاده خواهیم کرد.
1- با فشردن دکمه های Win+R پنجره Run را باز کنید. سپس عبارت cdm را تایپ کنید و اینتر را بزنید تا Command Prompt اجرا شود.
2- زمانی که پنجره Command Prompt باز شد، خط زیر را در آن تایپ کنید:
ipconfig /flushdns
3- فرآیند باید فقط چند ثانیه طول بکشد. پس از اتمام، باید پیام تأیید “DNS Resolver Cache” را مشاهده کنید:
دیتابیس کش DNS در رایانه شما اکنون پاکسازی شده است. دفعه بعد که دستگاه شما یک درخواست DNS ارسال کند، باید نقشه IP صحیح و به روز را از سرورهای DNS دریافت کنید.
نحوه ریست کش DNS در لینوکس
توزیع های لینوکس کمی با ماشین های ویندوز و مک متفاوت هستند. هر توزیع لینوکس ممکن است از یک سرویس DNS متفاوت استفاده کند. برخی از توزیعها، مانند اوبونتو، اصلاً سرویس DNS پیشفرض ندارند.
بستگی به این دارد که کدام سرویس در توزیع خود دارید و اینکه آیا به طور پیش فرض فعال است یا خیر. برخی از آنها شامل NCSD ، dnsmasq و BIND هستند.
از هر توزیع لینوکسی که استفده میکنید، برای شروع باید یک پنجره ترمینال باز کنید. Ctrl+Alt+T را روی کیبورد خود فشار دهید و از دستور مربوطه برای پاک کردن کش DNS برای سرویسی که سیستم لینوکس شما در حال اجرا است استفاده کنید.
ریست DNS برای سرویس NCSD
از این دستور برای حذف کش DNS برای سرویس NCSD در دستگاه لینوکس خود استفاده کنید:
sudo /etc/init.d/nscd restart
در صورت لزوم پسوورد خود را وارد کنید. با اتمام فرایند سرویس NCSD در عرض چند ثانیه راه اندازی می شود.
ریست DNS برای سرویس dnsmasq
در صورت استفاده از سرویس دی ان اس dnsmasq خط زیر را در ترمینال خود وارد کنید:
sudo /etc/init.d/dnsmasq restart
در اینجا اگر از شما پسورد خواست، آن را وارد کنید. سپس سرویس متوقف می شود و مجددا شروع به کار میکند.
ریست DNS برای سرویس BIND
اگر از BIND برای سرویس DNS استفاده می کنید، چند دستور وجود دارد که می توانید برای حذف کش DNS آن استفاده کنید. ممکن است لازم باشد رمز عبور خود را برای تکمیل فرآیند وارد کنید.
sudo /etc/init.d/named restart
sudo rndc restart
sudo rndc exec
توجه: BIND همچنین به شما اجازه می دهد تا دامنه های خاصی را هنگام انجام یک ریست DNS هدف قرار دهید. مانند مثال زیر:
sudo rndc flushname phoenixnap.com
جمع بندی
در این آموزش نحوه حذف DNS را در سیستم عامل های ویندوز و لینوکس یاد گرفتید.
ما به عنوان کاربر ممکن است از فرآیندهایی که قبل از دیدن یک صفحه وب یا دریافت ایمیل اتفاق میافتند آگاه نباشیم. به همین دلیل است که پاک کردن DNS مهم است.