ฉันจะล้าง DNS Cache ได้อย่างไร


27

ฉันจะล้างแคช DNS ของฉันบนโทรศัพท์ Android ของฉันได้อย่างไร (Droid3, Gingerbread, root จะเฉพาะเจาะจง)

นึกคิดฉันกำลังมองหาคำสั่งให้ทำงานผ่าน terminal emulator สิ่งที่คล้ายกับ

ipconfig /flushdns

บนเครื่องที่ใช้ windows

รุ่น Linux คืออะไร


คุณต้องทำสิ่งนี้กับแอพระบบแอพของบุคคลที่สามหรือแอพของคุณหรือไม่?
— onik

บุคคลที่สามฉันเดา ฉันต้องการมันเมื่อฉัน ping เซิร์ฟเวอร์ผ่าน Terminal Emulator
— Steve Robbins

โปรดอัปเดตชื่อของคุณเพื่อแสดงว่าคุณต้องการคำตอบจาก CLI นี่เป็นการจัดอันดับใน Google และ 99% ของผู้ที่ค้นหาชื่อนี้ไม่มีทักษะรูตหรือ CLI
— PJ Brunet

คำตอบ:


11

บนระบบ Linux ทั่วไปแคชจะถูกล้างโดยการเรียกใช้/etc/init.d/nscd restartแต่อย่างน้อย ROM ของฉันไม่ได้ใช้ nscd เพื่อแคช DNS คุณสามารถตรวจสอบว่าของคุณทำ แต่ฉันสงสัยมัน ฉันเคยเห็นคำแนะนำว่าการล้างแคชเบราว์เซอร์จะล้างแคช DNS ด้วย แต่วิธีหนึ่งที่แน่นอนคือการรีบูตเครื่องอย่างหนัก (ปิดเครื่องถอดแบตเตอรี่ออกเป็นเวลา 30 วินาทีใส่แบตเตอรี่ใหม่และบู๊ต)


1
googling ทั้งหมดของฉันยังนำเสนอข้อเสนอแนะ "รีบูตยาก"
— Chahk

ฉันกำลัง downvoting เพราะคำตอบนั้นต้องการรูทและ / หรือสมมติว่าเข้าถึงเชลล์ซึ่งไม่สมจริงสำหรับผู้ใช้ Android ส่วนใหญ่ คำตอบที่เหลือไม่ได้แก้ปัญหาของฉัน นอกจากนี้ฉันเชื่อว่า Matthew Read ควรพิจารณาการล็อคคำถามอีกครั้งเพราะนี่ไม่ใช่ "การเจรจาที่ทำได้" DNS นั้นซับซ้อนมากและจะมีคำตอบที่ถูกต้องจากผู้ที่ไม่มีบัญชี Android ที่นี่ฉันเป็นตัวอย่าง FWIW ฉันมีชื่อเสียงมากกว่า 10 คนและยังไม่สามารถตอบคำถามได้
— PJ Brunet

@PJBrunet เพื่อความถูกต้องคุณมี 1 ตัวแทนและ 100 ตัวแทนจากโบนัสการเชื่อมโยงซึ่งไม่นับเนื่องจากคุณยังไม่ได้รับบนเว็บไซต์นี้ ดูคำถาม "ป้องกัน" คืออะไร สำหรับรายละเอียดเพิ่มเติม สำหรับคำถามที่ฉันจะป้องกันในตอนนี้
— onik

14

ที่อยู่จะถูกแคชไว้ 600 วินาที (10 นาที) โดยค่าเริ่มต้น การค้นหาที่ล้มเหลวจะถูกแคชเป็นเวลา 10 วินาที จากทุกสิ่งที่ฉันเห็นไม่มีอะไรในตัวที่จะล้างแคช เห็นได้ชัดว่านี่เป็นข้อผิดพลาดที่รายงานใน Android เนื่องจากวิธีการที่เก็บแคช DNS การล้างแคชของเบราว์เซอร์ไม่ได้สัมผัสกับ DNS การ "ฮาร์ดรีเซ็ต" จะล้างค่าออกเพราะหมดเวลา

เราสามารถถามเหตุผลที่จำเป็นสำหรับการล้างแคช DNS ได้หรือไม่? อาจจะมีอีกวิธีหนึ่งที่พลาดเพราะเราไม่ได้มองภาพใหญ่


2
ไม่แน่ใจเกี่ยวกับ OP แต่ฉันมีกรณีการใช้งานที่เครือข่ายในบ้านของฉันให้บริการที่อยู่เช่น server.home.mydomain.com แต่ ISP ของฉันแก้ไข * .mydomain.com (สำหรับค่าใด ๆ ของ "*" นี่ยังไม่ได้แมป) ไปที่ www.mydomain.com หากโทรศัพท์ของฉันใช้ 3G / 4G ดังนั้นบางครั้งฉันไม่สามารถเข้าถึงเครือข่ายในบ้านของฉันได้จนกว่าแคชจะหมด
— TomG

ดูเหมือนว่าการบังคับแคช 10 นาทีจะได้รับการแก้ไขใน JB - ดูการกระทำนี้ สำหรับรุ่นเก่าพฤติกรรมแคช Java อาจจะปรับโดยnetworkaddress.cache.ttlและในnetworkaddress.cache.negative.ttl build.prop
— Sergey Vlasov

ก่อนหน้านี้ยังมีปัญหา DNS (อาจแตกต่างกัน) แม้ใน 4.3 - แท็บเล็ตใน wifi อาจไม่ได้รับที่อยู่ IP สำหรับชื่อที่เครื่อง Linux และ Windows (บนเครือข่ายที่โฮสต์ wifi) สามารถแก้ไขได้
— Jon Shemitz

7

วิธีเดียวในการทำเช่นนี้ใน Android คือทำการรีบูตเครื่องอย่างหนัก เครื่องมือบรรทัดคำสั่งที่จำเป็นไม่สามารถใช้งานได้ตามปกติ แต่ในการทดสอบของฉันการรีบูตเครื่องได้ทำเคล็ดลับสำหรับฉันเสมอ (Galaxy Nexus และ HTC Desire, ROM ต่าง ๆ )

นี่เป็นความเจ็บปวด แต่เร็วกว่าการหมดเวลาแคช 10 นาที


คนเราทำสิ่งนี้อย่างไร?
— Steve Robbins

1
- กดปุ่มเพาเวอร์ - เลือก "ปิดเครื่อง" - อนุญาตให้โทรศัพท์ปิดเครื่องอย่างเต็มที่ - ถอดแบตเตอรี่ออกและรอ 30 วินาที - ส่งคืนแบตเตอรี่ - เปิดเครื่องโทรศัพท์อีกครั้ง จากประสบการณ์ของฉันไม่จำเป็นต้องถอดแบตเตอรี่ออก แต่มีบางคนรายงานว่ามันไม่ทำงานหากคุณพลาดขั้นตอนนี้
— Martin

2
การถอดแบตเตอรี่เป็นเรื่องไร้สาระ รีบูตทำงานได้ ฉันสงสัยว่าเวลาเพิ่มเติมที่จะอนุญาตให้แคช DNS ภายนอกบางตัวหมดเวลา
— Matthias Urlichs

5

นอกจากนี้ยังมีแอพอย่างInternet Booster ที่สัญญาว่าจะ "ล้างแคช DNS" (ท่ามกลางสิ่งอื่น ๆ ) ฉันไม่ได้ลองด้วยตัวเองและยิ่งไปกว่านั้นดูเหมือนจะไม่มีทางทำเช่นนั้น (เพียงปุ่มเดียว "ปรับให้เหมาะสม" ซึ่ง "ใช้การปรับปรุง"); ผลของมันอาจแตกต่างกันระหว่างอุปกรณ์ (พูดถึงคำอธิบายของแอพ) - แต่มันอาจจะดีกว่าการรีบูต Btw: แม้ว่าจะไม่ได้กล่าวถึงรูทตามความต้องการ แต่ก็อาจจำเป็นต้องใช้

มี "แอพที่คล้ายกัน" หลายรายการใน Google Play - แต่โปรดทราบว่าส่วนใหญ่มีโฆษณา Airpush และ / หรือต้องการการอนุญาตที่มากเกินไปซึ่งเป็นสาเหตุที่ฉันไม่ได้ตั้งชื่อที่นี่


อีกวิธีแก้ปัญหาที่เป็นไปได้ (ไม่ได้ทดสอบด้วยตัวเอง) ฉันพบที่MadPCดูเหมือนจะอ้างคำตอบของผู้ใช้ 8522ก่อนที่จะระบุ:

ตัวเลือกสุดท้าย แต่เข้มข้นที่สุดสำหรับผู้ใช้เองเว้นแต่พวกเขาต้องการเพียงแค่รอการอัปเดต: ให้ผู้ใช้ของคุณเข้าสู่การตั้งค่า -> แอปพลิเคชัน -> ที่ตั้งเครือข่าย -> ล้างข้อมูล

วิธีสั้น ๆ อีกวิธีที่กล่าวถึงวิธีที่ง่ายในการล้าง DNS (อีกครั้งฉันไม่ได้ทดสอบตัวเอง): เพียงแค่เปลี่ยนไปใช้โหมดเครื่องบิน (อุ๊ปส์ไม่มีเครือข่าย?) และกลับ (อาใช่นั่นคือ) ควรทำเคล็ดลับ อาจฟังดูงี่เง่า แต่ฉันนึกภาพออกได้ว่าเมื่อเข้าสู่โหมดเครื่องบิน Android จะทำสิ่งที่คล้ายกับ/etc/init.d/networking stopซึ่งมี DNS flush เป็นผลข้างเคียง


วิธีแก้ปัญหาที่ง่ายมากถูกจัดทำโดยdtumaykinในความคิดเห็นด้านล่าง: เพียงแค่สลับไปที่โหมดเครื่องบินและกลับมาแล้วก็ทำได้ สำหรับอุปกรณ์บางรุ่นคุณควรลองดู: ไม่มีการติดตั้งเพิ่มเติมและทำได้อย่างง่ายดายแม้กระทั่ง n00bs

หากใครลองวิธีแก้ปัญหาเหล่านี้การยืนยัน (หรือตรงกันข้าม) ยินดีต้อนรับแน่นอน :)


3
มีคำสั่งเชลล์ndc resolver flushdefaultifและndc resolver flushif wlan0; พวกเขาต้องการราก นอกจากนี้ยังมีNetworkManagementService.flushDefaultDnsCache ()วิธีการซึ่งต้องการเพียง CHANGE_NETWORK_STATE ก่อน JB แต่จากนั้นถูกล็อคลงไปที่ CONNECTIVITY_INTERNAL ดังนั้นจึงเห็นได้ชัดว่าเป็นวิธีที่แฮ็กในการทำความสะอาดแคช DNS โดยไม่ต้องรูท (หลังจากปรับ build.prop เพื่อฆ่าแคชระดับ Java) แต่มันจะไม่ทำงานใน JB
— Sergey Vlasov

ขอบคุณสำหรับข้อมูลเพิ่มเติม @SergeyVlasov! คุณรู้หรือไม่ว่าวิธีการใด ๆ ที่คุณกล่าวถึงได้รับการกระตุ้นจากโซลูชั่นที่เสนอทั้งสองที่กล่าวถึงล่าสุดในคำตอบของฉัน (หรือถ้าพวกเขาทำงาน แต่ด้วยเหตุผลอื่น)
— Izzy

4
โหมดเครื่องบินเปิด - ปิดใช้งานได้สำหรับฉัน Samsung Galaxy S4 Mini และ CM12.1
— dtumaykin

ฉันตอบไม่ได้เพราะ Matthew Read ล็อคคำถามไว้ กรุณาตบเขาสำหรับฉัน :-) รีบูตยากไม่ทำงานสำหรับฉันโหมดเครื่องบินไม่ทำงานการล้าง "ตำแหน่ง" (ตามคำตอบ) ไม่ทำงานชั่วโมงรอไม่ทำงานอย่างใดอย่างหนึ่ง ก่อนหน้านี้ฉันเพิ่งแก้ไขปัญหานี้โดยการปิดแท็บเบราว์เซอร์และเปิดแท็บใหม่ มีแอพ "no root" 8.8.8.8 (Google DNS) ฉันไม่สามารถให้สิทธิ์การเข้าถึง VPN เพราะฉันมีแอพ VPN ที่ฉันจ่ายไปแล้ว ทางออกสำหรับฉันคือเปลี่ยนการตั้งค่า "ตำแหน่งเสมือน" ของ VPN หรือวิธีแก้ไขคือหยุดและเริ่ม VPN สมมติว่า VPN ของฉันมีแคช DNS ของตัวเอง
— PJ Brunet

@PJBrunet ฉันจะไม่ตบ mod (อันตรายเกินไปเขาอาจปิดบัญชีของฉัน;) และนอกจากนี้แขนของฉันไม่นานพอที่จะไปถึงต่างประเทศ) แต่การได้รับ 10 ตัวแทนไม่ยากเกินไป (ถามคำถามที่ดีรับ 2 upvotes หรือเขียนคำตอบที่ได้รับ 1 upvote); กลับมาที่นี่แล้วเขียนคำตอบของคุณ :) ขอบคุณสำหรับการแบ่งปัน!
— Izzy

2

ใน Android รุ่นใหม่มีตัวเลือกในการล้างแคช DNS ของ Chrome ภายใต้ chrome: // net-internals / # dns


ไม่ทำงานสำหรับฉันยังคงต้องทำการรีบูตอย่างหนัก
— Cerveser

0

ในกรณีของฉันฉันมีชื่อโดเมนหนึ่งชื่อที่ฉันต้องการให้ล้างออก คำแนะนำเช่นการสลับโหมดเครื่องบินการรีบูตยากหรือการกระทำใน chrome: // net-internals / # dns ไม่ได้ผลสำหรับฉัน แต่ฉันเปลี่ยนการตั้งค่า WiFi ชั่วคราวเพื่อใช้เนมเซิร์ฟเวอร์ของ Google ที่ 8.8.8.8

นี่คือขั้นตอนที่ฉันทำ:

  • การตั้งค่า -> WiFi -> แตะการเชื่อมต่อปัจจุบันและจดบันทึกที่อยู่ IP ปัจจุบัน
  • ลองคลิกการเชื่อมต่อปัจจุบัน -> ปรับเปลี่ยนเครือข่าย
  • ทำเครื่องหมาย "การตั้งค่าขั้นสูง"
  • เปลี่ยน "การตั้งค่า IP" เป็น "คงที่"
  • ตั้ง "ที่อยู่ IP" เป็น IP ปัจจุบันจากขั้นตอนแรก
  • ตั้งค่า "เกตเวย์" เป็นที่อยู่ IP ของคุณ แต่ใช้. 1 เป็นหมายเลข 4 (นี่เป็นเพียงการคาดเดาหากคุณรู้ว่ามันต่างจากเดิมให้ใช้คำนั้น)
  • ตั้งค่า "DNS 1" เป็น 8.8.8.8

หลังจากขั้นตอนเหล่านี้เมื่อฉันpingแก้ไขชื่อโดเมนในคอนโซลจะแก้ไขที่อยู่ IP ที่ถูกต้องและดูเหมือนจะเขียนทับแคชเก่า การเยี่ยมชมโดเมนในเบราว์เซอร์จะมีผลเหมือนกัน

เมื่อฉันกลับไปที่ WiFi และตั้งค่า "การตั้งค่า IP" กลับไปเป็น "DHCP" โดเมนที่ถูกต้องยังคงแก้ไขที่อยู่ IP ปัจจุบัน

นี่คือ Sony Xperia Z3 ที่ใช้ Android 5.1.1


0

บน Adroid 5.1 Mobile ซึ่งใช้ DNS ผิดที่เปลี่ยนไปมากระหว่างสอง WLAN (คำถามทำเครื่องหมายบน WLAN Connexion ฉันไม่ต้องการคืนค่าโทรศัพท์ของฉันตามที่ฉันทำครั้งเดียว Engelsiz: DNS Changer แก้ไขแล้ว; )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.