Saytni yangi hostingga ko'chirdingiz yoki domenning A yozuvini o'zgartirdingiz, hamkasbingiz telefonida yangi sahifani ko'ryapti, sizning kompyuteringiz esa qaysarlik bilan eski saytni ochishda davom etyapti. Ko'pincha bunda server ham, DNS ham aybdor emas, sabab qurilmangizdagi DNS keshida. Kompyuter, telefon va brauzer bir marta bilib olgan IP manzilni ma'lum vaqt eslab qoladi, toki har safar DNS serverga murojaat qilmasin. Bu maqolada keshning qayerlarda saqlanishini va uni Windows, macOS, Linux, Android hamda brauzerlarda qanday tozalashni ko'rib chiqamiz.
DNS kesh nima va u qayerlarda yashaydi
Siz brauzerga domen nomini yozganingizda, u IP manzilga aylantirilishi kerak. Bu javob bir necha bosqichda saqlanib qoladi: avval brauzerning o'zida, keyin operatsion tizimning DNS xizmatida, so'ng uydagi yoki ofisdagi routerda va nihoyat internet provayderining rezolverida. Har bir yozuvning yashash muddati TTL, ya'ni «yashash vaqti» qiymati bilan belgilanadi va u domen egasi tomonidan DNS zonada o'rnatiladi. Masalan, TTL 3600 bo'lsa, javob bir soatgacha keshda turishi mumkin.
Shuni yodda tutish muhim: siz faqat o'z qurilmangizdagi keshni tozalay olasiz. Provayder rezolveridagi kesh TTL tugaguncha o'z-o'zidan yangilanadi va uni foydalanuvchi tomondan majburan tozalab bo'lmaydi. Shu sababli DNS o'zgarishidan keyin ba'zi foydalanuvchilar yangi saytni darhol ko'rsa, boshqalari bir necha soat kutishiga to'g'ri keladi.
Real holat: Samarqanddagi kafe sayti
Samarqanddagi kafe egasi menyu saytini yangi hostingga ko'chirdi va kabinetda domenning A yozuvini yangi server IP manziliga almashtirdi. Bir soatdan keyin ofitsiantlar telefonida yangi menyu ochildi, lekin kassadagi Windows kompyuterda eski sahifa chiqaverdi. Kompyuterda ipconfig /flushdns buyrug'i bajarilib, Chrome'ning ichki keshi ham tozalangach, yangi sayt darhol ochildi. Muammo serverda emas, aynan shu kompyuterning eski javobni eslab qolganida edi.
Windows'da DNS keshni tozalash
Windows'da DNS kesh «DNS Client» xizmati tomonidan yuritiladi. Uni tozalash uchun buyruq satrini oching (Start menyusida cmd deb yozing) va quyidagi buyruqni bajaring. Odatda administrator huquqi talab qilinmaydi, lekin xato chiqsa, buyruq satrini «administrator sifatida» ishga tushiring:
ipconfig /flushdns
Muvaffaqiyatli bajarilsa, keshning tozalangani haqida xabar chiqadi. Keshda hozir nimalar borligini ko'rish uchun ipconfig /displaydns buyrug'idan foydalanish mumkin. PowerShell'ni afzal ko'rsangiz, xuddi shu ishni quyidagi buyruqlar bajaradi:
Clear-DnsClientCache
Get-DnsClientCache | Where-Object Entry -like "*sizningdomen.uz*"
macOS'da DNS keshni tozalash
macOS'da DNS javoblarini mDNSResponder jarayoni saqlaydi. Zamonaviy macOS versiyalarida Terminal ilovasida quyidagi buyruqni bajarish kifoya. Tizim administrator parolini so'raydi, kiritayotganda ekranda belgilar ko'rinmaydi va bu odatiy holat:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Buyruq hech qanday xabar chiqarmasligi mumkin, bu xato degani emas. Eski macOS versiyalarida buyruqlar biroz farq qilgan, shuning uchun juda eski tizimda ishlayotgan bo'lsangiz, Apple'ning o'z versiyangiz uchun yozilgan yo'riqnomasini tekshirib ko'ring.
Linux'da DNS keshni tozalash
Linux'da hamma narsa qaysi DNS xizmati ishlatilayotganiga bog'liq. Ko'pchilik zamonaviy distributivlarda, masalan Ubuntu'da, systemd-resolved ishlaydi. Uning keshini tozalash va natijani tekshirish uchun quyidagi buyruqlardan foydalaning:
resolvectl flush-caches
resolvectl statistics
Eski tizimlarda xuddi shu vazifani sudo systemd-resolve --flush-caches bajaradi. Agar tizimda dnsmasq yoki nscd ishlatilsa, tegishli xizmatni qayta ishga tushirish kerak, masalan sudo systemctl restart dnsmasq. Ba'zi minimal tizimlarda umuman lokal DNS kesh bo'lmaydi va so'rovlar to'g'ridan-to'g'ri tashqi rezolverga ketadi.
Android va iPhone'da keshni yangilash
Telefonlarda DNS keshni tozalaydigan alohida tugma yo'q, lekin uni bilvosita yangilash oson. Eng sodda usul bu parvoz rejimini (airplane mode) yoqib, 10-15 soniyadan keyin o'chirish: tarmoq ulanishi qayta o'rnatiladi va tizim keshi tozalanadi. Bu yetmasa, telefonni qayta yuklang. Android'da Chrome ishlatilsa, brauzerning o'z keshi ham bo'lgani uchun uni alohida tozalash kerak bo'lishi mumkin, bu haqda quyida to'xtalamiz.
Android sozlamalaridagi «Shaxsiy DNS» (Private DNS) bo'limiga ham e'tibor bering. Agar unda tashqi DNS provayderi ko'rsatilgan bo'lsa, telefon so'rovlarni Wi-Fi yoki mobil operator rezolveri orqali emas, aynan o'sha server orqali yuboradi. Bu ba'zan bir xil tarmoqdagi ikki qurilma turli natija ko'rsatishining sababi bo'ladi.
Brauzer keshini tozalash
Chrome, Edge va boshqa Chromium asosidagi brauzerlar operatsion tizimdan tashqari o'z DNS keshiga ham ega. Uni tozalash uchun manzil satriga maxsus sahifa manzilini yozasiz va «Clear host cache» tugmasini bosasiz. Ochiq ulanishlar eski serverga bog'lanib qolgan bo'lishi mumkinligi sababli, sockets sahifasida «Flush socket pools» tugmasini ham bosish foydali:
chrome://net-internals/#dns
chrome://net-internals/#sockets
edge://net-internals/#dns
Firefox'da xuddi shunday imkoniyat about:networking#dns sahifasida joylashgan, u yerda «Clear DNS Cache» tugmasi bor. Brauzerni to'liq yopib, qayta ochish ham ko'p hollarda yordam beradi. E'tibor bering, bu amallar sahifa fayllari keshini (rasmlar, CSS) emas, aynan DNS javoblarini tozalaydi. Agar sayt yangi serverdan ochilsa-yu, eski dizayn ko'rinsa, bu allaqachon oddiy brauzer keshi masalasi va uni Ctrl+F5 yoki brauzer tarixidan tozalash kerak.
Kesh tozalanganini qanday tekshirish mumkin
Keshni tozalagandan keyin domen qaysi IP manzilga yo'naltirilayotganini ko'rish uchun nslookup buyrug'idan foydalaning. Uni bir marta tizim rezolveri bilan, bir marta esa ochiq ommaviy rezolver bilan bajarsangiz, muammo qayerdaligi aniq bo'ladi:
nslookup sizningdomen.uz
nslookup sizningdomen.uz 8.8.8.8
nslookup sizningdomen.uz 1.1.1.1
Agar ommaviy rezolverlar yangi IP ni, sizning tizim rezolveringiz esa eskisini qaytarsa, demak kesh provayder yoki router darajasida qolgan va TTL tugashini kutish kerak. Routerni qayta yuklash uning ichki keshini tozalaydi. Agar barcha rezolverlar eski IP ni ko'rsatsa, muammo keshda emas: DNS yozuvining o'zi to'g'ri saqlanganini tekshiring.
hosts fayli: unutiladigan sabab
Ba'zan kesh tozalansa ham kompyuter eski IP ga ketaveradi, chunki domen hosts faylida qo'lda yozib qo'yilgan bo'ladi. Bu fayl DNS'dan ustun turadi va ko'pincha sayt ko'chirilishidan oldin sinov uchun qo'shilib, keyin unutib qo'yiladi. Windows'da u C:\Windows\System32\drivers\etc\hosts, macOS va Linux'da esa /etc/hosts manzilida joylashgan. Faylni oching va domeningiz bilan boshlanadigan qatorlar bo'lsa, ularni o'chiring yoki boshiga # belgisi qo'ying.
DNS o'zgarishini rejalashtirishdagi kichik hiyla
Kesh bilan bog'liq noqulayliklarni oldindan kamaytirish mumkin. Sayt ko'chirishdan bir kun oldin domen yozuvlarining TTL qiymatini qisqartiring, masalan 300 soniyaga. Eski TTL tugagach, barcha rezolverlar yozuvni qisqa muddatga saqlaydigan bo'ladi va IP almashgach, yangi manzil bir necha daqiqada tarqaladi. sayt.uz kabinetida DNS yozuvlarini tahrirlayotganda ham shu tartibga amal qilish foydali: ko'chirish tugab, hammasi barqaror ishlagach, TTL qiymatini yana oddiy darajaga qaytarib qo'ying.