کامپیوترهای موجود در یک شبکه برای اتصال به یکدیگر از آدرسهای IP استفاده می کنند، ولی به یاد داشتن آدرس های IP کامپیوترهای یک شبکه برای افرادی که قصد اتصال به آنان را دارند بسیار دشوار است. مثلا به خاطر سپردن نام دامنه JeyServer.com بسیار ساده تر از به خاطر سپردن آدرس IP آن (5.196.204.147) است. به همین علت اغلب ما برای اتصال به سایت ها، نام دامنه آن را وارد می کنیم؛ هر زمان که شما از یک وب‌سایت بازدید می‌کنید، سیستم‌عامل و مرورگر وب شما اطلاعاتی را برای دامنه و آدرس IP مربوطه نگه می‌دارد. این کار، نیاز به درخواست‌های تکراری را برای سرورهای DNS از بین می‌برد و به سیستم‌عامل یا مرورگر شما اجازه می‌دهد تا به‌سرعت آدرس وب‌سایت را پیدا کند. حال اگر شما مالک سایتی باشید و DNS ها دامنه خود را تغییر دهید، گاهی ممکن است مدتی طول بکشد و وب سایت برای شما لود نشود که این اختلال بسته به نوع و پنل دامنه ممکن است طبیعی باشد و طولانی شدن بیش از چند ساعت این مساله اغلب دو دلیل عمده دارد:

۱- کش شدن دی ان اس در آی اس پی شرکت اینترنتی که از آن استفاده می کنید.

۲- دوم کش شدن فایلها و کوکی ها و همچنین کش شدن دی ان اس در مرورگر اینترنتی شما که در این صورت باید نسبت به حذف کش DNS اقدام نمایید.

در این آموزش می‌خواهیم نحوه پاک کردن DNS Cache را در سیستم‌عامل‌های گنو/لینوکس، ویندوز و مک مورد بررسی قرار دهیم.

 

پاک کردن حافظه نهان DNS در ویندوز

روند پاک کردن حافظه نهان DNS برای همه نسخه‌های ویندوز یکسان است. برای این کار، شما باید ترمینال را با دسترسی ادمین باز کرده و ipconfig / flushdns را اجرا کنید.
ویندوز 10، ویندوز 8 و ویندوز 7

برای پاک کردن حافظه نهان DNS در ویندوز 10 و 8 ، مراحل زیر را انجام دهید:
    1. کلمه cmd را در نوار جستجوی ویندوز تایپ کنید.
    2. روی Command Prompt (ترمینال یا برنامه خط فرمان) راست کلیک کرده و گزینه Run as administrator را بزنید. با این کار پنجره خط فرمان باز می‌شود.


   3. در خط فرمان، دستور زیر را تایپ کرده و Enter را فشار دهید:

ipconfig /flushdns

در صورت موفقیت، سیستم پیام زیر را برمی‌گرداند:

خالی کردن حافظه پنهان DNS در لینوکس

در لینوکس، هیچ حافظه پنهان DNSای در سطح سیستم‌عامل وجود ندارد، مگر اینکه سرویس‌هایی مانند Systemd-Resolution ، DNSMasq یا Nscd نصب و اجرا شود. فرایند پاک کردن حافظه نهان DNS بسته به نوع توزیع لینوکس و سرویس ذخیره‌سازی مورد استفاده شما متفاوت است.

سرویس Systemd Resolved

اکثر توزیع‌های مدرن لینوکس مانند اوبونتو 18.04 سرویس system resolved برای ذخیره کردن اطلاعات مربوط به DNS استفاده می‌نمایند.
برای اطلاع از اینکه آیا این سرویس در حال اجرا است، دستور زیر را اجرا کنید:

sudo systemctl is-active systemd-resolved.service

اگر این سرویس در حال اجرا باشد، عبارت "active" نمایش داده می‌شود، در غیر این صورت شما عبارت "inactive" را مشاهده می‌کنید.
برای پاک کردن حافظه نهان DNS مربوط به سرویس Systemd Resolution، می‌توانید از دستور زیر استفاده کنید:

sudo systemd-resolve --flush-caches

درصورتی‌که این دستور با موفقیت اجرا شود، هیچ پیامی نمایش داده نمی‌شود.

DNSMasq

Dnsmasq یک DNS و DHCP سبک و کم‌حجم است که نام سرورها را ذخیره می‌نماید؛ اگر سیستم شما از DNSMasq به‌عنوان سرور ذخیره‌سازی استفاده می‌کند، برای پاک کردن حافظه نهان DNS، باید سرویس Dnsmasq را مجدداً راه‌اندازی نمایید، برای این کار می‌توانید از یکی از دستورات زیر استفاده کنید:

sudo systemctl restart dnsmasq.service

و یا:

sudo service dnsmasq restart

 

Nscd

Nscd یک سرور ذخیره‌سازی است و برای اکثر توزیع‌های مبتنی بر RedHat به‌عنوان سیستم ذخیره‌سازی DNS استفاده می‌شود؛ اگر سیستم شما از Nscd استفاده می‌کند، برای پاک کردن حافظه نهان DNS باید سرویس Nscd را با اجرای یکی از دستورات زیر مجدداً راه‌اندازی نمایید:

sudo systemctl restart nscd.service

و یا:

sudo service nscd restart

 

خالی کردن حافظه پنهان DNS در سیستم‌عامل Mac

دستور خالی کردن حافظه پنهان در MacOS بسته به نسخه‌ای که اجرا می‌کنید کمی متفاوت است. این دستور باید توسط کاربر دارنده دسترسی‌های ادمین سیستم (sudo user) اجرا شود.
برای پاک کردن حافظه نهان DNS در MacOS، مراحل زیر را انجام دهید:
    1. Finder را باز کنید.
    2. به بخش Applications> Utilities> Terminal بروید. با این کار، پنجره ترمینال باز می‌شود.
    3. در خط فرمان دستور زیر را تایپ کرده و Enter را فشار دهید:

sudo killall -HUP mDNSResponder

رمز عبور sudo خود را وارد کرده و دوباره Enter را بزنید. در صورت اجرای موفقیت‌آمیز، سیستم هیچ پیامی را برنمی‌گرداند.
برای نسخه‌های اولیه MacOS ، دستور برای خالی کردن حافظه پنهان متفاوت است.

برای MacOS نسخه 10.11 و 10.9 دستور زیر را اجرا نمایید:

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

برای MacOS نسخه 10.10 دستور زیر را اجرا کنید:

sudo discoveryutil mdnsflushcache
sudo discoveryutil udnsflushcaches

برای MacOS نسخه 10.6 و 10.5 دستور زیر را اجرا نمایید:

sudo dscacheutil -flushcache

 

خالی کردن حافظه پنهان DNS مرورگر

بیشتر مرورگرهای وب مدرن درون خود یک کلاینت DNS دارند که از تکرار درخواست‌ها در هر بار بازدید از وب‌سایت، جلوگیری می‌کند.

گوگل کروم

برای پاک کردن حافظه نهان DNS مربوط به مرورگر گوگل کروم، مراحل زیر را انجام دهید:

۱- یک صفحه جدید در گوگل کروم باز کنید و آدرس زیر را در نوار آدرس مرورگر وارد نمایید:

chrome://net-internals/#dns

۲- بر روی دکمه "Clear host cache" کلیک کنید.

اگر این روش برای شما کار نکرد، سعی کنید حافظه پنهان و کوکی‌ها را با اجرای مراحل زیر پاک کنید.
    ۱- گزینه CTRL+Shift+Del را فشار دهید تا پنجره "Clear browsing data" باز شود.
    ۲- محدوده زمانی را انتخاب کنید. گزینه "All time" را برای حذف "همه‌چیز" انتخاب کنید.
    ۳- تیک گزینه "Cookies and other site data" و "Cached images and files" را بزنید.
    ۴- بر روی دکمه "Clear data" کلیک کنید.
این روش باید برای همه مرورگرهای مبتنی بر کروم، ازجمله Chromium ، Vivaldi و Opera کار کند.

فایرفاکس

برای پاک کردن حافظه نهان DNS مربوط به مرورگر فایرفاکس، مراحل زیر را انجام دهید:
    1. در بالا گوشه سمت راست، روی نماد  ☰ کلیک کنید تا منوی فایرفاکس باز شود:
    2. روی لینک Options (Preferences)⚙ کلیک کنید.
    3. روی صفحه Privacy & Security یا Privacy در سمت چپ کلیک کنید.
    4. به قسمت History بروید و روی دکمه Clear History… کلیک کنید.
    5. محدوده زمانی مورد نظرتان را انتخاب کنید. گزینه " Everything" را انتخاب کنید تا همه‌چیز حذف شود.
    6. تیک گزینه‌های "Cookies" و "Cache"  را بزنید و سپس بر روی"Clear Now" کلیک کنید.

اگر این روش برای شما کار نکرد، روش زیر را امتحان کنید و با آن حافظه نهان DNS را موقتاً غیرفعال کنید.
    1. یک صفحه جدید باز کنید و about:config را در نوار آدرس فایرفاکس وارد کنید.
    2. عبارت network.dnsCacheExpasion را جستجو کرده، آن را موقتاً با مقدار 0 پر کنید و سپس OK را بزنید. پس از آن، مقدار آن را به مقدار پیش‌فرض تغییر داده و OK را کلیک کنید.
    3. عبارت network.dnsCacheEntries را جستجو نمایید، مقدار آن را موقتاً بر روی 0 قرار دهید و OK را بزنید. پس از آن، مقدار آن را به مقدار پیش‌فرض تغییر داده و OK را کلیک نمایید.

 

منبع: How to Clear the DNS Cache