DNS 캐시를 어떻게 플러시합니까?


27

안드로이드 폰에서 DNS 캐시를 지우려면 어떻게해야합니까? (Droid3, 진저 브레드, 구체적으로 뿌리 내림)

이상적으로는 터미널 에뮬레이터를 통해 실행되는 명령을 찾고 있습니다.

ipconfig /flushdns

Windows 컴퓨터에서.

이것의 리눅스 버전은 무엇입니까?


시스템 앱, 타사 앱 또는 앱에 대해이 작업을 수행해야합니까?
onik

내가 추측하는 타사? 터미널 에뮬레이터를 통해 서버를 ping 할 때 필요합니다.
Steve Robbins

CLI 기반 답변을 원한다고 제목을 업데이트하십시오. Google 순위이며이 제목을 검색하는 사람들의 99 %가 루트 또는 CLI 기술이 없습니다.
PJ Brunet

답변:


11

일반적인 Linux 시스템에서는 캐시를 실행하여 캐시를 지우지 /etc/init.d/nscd restart만 적어도 내 ROM은 nscd를 사용하여 DNS를 캐시하지 않습니다. 당신이 할 수 있는지 확인할 수는 있지만 의심합니다. Brower 캐시를 지우면 DNS 캐시도 지워진다는 제안을 보았지만 확실한 재부팅 (종료, 30 초 동안 배터리 제거, 배터리 다시 연결 및 부팅)을 수행하는 것이 확실한 방법입니다.


1
내 인터넷 검색 모두 "하드 재부팅"제안을 불러옵니다.
Chahk

대답에 루트가 필요하고 대부분의 Android 사용자에게는 비현실적 인 쉘 액세스가 필요하기 때문에 다운 투표하고 있습니다. 나머지 답변은 내 문제를 해결하지 못했습니다. 또한 Matthew Read는이 질문이 "완료된 거래"가 아니기 때문에 질문 잠금을 재고해야한다고 생각합니다. DNS는 매우 복잡하며 여기에 안드로이드 계정이없는 사람들로부터 더 합법적 인 답변이있을 것입니다. 저는 그 예입니다. FWIW 나는 10 + 평판을 가지고 여전히 질문에 대답 할 수 없습니다.
PJ Brunet

@PJBrunet 정확하게 말하면, 협회 보너스에서 1 명의 담당자와 100 명의 담당자가 있습니다. "보호 된"질문이란 무엇입니까?를 참조하십시오 . 상세 사항은. 질문에 관해서는 지금은 보호를 해제합니다.
onik

14

주소는 기본적으로 600 초 (10 분) 동안 캐시됩니다. 실패한 조회는 10 초 동안 캐시됩니다. 내가 본 모든 것에서 캐시를 플러시하기 위해 내장 된 것이 없습니다. 이것은 DNS 캐시를 저장하는 방식 때문에 Android에서 버그보고 된 것 같습니다 . 브라우저 캐시를 지우면 DNS에 닿지 않으며 "하드 리셋"은 단순히 시간 초과되기 때문에 지워집니다.

DNS 캐시를 지워야하는 근본적인 이유를 물을 수 있습니까? 우리가 더 큰 그림을 보지 않기 때문에 놓친 또 다른 솔루션이있을 수 있습니다.


2
OP에 대해서는 확실하지 않지만 홈 네트워크가 server.home.mydomain.com과 같은 주소를 제공하는 유스 케이스가 있지만 ISP가 * .mydomain.com을 분석합니다 ( "*"값에 대해서는 아직 맵핑되지 않았습니다). 전화가 3G / 4G 인 경우 www.mydomain.com으로 이동하여 캐시 시간이 초과 될 때까지 홈 네트워크에 액세스 할 수없는 경우가 있습니다.
TomG

JB에서 강제 10 분 캐싱이 수정 된 것 같습니다 . 이 커밋을 참조하십시오 . 이전 릴리스의 Java 캐시 동작에 의해 조절 될 수 networkaddress.cache.ttlnetworkaddress.cache.negative.ttlbuild.prop.
Sergey Vlasov 2016 년

Fwiw, 4.3에서도 일부 (아마도 다른) DNS 문제가 있습니다-wifi의 태블릿은 Linux 및 Windows 시스템 (wifi를 호스팅하는 네트워크의)이 해결할 수있는 이름의 IP 주소를 얻지 못할 수 있습니다.
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 에서 찾은 또 다른 가능한 솔루션 (직접 테스트하지 않음)은 진술하기 전에 user8522의 답변을 인용 한 것처럼 보입니다 .

마지막 옵션이지만 업데이트를 기다리지 않는 한 사용자에게 가장 집중적입니다. 사용자가 설정-> 응용 프로그램-> 네트워크 위치-> 데이터 지우기로 이동하도록합니다.

또 다른 짧은 하우투 는 DNS를 플러시하는 다른 쉬운 방법을 언급합니다 (다시 테스트하지는 않았습니다). 비행기 모드로 전환하십시오 (네트워크가 아닙니까?). 어리석게 들릴지 모르지만 비행기 모드로 들어갈 때 Android가와 비슷한 것을 수행한다고 생각할 수 /etc/init.d/networking stop있습니다. 부작용은 DNS 플러시입니다.


dtumaykin 은 아래의 의견에서 매우 쉬운 솔루션을 제공했습니다 . 비행기 모드로 전환하고 다시 전환하면 이미 가능할 수 있습니다 (물론 네트워크의 부작용으로 몇 초 동안 다운 될 수 있습니다). 일부 장치에서는 추가 설치가 필요 없으며 n00bs에서도 쉽게 수행 할 수 있습니다.

아무도 그 해결책 중 하나를 시도했다면 확인 (또는 반대)은 반드시 환영합니다 :)


3
쉘 명령 ndc resolver flushdefaultifndc resolver flushif wlan0; 그들은 루트가 필요합니다. NetworkManagementService.flushDefaultDnsCache () 메소드 도 있습니다. JB 이전에는 CHANGE_NETWORK_STATE가 필요했지만 CONNECTIVITY_INTERNAL에 잠겨있었습니다. 따라서 루트없이 DNS 캐시를 정리하는 해킹 방법이 있었지만 (build.prop 조정 후 Java 레벨 캐시를 종료) JB에서는 작동하지 않습니다.
Sergey Vlasov 2016 년

추가 정보 @SergeyVlasov에 감사드립니다! 언급 한 방법 중 하나가 내 대답의 마지막에 언급 된 두 가지 제안 된 솔루션에 의해 유발되는지 (또는 작동하지만 다른 이유로) 알고 있습니까?
Izzy

4
비행기 모드 온-오프가 나를 위해 일했습니다. 삼성 Galaxy S4 Mini 및 CM12.1.
dtumaykin

Matthew Read가 질문을 잠 갔기 때문에 대답 할 수 없습니다. 나를 위해 그를 때리십시오 :-) 하드 재부팅이 작동하지 않았습니다. 비행기 모드가 작동하지 않았습니다. 과거에는 브라우저 탭을 닫고 새 탭을 열어서 간단히 해결했습니다. "루트 없음"8.8.8.8 앱 (Google DNS)이 있지만 이미 지불 한 VPN 앱이 있으므로 VPN 액세스 권한을 부여 할 수 없습니다. 나를위한 해결책은 VPN의 "가상 위치"설정을 변경하거나 VPN을 중지하고 시작하는 것이 었습니다. VPN에 자체 DNS 캐시가 있다고 가정합니다.
PJ Brunet

@ PJBrunet 나는 모드를 때리지 않을 것입니다 (너무 위험합니다, 그는 내 계정을 닫을 수 있습니다). 그러나 10 개의 답을 얻는 것은 그리 어렵지 않습니다 (좋은 질문을하여 2 개의 투표를 받거나 1 개의 투표를받는 답을 쓰십시오). 그것으로, 여기로 돌아와서 답을 쓰세요 :)
Izzy

2

최신 버전의 Android에는 chrome : // net-internals / # dns 아래에 Chrome의 DNS 캐시를 지우는 옵션이 있습니다


나를 위해 작동하지 않았다, 여전히 하드 재부팅을해야했다
Cerveser

0

필자의 경우 도메인 이름을 하나만 비 웠습니다. 비행기 모드 전환, 하드 재부팅 수행 또는 chrome : // net-internals / # dns의 작업과 같은 제안이 작동하지 않았습니다. 대신 8.8.8.8에서 Google 이름 서버를 사용하도록 WiFi 설정을 일시적으로 변경했습니다.

내가 취한 단계는 다음과 같습니다.

  • 설정-> WiFi-> 현재 연결을 누르고 현재 IP 주소를 기록하십시오.
  • 현재 연결을 길게 클릭하십시오-> 네트워크 수정
  • "고급 설정"확인
  • "IP 설정"을 "정적"으로 변경
  • 첫 번째 단계에서 "IP 주소"를 현재 IP로 설정
  • "게이트웨이"를 IP 주소로 설정하되 0.1을 4 번째 숫자로 설정하십시오 (이것은 단지 추측 일뿐입니다. 다른 것을 알고 있다면 사용하십시오)
  • "DNS 1"을 8.8.8.8로 설정

이 단계 후에 ping콘솔에서 도메인 이름을 사용하면 올바른 IP 주소로 확인되어 이전 캐시 된 주소를 덮어 쓰는 것처럼 보였습니다. 브라우저에서 도메인을 방문하는 것으로 아마 같은 효과가 있습니다.

WiFi로 돌아가서 "IP 설정"을 "DHCP"로 다시 설정하면 올바른 도메인이 현재 IP 주소로 계속 확인됩니다.

Android 5.1.1을 실행하는 Sony Xperia Z3에 있습니다.


0

두 개의 WLAN 사이에서 많이 전환되어 잘못된 DNS를 사용하는 Adroid 5.1 Mobile에서 )

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.