मैं DNS कैश को कैसे फ्लश कर सकता हूं?


27

मैं अपने Android फ़ोन पर अपना DNS कैश कैसे साफ़ कर सकता हूँ? (Droid3, जिंजरब्रेड, विशिष्ट होने के लिए निहित)

आदर्श रूप से मैं एक टर्मिनल एमुलेटर के माध्यम से चलने के लिए एक कमांड की तलाश में हूं, जो कुछ इसी तरह का है

ipconfig /flushdns

एक विंडोज़ मशीन पर।

इसका लिनक्स संस्करण क्या है?


क्या आपको सिस्टम ऐप, थर्ड पार्टी ऐप या अपने ऐप के लिए ऐसा करने की ज़रूरत है?
onik

तृतीय पक्ष मुझे लगता है? मुझे इसकी आवश्यकता तब होती है जब मैं टर्मिनल एमुलेटर के माध्यम से सर्वर को पिंग करता हूं।
स्टीव रॉबिंस 4

कृपया यह दर्शाने के लिए कि आप CLI- आधारित उत्तर चाहते हैं, अपने शीर्षक को अपडेट करें। यह Google में रैंकिंग कर रहा है और इस शीर्षक को खोजने वाले 99% लोगों के पास जड़ या सीएलआई कौशल नहीं है।
पीजे ब्रुनेट

जवाबों:


11

एक विशिष्ट लिनक्स सिस्टम पर कैश को चलाकर साफ़ किया जाता है /etc/init.d/nscd restart, लेकिन कम से कम मेरी ROM DNS को कैश करने के लिए nscd का उपयोग नहीं करती है। आप जाँच कर सकते हैं कि क्या आपका है, लेकिन मुझे संदेह है। मैंने सुझाव दिया है कि ब्रोकर कैश क्लियर करने से डीएनएस कैश भी साफ हो जाएगा, लेकिन एक निश्चित तरीका यह है कि हार्ड रिबूट (शटडाउन, 30 के लिए बैटरी हटाएं, रीटचैट बैटरी और बूट) करें।


1
मेरे सभी गुगलीकरण "कठिन रिबूट" सुझाव भी लाते हैं।
14

मैं नीच कर रहा हूं क्योंकि उत्तर के लिए रूट और / या शेल एक्सेस की आवश्यकता होती है जो अधिकांश एंड्रॉइड उपयोगकर्ताओं के लिए अवास्तविक है। बाकी जवाब से मेरी समस्या हल नहीं हुई। इसके अलावा, मेरा मानना ​​है कि मैथ्यू रीड को सवाल पर पुनर्विचार करना चाहिए क्योंकि यह बिल्कुल "किया हुआ सौदा" नहीं है। DNS बेहद जटिल है और यहां Android खातों के बिना अभी तक लोगों के अधिक वैध जवाब होंगे, मैं इसका एक उदाहरण हूं। FWIW मेरे पास 10+ प्रतिष्ठा है और अभी भी इस सवाल का जवाब नहीं दे सका है।
पीजे ब्रूनेट

@PJBrunet सटीक होने के लिए, आपके पास एसोसिएशन बोनस से 1 प्रतिनिधि और 100 प्रतिनिधि हैं, जो इस साइट पर अर्जित नहीं होने के बाद से गिनती नहीं करता है। देखें कि "संरक्षित" प्रश्न क्या है? अधिक जानकारी के लिए। सवाल के लिए, मैं इसे अभी के लिए असुरक्षित हूँ।
15

14

डिफ़ॉल्ट रूप से पते 600 सेकंड (10 मिनट) के लिए कैश किए जाते हैं। असफल लुकअप 10 सेकंड के लिए कैश्ड हैं। मैंने जो कुछ देखा है, उसमें से कैश को फ्लश करने के लिए कुछ भी नहीं बनाया गया है। यह स्पष्ट रूप से एक है Android में सूचित बग है क्योंकि यह DNS कैश को संग्रहीत करता है। ब्राउज़र कैश को साफ़ करना DNS को स्पर्श नहीं करता है, "हार्ड रीसेट" इसे साफ़ करता है क्योंकि यह बस बाहर निकलता है।

क्या हम DNS कैश को साफ़ करने की आवश्यकता के लिए अंतर्निहित कारण पूछ सकते हैं? शायद वहाँ एक और समाधान है जो छूट गया है क्योंकि हम बड़ी तस्वीर नहीं देख रहे हैं।


2
ओपी के बारे में निश्चित नहीं है, लेकिन मेरे पास एक उपयोग का मामला है जहां मेरा होम नेटवर्क server.home.mydomain.com जैसे पते पेश करता है, लेकिन मेरा ISP * .mydomain.com ("*" के किसी भी मूल्य के लिए) यह पहले से मैप नहीं किया गया है। www.mydomain.com पर अगर मेरा फोन 3G / 4G पर है, तो मैं कभी-कभी कैश के समय तक अपने घर नेटवर्क तक पहुंचने में असमर्थ हूं।
टॉम अगस्ट

लगता है जेबी में जबरन 10 मिनट की कैशिंग तय है - यह कमिट देखें । पुराने रिलीज के लिए जावा कैश व्यवहार को networkaddress.cache.ttlऔर networkaddress.cache.negative.ttlमें ट्यून किया जा सकता है build.prop
सर्गेई व्लासोव

Fwiw, 4.3 में अभी भी कुछ (शायद अलग) DNS मुद्दे हैं - वाईफाई पर टैबलेट को उन नामों के लिए एक आईपी पता नहीं मिल सकता है जो लिनक्स और विंडोज मशीनों (वाईफाई को होस्ट करने वाले नेटवर्क पर) हल कर सकते हैं।
जॉन शेमित्ज़

7

एंड्रॉइड में ऐसा करने का एकमात्र तरीका हार्ड रिबूट करना है। आवश्यक कमांड-लाइन टूल सामान्य रूप से उपलब्ध नहीं हैं, हालांकि मेरे परीक्षणों में एक कठिन रिबूट ने हमेशा मेरे (गैलेक्सी नेक्सस, और एचटीसी डिज़ायर, विभिन्न रोम) के लिए चाल चली है।

यह एक दर्द है, लेकिन यह 10min कैश टाइमआउट से तेज है।


कोई यह कैसे करता है?
स्टीव रॉबिंस

1
- पावर बटन को दबाए रखें - "पावर ऑफ" चुनें - फोन को पूरी तरह से बंद करने की अनुमति दें - बैटरी निकालें और 30s प्रतीक्षा करें - बैटरी लौटें - पावर फोन वापस। मेरे अनुभव में बैटरी को निकालना आवश्यक नहीं है, लेकिन कुछ ने बताया है कि यदि आप इस चरण को याद नहीं करते हैं तो यह काम नहीं करता है।
मार्टिन

2
बैटरी को निकालना बकवास है। रिबूट काम करता है। मुझे संदेह है कि इसके लिए अतिरिक्त समय कुछ बाहरी डीएनएस कैश को समय समाप्त करने की अनुमति देता है।
मथायस उरलिच्स

5

इंटरनेट बूस्टर जैसे ऐप भी "क्लियर DNS कैश" (अन्य चीजों के बीच) का वादा करते हैं। मैंने इसे स्वयं नहीं आज़माया, और इसके अलावा ऐसा करने का कोई तरीका नहीं है (केवल एक "अनुकूलन" बटन जो "सुधार लागू करता है"); इसके प्रभाव भी उपकरणों के बीच भिन्न हो सकते हैं (ऐप का वर्णन) - लेकिन यह रिबूट से बेहतर हो सकता है। Btw: जबकि आवश्यकता के रूप में जड़ का उल्लेख नहीं है, यह अभी भी जरूरत हो सकती है।

Google Play पर कई "समान एप्लिकेशन" सूचीबद्ध हैं - लेकिन ध्यान रखें कि उनमें से अधिकांश में Airpush विज्ञापन शामिल हैं और / या अत्यधिक अनुमतियाँ चाहते हैं, यही कारण है कि मैंने उन्हें यहाँ नाम नहीं दिया।


एक और संभावित समाधान (स्वयं द्वारा परीक्षण नहीं किया गया) मुझे मैडपीसी में मिला , जो बताते हुए उपयोगकर्ता के8522 के उत्तर को उद्धृत करता है :

अंतिम विकल्प लेकिन उपयोगकर्ता पर सबसे अधिक गहन जब तक वे केवल अपडेट का इंतजार नहीं करना चाहते हैं: क्या आपके उपयोगकर्ता सेटिंग्स में जाते हैं -> एप्लिकेशन -> नेटवर्क स्थान -> स्पष्ट डेटा

एक अन्य संक्षिप्त विवरण में डीएनएस को फिर से फ्लश करने के एक अलग आसान तरीके का उल्लेख किया गया है (फिर, मैंने इसे स्वयं परीक्षण नहीं किया है): बस हवाई जहाज मोड पर स्विच करें (ओह, कोई नेटवर्क नहीं?) और पीछे (आह, वहां यह है) चाल करना चाहिए। बेवकूफ लग सकता है, लेकिन मैं कल्पना कर सकता हूं कि हवाई जहाज मोड में प्रवेश करते समय एंड्रॉइड कुछ ऐसा ही करता है /etc/init.d/networking stop, जिसमें साइड-इफेक्ट के रूप में डीएनएस फ्लश होता है।


एक बहुत ही आसान समाधान नीचे टिप्पणी में dtumaykin द्वारा आपूर्ति की गई थी : बस हवाई जहाज-मोड पर स्विच करना और वापस पहले से ही यह कर सकता है (बेशक कुछ सेकंड के लिए नेटवर्क के साइड-इफेक्ट के साथ नीचे जा रहा है;) हालांकि यह काम नहीं कर सकता है कुछ उपकरणों पर, यह एक कोशिश के लायक है: कोई अतिरिक्त इंस्टॉल नहीं, और आसानी से n00bs द्वारा भी किया जाता है।

अगर किसी ने उन समाधानों में से एक की कोशिश की, तो पुष्टि (या विपरीत) निश्चित रूप से स्वागत है :)


3
शेल कमांड ndc resolver flushdefaultifऔर हैं ndc resolver flushif wlan0; उन्हें जड़ की आवश्यकता होती है। वहाँ भी है NetworkManagementService.flushDefaultDnsCache () विधि है, जिसमें जेबी से पहले सिर्फ CHANGE_NETWORK_STATE आवश्यक है, लेकिन फिर CONNECTIVITY_INTERNAL करने के लिए नीचे ताला लगा हुआ था। तो जाहिर तौर पर DNS कैश को बिना रूट (बिल्ड -प्रॉप ट्यूनिंग के जावा-लेवल कैश को मारने के लिए) को हैक करने का एक तरीका था, लेकिन यह जेबी में काम नहीं करेगा।
सर्गेई व्लासोव

अतिरिक्त जानकारी के लिए धन्यवाद, @SergeyVlasov! क्या आप जानते हैं कि आपके द्वारा बताए गए तरीकों में से कोई भी दो प्रस्तावित समाधानों से मेरे उत्तर में अंतिम रूप से ट्रिगर हो जाता है (या यदि वे काम करते हैं, लेकिन एक अलग कारण से)?
इज़ी

4
एयरप्लेन मोड ऑन-ऑफ ने मेरे लिए काम किया। सैमसंग गैलेक्सी S4 मिनी और CM12.1।
dtumaykin

मैं जवाब नहीं दे सकता क्योंकि मैथ्यू पढ़ें ने सवाल को लॉक कर दिया। कृपया मेरे लिए उसे थप्पड़ मारें :-) हार्ड रिबूट ने मेरे लिए काम नहीं किया, हवाई जहाज मोड ने काम नहीं किया, "स्थान" को साफ़ करते हुए (उत्तर के अनुसार) काम नहीं किया, प्रतीक्षा के घंटे भी काम नहीं किए। अतीत में, मैंने ब्राउज़र टैब को बंद करके और एक नया टैब खोलकर इसे हल किया है। हालांकि, "कोई रूट नहीं" 8.8.8.8 ऐप (Google DNS) है, लेकिन मैं वीपीएन एक्सेस नहीं दे सकता क्योंकि मेरे पास पहले से ही वीपीएन ऐप है जिसके लिए मैंने भुगतान किया था। मेरे लिए समाधान वीपीएन की "वर्चुअल लोकेशन" सेटिंग में बदलाव था या समाधान मेरे वीपीएन को रोकने और शुरू करने के लिए था। मान लें कि मेरे वीपीएन का अपना डीएनएस कैश है।
पीजे ब्रूनेट

@PJBrunet मैं एक मॉड थप्पड़ नहीं मारूंगा (बहुत खतरनाक है, वह मेरा खाता बंद कर सकता है;) और इसके अलावा, मेरी बाहें लंबे समय तक ओवरसीज तक पहुंचने के लिए पर्याप्त नहीं हैं)। लेकिन 10 प्रतिनिधि प्राप्त करना बहुत कठिन नहीं है (एक अच्छा प्रश्न पूछें 2 upvotes, या 1 upvote प्राप्त करने वाला उत्तर लिखें); इसके साथ, यहाँ वापस आएँ और अपना उत्तर लिखें :) साझा करने के लिए धन्यवाद!
इज़ी

2

एंड्रॉइड के आधुनिक संस्करणों में क्रोम के क्रोम क्रोम // नेट-इंटर्नल / # डीएनएस के तहत क्लियर करने का विकल्प है


मेरे लिए काम नहीं किया, अभी भी एक कठिन रिबूट करना था
Cerveser

0

मेरे मामले में, मेरे पास केवल एक डोमेन नाम था जिसे मुझे फ्लश करने की आवश्यकता थी। एयरप्लेन मोड को टॉगल करने, हार्ड रिबूट का प्रदर्शन करने, या क्रोम में क्रियाएं: // नेट-इंटर्नल / # डीएनएस जैसे सुझाव मेरे काम नहीं आए। इसके बजाय मैंने अस्थायी रूप से 8.8.8.8 पर Google के नेमसर्वर का उपयोग करने के लिए अपनी वाईफाई सेटिंग बदल दी।

ये कदम मैंने उठाए हैं:

  • सेटिंग्स -> वाईफाई -> वर्तमान कनेक्शन पर टैप करें और वर्तमान आईपी पते पर ध्यान दें
  • लंबे समय तक चालू कनेक्शन पर क्लिक करें -> नेटवर्क संशोधित करें
  • "उन्नत सेटिंग" जांचें
  • "आईपी सेटिंग्स" को "स्थिर" में बदलें
  • पहले चरण से वर्तमान आईपी के लिए "आईपी पता" सेट करें
  • अपने IP पते पर "गेटवे" सेट करें। 4 नंबर के रूप में .1 के साथ (यह सिर्फ एक अनुमान है। यदि आप जानते हैं कि यह कुछ अलग है, तो इसका उपयोग करें)
  • "DNS 1" को 8.8.8.8 पर सेट करें

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

जब मैं वाईफाई पर वापस गया और "आईपी सेटिंग्स" को "डीएचसीपी" पर सेट किया, तो सही डोमेन वर्तमान आईपी पते को हल करना जारी रखा।

यह Sony Xperia Z3 Android 5.1.1 पर चल रहा है


0

एक एड्रॉयड 5.1 मोबाइल पर, जिसने गलत डीएनएस लिया है, जो दो डब्ल्यूएलएएन के बीच में स्विच किया गया है; )

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