मैं DNS कैश कैसे साफ़ करूँ?


191

मैं सिर्फ DNS रिकॉर्ड (अद्यतन ns1, ns2, ns3.myhostingcompany.comएक साइट मैं की मेजबानी मिल गया है के लिए), लेकिन मैं अभी भी डोमेन रजिस्ट्रार पार्किंग पृष्ठ मिलता है।

मैं यह देखना चाहूंगा कि क्या समस्या उबंटू की कैशेड डीएनएस रिकॉर्ड है। क्या उबंटू के डीएनएस कैश को खाली करने का एक तरीका है? (अगर ऐसा कुछ मौजूद है?)


1
इसके अलावा, जाँच करें /etc/hosts। मुझे बस यकीन है कि मेरे डोमेन के पुराने आईपी पते को कैश किया जा रहा था, लेकिन केवल यह strace ping example.comपता चला कि मैं /etc/hostsडीएनएस प्रचार के लिए धैर्य की कमी के कारण उस रिकॉर्ड को हटाना भूल गया था जिसे मैंने एक समय पहले जोड़ा था।
ulidtko

2
इनमें से बहुत सारे उत्तर सुझाव देते हैं कि कैशिंग डिफ़ॉल्ट रूप से अक्षम है, लेकिन वे पुराने संस्करणों को भी संदर्भित करते हैं। यह निश्चित रूप से मेरी मशीन (18.04) में डिफ़ॉल्ट रूप से प्रतीत होता है और नीचे दिए गए विभिन्न उत्तर आपको दिखाते हैं कि इसे कैसे फ्लश करना है, बस नीचे स्क्रॉल करें
Madivad

जवाबों:


64

18.04 और उससे अधिक के लिए

माइक शुल्ट्ज का जवाब देखिए ।

11.10 और उससे नीचे के लिए

जब तक आपने एक डीएनएस कैश स्थापित नहीं किया है, तब तक उबंटू कैश को रिकॉर्ड नहीं करता है।

DNS रिकॉर्ड्स आपके प्रदाता के DNS सर्वरों द्वारा कैश्ड किए जाते हैं, इसलिए यदि आप यह जांचना चाहते हैं कि आपके द्वारा किए गए DNS परिवर्तन सफल थे या नहीं, तो आप अपने डोमेन होस्टिंग सेवा से डीएनएस सर्वर को खुदाई के साथ पूछताछ कर सकते हैं:

dig -t a ns1.myhostingcompany.com @domain_registrar_dns_server

यह आप चाहते हैं कि उबंटू कैशिंग डीएनएस शुरू करे जो मैं pdnsdएक साथ स्थापित करने की सलाह देता हूं resolvconfnscdछोटी गाड़ी है और उचित नहीं है।


14
क्यों nscd छोटी गाड़ी है के रूप में किसी भी संदर्भ? क्या यह अभी भी छोटी गाड़ी है (2012-10)?
जेजमोंटेस

3
क्या आप अपना उत्तर अपडेट कर सकते हैं- एटीएम ऐसा लगता है जैसे उबंटू संस्करण 11.10+ कैश डीएनएस रिकॉर्ड करते हैं।
मार्टिन कोंकणी

70

Ubuntu 17.04 और उच्चतर (18.04)

Ubuntu 17.04 और उसके बाद से, DNS के लिए सिस्टमड-रिज़ॉल्यूशन का उपयोग किया जाता है। आप सिस्टमड के कैश फ्लश कर सकते हैं जैसे:

sudo systemd-resolve --flush-caches

2
OMG, क्या तुम मुझसे शादी करोगी? 18.04 के साथ मेरे मुद्दे को हल किया \ n /
NiKo

5
यह मेरे लिए 16.04 एलटीएस पर काम नहीं करता था - लेकिन यह अभी तक कैशिंग हो सकता है एक और तरीका देखने के लिए उपयोगी था:sudo systemd-resolve --statistics
फिल

आपने दिन बचाया
दानिलो गोम्स

1
18.04 पर नहीं काम करता है
LnxSlck

1
मेरे लिए, systemctl restart systemd-resolved.service18.04 को भी काम किया।
जस्टिन साने

69

12.04

उबंटू 12.04 का उपयोग करता है dnsmasqजो इसमें बनाया गया है network-manager, लेकिन यह कैश नहीं करता है इसलिए इसे फ्लश करने की कोई आवश्यकता नहीं है। यहाँ syslogउस बिंदु को साबित करने के लिए मेरी एक नमूना रेखा है :

dnsmasq[2980]: started, version 2.59 cache disabled

के किसी भी विन्यास की कोई आवश्यकता नहीं है dnsmasq। यदि आप स्टॉक सेटिंग्स के साथ चल रहे हैं, तो यह कैशिंग डीएनएस नहीं होगा, क्योंकि इसके लिए ऐसा करने के लिए आपको इसे स्पष्ट रूप से सेट करना होगा जैसा कि यह उबंटू लेख बताता है।

यदि आप अपनी सेटिंग्स को ताज़ा करना चाहते हैं तो आप अक्षम कर सकते हैं और फिर नेटवर्किंग या चला सकते हैं

sudo service network-manager restart

यह पुनः आरंभ होता है dnsmasqक्योंकि इसमें बनाया गया है network-manager; syslogइसके लिए सबूतों के लिए अपनी जाँच करें ।

यदि आप dhcp के साथ वायर्ड कनेक्शन का उपयोग कर रहे हैं, तो आप network managerअपने राउटर से सीधे सेटिंग्स ले रहे होंगे और जब आप उबंटू में लॉग इन करते हैं तो आपका कनेक्शन अपने आप स्थापित हो जाएगा। आप जाँच सकते हैं कि सेटिंग्स आपके राउटर में सही हैं यदि आप इसे वेब इंटरफेस के माध्यम से एक्सेस कर सकते हैं, और यदि आवश्यक हो तो इसे रिबूट कर सकते हैं। यदि यह dns के साथ एक सामान्य समस्या है, तो आप अपने isp dns के बजाय Google dns का उपयोग करने का प्रयास कर सकते हैं, और उस पर अधिक जानकारी यहाँ विस्तृत है


sudo service network-manager restartडेबियन के साथ मेरे लिए चाल
चली

61

ध्यान दें कि उबंटू 17.04 और इसके बाद से सिस्टमड-रिज़ॉल्यूशन का उपयोग करता है इसलिए यह उत्तर हाल के उबंटू संस्करणों पर लागू नहीं होता है। " Ubuntu DNS में फ्लश DNS कैश 17.04 और उच्चतर (18.04) देखें "

डिफ़ॉल्ट रूप से, DNS को Ubuntu <17.04 में कैश नहीं किया गया है (लेकिन इसे नेटवर्क या एप्लिकेशन में कैश किया जा सकता है)

एक तरह से या दूसरे की पुष्टि करने के लिए कि क्या dnsmasqकैशिंग है, चलाएं ps ax | grep dnsmasqऔर रनिंग कमांड को देखें। यहां मेरी डिफ़ॉल्ट 13.10 मशीन का ब्रेकडाउन है:

/ usr / sbin / dnsmasq \
  -नहीं- resolv \
  -की-में-अग्रभूमि \
  -कोई-मेजबान \
  -बिंद-इंटरफेस \
  --पिड-फ़ाइल = / var / run / NetworkManager / dnsmasq.pid \
  --सूची-पता = 127.0.1.1 \
  --conf-file = / var / run / NetworkManager / dnsmasq.conf \
  - कैश आकार = 0 \
  --प्रोक्सी- dnssec \
  --enable-dbus = org.freedesktop.NetworkManager.dnsmasq \
  --conf-dir = / etc / NetworkManager / dnsmasq.d

/etc/NetworkManager/dnsmasq.dडिफ़ॉल्ट रूप से खाली है। इसलिए वहाँ कोई ओवरराइड नहीं आ रहा है और बस जाँच करने का --cache-size=0मतलब है कि हम क्या सोचते हैं इसका मतलब है ( असीमित कैश के बजाय ), man dnsmasqदिखाता है:

-c, --cache-size=<cachesize>
  Set the size of dnsmasq's cache. The default is 150 names. 
  Setting the cache size to zero disables caching.

जबकि DNS dnsmasq को कैश कर सकते हैं , यह बॉक्स को कैशिंग नहीं कर रहा है। आप अपनी मशीन और विभिन्न विन्यास निर्देशिकाओं की जाँच कर सकते हैं कि आप एक ही पृष्ठ पर हैं।

यदि आप कैश समस्याएँ देख रहे हैं, तो यह कुछ स्थानों में से एक में होने की संभावना है:

  • आपके कंप्यूटर से अपस्ट्रीम। कुछ राउटर्स कैश। कई कॉर्पोरेट नेटवर्क DNS को कैश करेंगे। कई आईएसपी-संचालित डीएनएस सर्वर और अपने स्वयं के कैश का उपयोग करेंगे। एक नेटवर्क कैश के खिलाफ गारंटी देने का एकमात्र तरीका एक कैश का उपयोग करना है जिसे आप मैन्युअल रूप से ताज़ा कर सकते हैं। यही कारण है कि मुझे OpenDNS पसंद है।
  • क्लाइंट एप्लिकेशन में (विशेष रूप से ब्राउज़र)। अनुप्रयोग अपने स्वयं के कैशिंग के सभी प्रकार कर सकते हैं जिन पर उबंटू का कोई प्रभाव नहीं है। कैसे फ़ायरफ़ॉक्स DNS को कैश करता हैChrome का DNS कैश कैसे साफ़ करें । अन्य ब्राउज़रों (और अनुप्रयोगों) का अपना तंत्र हो सकता है।
  • मैं यहां बैरल को स्क्रैप कर रहा हूं, लेकिन शायद आपने कैशिंग को चालू करने के बजाय उबंटू में एक गैर-मानक डीएनएस सर्वर स्थापित किया है dnsmasq। वहाँ कई हैं: nscd, DJBDNS dnscache(उर्फ TinyDNS), pdns, pdnsd, Bind9 (और उसके संस्करण), और अधिक मैं भी याद नहीं कर सकते। ये होगा शायद से जाहिर होता है हो /etc/resolv.conf(/ etc / resolvconf / `उस फ़ाइल autogen में config के साथ)। निम्नलिखित स्थानीय रूप से अवरोधित DNS क्वेरी दिखाता है:

    $ nslookup askubuntu.com
    Server:     127.0.1.1
    Address:    127.0.1.1#53
    
    Non-authoritative answer:
    Name:   askubuntu.com
    Address: 198.252.206.24
    

    यदि आप 8.8.8.8 (या जो कुछ भी आप अपने DNS सर्वर से होने की उम्मीद करते हैं) को नहीं मार रहे हैं, तो जांचें कि आप इसके बजाय क्या मार रहे हैं। मेरे मामले में मैं देख सकता हूं कि यह dnsmasqLXC के लिए DNS प्रश्नों को वापस मिरर करने के लिए सेट किया गया है, लेकिन आपके मामले में यह खराब कैशलेस चीजें कर सकता है।

    यदि आपने सूचीबद्ध कैश किया है, तो प्रत्येक को साफ़ करने की प्रक्रिया भिन्न होती है:

    sudo /etc/init.d/nscd reload    # nscd
    sudo /etc/init.d/named restart  # bind9
    

थोड़ा संबंधित नोट पर, कैशिंग को सक्षम करने के लिए इसे देखेंdnsmasq


1
Ps aux से मेरा आउटपुट | grep आपके जैसा ही है, फिर भी कुछ निश्चित रूप से मेरी मशीन पर DNS कैशिंग है। यदि यह dnsmasq नहीं है तो यह कुछ और है। प्रमाण: मैंने अपने सर्वर पर एक उपडोमेन बनाया, फिर भी मैं इसे पिंग नहीं कर सका, अप्राप्य की मेजबानी की। मैंने downforeveryoneorjustme.com पर चेक किया और यह ऊपर था, इसलिए प्रचार मुद्दा छोड़ दिया गया। मेरा राउटर नहीं, न ही मेरा ISP, क्योंकि मैं Google के DNS का 8.8.8.8 उपयोग करता हूं। तब मैंने कंप्यूटर को रिबूट किया (और रूटर नहीं) और मैं डोमेन तक पहुंच सकता था। मैं कोई भाग्य के साथ रिबूट से पहले एक दर्जन बार रिटायर हो रहा था। पहले रिबूट के बाद मेजबान तक पहुंचने की कोशिश करें।
Matteo

और यह पहली बार नहीं था जब मैंने एक ही चीज़ का अनुभव किया, वैसे। महीनों पहले भी ऐसा ही हुआ था और जिस तरह से मैं डोमेन तक पहुँच सका था वह कंप्यूटर को फिर से शुरू कर रहा था, लेकिन तब मेरे पास एक पुराना उबंटू संस्करण था।
मत्ती

@matteo ब्राउज़र?
ओली

नहीं, जैसा कि मैंने कहा कि मैंने पिंग के साथ परीक्षण किया, न कि (केवल) ब्राउज़र (ओं) पर।
मत्ती

@matteo मैंने और जोड़े हैं लेकिन मैं विचारों से बाहर चल रहा हूं। वहाँ सिर्फ इतना है कि कई और अधिक स्थानों किसी नहीं कर रहे हैं सकता है डीएनएस :) कैश
ओली

39

12.04 के लिए:

Ubuntu 12.04 dnsmasq (देखें man dnsmasq) का उपयोग करके DNS को कैश करता है । कैश साफ़ करने के लिए निम्नलिखित का उपयोग करें:

sudo kill -HUP $(pgrep dnsmasq)

धन्यवाद! आपने पहली बार 12.04 डिफ़ॉल्ट कैशिंग के बारे में कुछ भी देखा है!
तारक

6
12.04 डिफ़ॉल्ट रूप से डीएनएस कैश नहीं करता है - नेटवर्क-प्रबंधक को पुनरारंभ करने के बाद अपने syslog की जांच करें; इसमें एक प्रविष्टि होगी जो दिखाती है कि dnsmasq कैश-अक्षम के साथ शुरू हो रहा है।

1
मुझे नहीं पता कि कैश डिफ़ॉल्ट रूप से सक्षम है या नहीं, लेकिन यह जवाब मेरे लिए काम करता है।
j:४५ बजे जेके j

सिर्फ क्यों नहीं sudo killall -HUP dnsmasq?
जेम्स हैघ

1
के pkillबजाय का उपयोग करेंkillpgrep
रॉबर्ट सिएमर

15

sudo /etc/init.d/nscd restart

http://www.ubuntugeek.com/howto-clearflush-dns-cache-in-ubuntu.html

एक नोट के रूप में भी आप यह देख सकते हैं कि क्या आपके DNS परिवर्तनों ने डिफॉल्ट का उपयोग करके प्रचार किया है और आपके डिफ़ॉल्ट DNS सर्वरों के अलावा किसी और के खिलाफ देख रहे हैं। इस मामले में google DNS

dig @8.8.8.8 example.com


12
वर्थ नोटिंग डिफ़ॉल्ट रूप से nscd स्थापित नहीं है।
20

11

व्यक्तिगत रूप से, मैं OpenDNS का उपयोग करूँगा और उनके कैश चेक फ़ंक्शन का उपयोग करके केवल ताज़गी के लिए मजबूर कर सकता हूं ताकि यह सुनिश्चित हो सके कि आप बदलाव का काम करते हैं, लेकिन आप गारंटी नहीं दे सकते कि वे 48 घंटों के भीतर आपके उपयोगकर्ताओं के लिए ताज़ा कर देंगे।

DNS एक धीमा जानवर है। धैर्य आपको सन्न रखेगा।


+1 मैं OpenDNS का उपयोग करता हूं और साथ ही स्पष्ट कैश बहुत उपयोगी है।
मार्क डेविडसन

मुझे OpenDNS पर शक है। मैं पहले तो इससे खुश था, लेकिन फिर मुझे शक होने लगा; हालांकि मुझे लगता है कि अगर यह ISP और OpenDNS के बीच एक विकल्प है, तो मैं OpenDNS के साथ बेहतर हूं, है ना?
जोनो

2
मैं कहूंगा कि OpenDNS कम बुराई है। वे आपके ट्रैफ़िक का मुद्रीकरण करना चाहते हैं लेकिन केवल खराब डोमेन हिट पर।
ओली

@ ओली लिंक नीचे है। यदि आप अभी भी इसका उपयोग करते हैं तो क्या आप लिंक को अपडेट कर सकते हैं?
शयन

7

यदि आप nscd का उपयोग कर रहे हैं:

sudo /etc/init.d/nscd restart

यह ध्यान देने योग्य है कि यह ओएस नहीं हो सकता है जो इसे कैशिंग कर रहा है। DNS को कैश करना सभी को पसंद है ... कुछ टेस्ट:

यह देखने के लिए जांचें कि क्या यह नया या पुराना आईपी है। अधिकांश ब्राउज़र DNS को भी कैश करते हैं, इसलिए यदि आपने क्रोमियम को पुनः आरंभ नहीं किया है या जो भी आप नवीनतम नहीं देख रहे हैं।

ping yourdomain.com

अपने स्थानीय नामवर को /etc/resolv.conf में किसी अन्य प्रदाता, Google या स्तर, उदाहरणों पर स्विच करें:

nameserver 8.8.8.8
nameserver 4.2.2.2

और फिर पिंग।

यह सुनिश्चित करने के लिए जांचें कि आपका राउटर DNS को किसी भी रूप में कैशिंग नहीं कर रहा है। (राउटर / फर्मवेयर / आदि द्वारा बदलता है)

अंत में, धैर्य। डीएनएस को पूरे इंटरनेट पर प्रचार करने में थोड़ा समय लग सकता है।


2
यदि NetworkManager और DHCP /etc/resolve.conf का उपयोग किया जाता है, तो DHCP लीज समाप्त होने पर फ्लश हो जाएगा, इसलिए आपको अधिक समय तक काम करने के लिए NetworkManager में एक स्थिर IP सेट करना होगा।
लासपुलसेन

+1 मुझे महसूस नहीं हुआ कि फ़ायरफ़ॉक्स DNS को कैशिंग कर रहा है, इससे बहुत मदद मिली।
वेवमोड

स्थानीय काम करने वाले को Google पर स्विच करने के लिए +1
Bibek Sharma

5

ऊपर दिए गए सभी उत्तर एक महत्वपूर्ण बात को नाम रिज़ॉल्यूशन में भूल गए हैं: आम तौर पर DNS सर्वर जो आप नाम रिज़ॉल्यूशन का अनुरोध करते हैं, वह रिकॉर्ड खुद को (आधिकारिक सर्वर) धारण करने वाला नहीं है। जैसा कि प्रत्येक DNS रिकॉर्ड एक टाइम टू लाइव मान के साथ आता है, जो इस मूल्य द्वारा उल्लिखित सेकंड की मात्रा के दौरान कैशिंग करने के लिए रिज़ॉल्यूशन चेन में प्रत्येक DNS सर्वर को उपकृत करेगा। इसलिए न केवल आप अपनी मशीन में कैश कर सकते हैं, बल्कि CERTAINLY नाम देखने के परिणाम को आपके द्वारा नियंत्रित किए जाने वाले सर्वर पर कहीं कैश किया जाएगा।

नाम रिकॉर्ड परिवर्तन के बारे में तुरंत सूचित किया जाने वाला एकमात्र समाधान लेखक के नाम सर्वर में प्रविष्टि को बनाते / अद्यतन करते समय 0 के TTL मान का उपयोग करना है। लेकिन इसका मतलब है कि प्रत्येक नाम समाधान के लिए, सर्वर हिट हो जाएगा, आमतौर पर रजिस्ट्रारों द्वारा इसकी अनुमति नहीं दी जाती है। उदाहरण के लिए, वे पूर्व-निर्धारित टीटीएल मूल्यों की एक सूची प्रदान कर सकते हैं जिन्हें आप चुन सकते हैं।

मैं विभिन्न डोमेन नामों का प्रबंधन करता हूं और यह सुनिश्चित करता हूं कि परिवर्तन आधिकारिक नाम सर्वरों में अच्छी तरह से लागू होते हैं, मैं एक उपकरण का उपयोग कर रहा हूं dnstracerजो DNS रूट से प्रत्येक सर्वर पर लुकअप परिणाम दिखा सकता है।

अंत में, यहां तक ​​कि बिना किसी डीएनएस कैशिंग समाधान के, यहां तक ​​कि डीएनएस रिकॉर्ड को बदलने और पीसी पर परिवर्तन को देखने के बीच भी देरी होगी। यह देरी रिकॉर्ड्स के टीटीएल और आपके पीसी और आधिकारिक नाम सर्वर के बीच DNS सर्वरों की संख्या पर निर्भर करती है।


बेशक, लेकिन अगर यह मुद्दा था, तो कंप्यूटर को रिबूट करना इसे ठीक नहीं करेगा।
मट्टियो

2

Ubuntu 14.04 के लिए, मैं इस कमांड की सिफारिश करता हूं:

sudo service dns-clean

डिफ़ॉल्ट सर्वर इंस्टॉल पर नहीं। केवल 14.04 और उससे कम पर काम करता है।
RJ

1

मैंने अपने 12.10 ubuntu बॉक्स पर डीएनएस कैश को फ्लश करने के लिए निम्नलिखित कमांड का उपयोग किया और यह शानदार काम किया।

sudo kill -HUP $(pgrep dnsmasq)

एक अन्य सहायक संकेत SIGUSR1 है जो सिसोग्लॉग के लिए थोड़ा आँकड़ा डंप करता है या जैसा कि इस पर ध्यान दिया गया है man dnsmasq:

Inno-daemon मोड या पूर्ण लॉगिंग सक्षम होने पर (-q), कैश की सामग्री का एक पूरा डंप बनाया जाता है।


के pkillबजाय का उपयोग करें killऔरpgrep
रॉबर्ट सिएमर

1

उबंटू 16.04 पर, मैं कैश को तब तक प्राप्त नहीं कर सका जब तक कि मैंने नहीं किया:

sudo service dnsmasq restart

0

मुझे विरोधाभास भी मिला, लेकिन यह: मेरे लिए https://superuser.com/a/521562 woks (नवीनतम अपडेट के साथ Ubuntu 13.10, कोई विशेष नेटवर्क पैकेज स्थापित नहीं)।
संक्षेप में, बस इस का उपयोग करें
sudo /etc/init.d/dns-clean


0

मैं विशेष रूप से दूरस्थ उबंटू सर्वर में ओपनडांस की सिफारिश करता हूं, यह बहुत दर्द कम करता है ...

यह कैसे करना है? कुंआ...

cd /etc/dhcp
sudo nano dhclient.conf

इस "अनुरोध सबनेट-मास्क ..." लाइन से पहले डालें

supersede domain-name-servers 208.67.222.222,208.67.220.220;

यह इतनी तेजी से इंटरफ़ेस को पुनः आरंभ करेगा कि आपको अपना SSH कनेक्शन भी नहीं खोना चाहिए

sudo ifdown eth0 && sudo ifup eth0

यह देखने के लिए जांचें कि क्या आपका ब्रांड नया ओपनडएनएस सही ढंग से स्थापित है

cat /etc/resolv.conf

यह निश्चित रूप से सवाल का जवाब नहीं है।
ब्लेफसेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.