DNSキャッシュをフラッシュするにはどうすればよいですか?


27

AndroidフォンのDNSキャッシュをクリアするにはどうすればよいですか?(Droid3、Gingerbread、特定に根ざした)

理想的には、端末エミュレータを介して実行するコマンドを探しています。

ipconfig /flushdns

Windowsマシン上。

これのLinuxバージョンは何ですか?


システムアプリ、サードパーティアプリ、またはアプリでこれを行う必要がありますか?
-onik

サードパーティ?ターミナルエミュレータ経由でサーバーにpingを実行するときに必要です。
スティーブロビンス

タイトルを更新して、CLIベースの回答が必要であることを反映してください。これはGoogleでのランキングであり、このタイトルを検索する人の99%にはルートまたはCLIスキルがありません。
PJブルーネット

回答:


11

典型的なLinuxシステムでは、キャッシュを実行するとクリアされます/etc/init.d/nscd restartが、少なくとも私のROMはnscdを使用してDNSをキャッシュしません。あなたはあなたがするかどうかを確認できますが、私はそれを疑います。ブラウザキャッシュをクリアするとDNSキャッシュもクリアされるという提案を見てきましたが、確実な方法の1つはハードリブート(シャットダウン、30秒間のバッテリーの取り外し、バッテリーの再接続とブート)を行うことです。


1
私のグーグルはすべて「ハード再起動」の提案を表示します。
チャク

答えにはルートが必要であり、および/またはほとんどのAndroidユーザーにとって非現実的なシェルアクセスを想定しているため、私はダウン投票しています。答えの残りは私の問題を解決しませんでした。また、これは絶対に「完了した取引」ではないため、Matthew Readは質問のロックを再検討すべきだと思います。DNSは非常に複雑であり、Androidアカウントを持たない人からの正当な回答がまだここにあります。私はその一例です。FWIW私は10以上の評判を持っていますが、それでも質問に答えることができませんでした。
PJブルーネット

@PJBrunet正確に言うと、アソシエーションボーナスの担当者は1人と100人です。このサイトでは獲得していないため、カウントされません。「保護された」質問とはをご覧ください詳細については。質問に関しては、今のところ保護を解除します。
onik

14

デフォルトでは、アドレスは600秒(10分)キャッシュされます。失敗した検索は10秒間キャッシュされます。私が見たすべてのものから、キャッシュをフラッシュするために組み込まれているものは何もありません。これは、DNSキャッシュを保存する方法が原因で、明らかにAndroidで報告されたバグです。ブラウザのキャッシュをクリアしてもDNSに影響はなく、「ハードリセット」は単にタイムアウトするため、DNSをクリアします。

DNSキャッシュをクリアする必要がある根本的な理由を尋ねることはできますか?おそらく、私たちは全体像を見ていないので見逃している別の解決策があるでしょう。


2
OPについてはわかりませんが、ホームネットワークがserver.home.mydomain.comのようなアドレスを提供するユースケースがありますが、私のISPは* .mydomain.comを解決します(「*」の値についてはこれはまだマッピングされていません)電話が3G / 4Gの場合はwww.mydomain.comにアクセスするため、キャッシュがタイムアウトするまでホームネットワークにアクセスできないことがあります。
-TomG

JBでは10分間の強制キャッシュが修正されているようです。このコミットを参照してください。以前のリリースのためのJavaキャッシュの動作をすることによって調整することができnetworkaddress.cache.ttl、およびnetworkaddress.cache.negative.ttlbuild.prop
セルゲイヴラソフ

Fwiw、4.3でもまだいくつかの(おそらく異なる)DNSの問題があります-wifi上のタブレットは、LinuxおよびWindowsマシン(wifiをホストするネットワーク上)が解決できる名前のIPアドレスを取得できない場合があります。
ジョンシェミッツ14

7

Androidでこれを行う唯一の方法は、ハードリブートを行うことです。必要なコマンドラインツールは通常利用できませんが、私のテストでは、ハードリブートが常に私のためのトリックを行いました(Galaxy Nexus、HTC Desire、さまざまなROM)。

これは苦痛ですが、10分のキャッシュタイムアウトよりも高速です。


これをどのように実行しますか?
スティーブロビンス

1
-電源ボタンを押したままにします-「電源オフ」を選択します-電話機を完全にシャットダウンします-バッテリーを取り外して30秒待ちます-バッテリーを戻します-電源を入れ直します 私の経験では、バッテリーを取り外す必要はありませんが、このステップを見逃すと機能しないと報告する人もいます。
マーティン

2
バッテリーを取り外すのは無意味です。再起動が機能します。そのための追加時間は、単に外部DNSキャッシュのタイムアウトを許可するだけだと思われます。
マティアスユリクス16

5

「とりわけDNSキャッシュをクリアする」ことを約束するInternet Boosterのようなアプリもあります。私は自分で試してみませんでした。さらに、それだけを行う方法はありません(「改善を適用する」「最適化」ボタンが1つだけです)。また、その効果はデバイス間(アプリの説明など)で異なる場合がありますが、再起動するよりも優れている場合があります。ところで:要件としてルートについて言及していませんが、それはまだ必要かもしれません。

Google Playにはいくつかの「類似のアプリ」がリストされていますが、それらのほとんどにはAirpush広告が含まれているか、過剰な許可が必要なため、ここでは名前を付けませんでした。


別の可能な解決策(自分でテストしていません)私がMadPCで見つけたのは、述べる前にuser8522の答えを引用しているようです:

最後のオプションですが、更新を待つだけの場合を除き、ユーザー自身に最も集中します。ユーザーに設定->アプリケーション->ネットワークの場所->データのクリアを選択させます

別の簡単なハウツーでは、DNSをフラッシュする別の簡単な方法に言及しています(これも自分でテストしていません):飛行機モードに切り替えて(おっと、ネットワークなしですか?)馬鹿げているように聞こえるかもしれませんが、機内モードに入ると/etc/init.d/networking stop、Androidがに似た動作をします。


非常に簡単な解決策は、以下のコメントでdtumaykinによって提供されました:飛行機モードに切り替えるだけですでに戻るかもしれません(もちろん、ネットワークが数秒間ダウンするという副作用があります;)うまくいかないかもしれませんが一部のデバイスでは、試してみる価値があります。追加のインストールは不要で、n00bsでも簡単に実行できます。

誰かがそれらの解決策のいずれかを試した場合、確認(またはその反対)を歓迎します:)


3
シェルコマンドndc resolver flushdefaultifndc resolver flushif wlan0; があります。ルートが必要です。NetworkManagementService.flushDefaultDnsCache()メソッドもあります。これは、JBの前にCHANGE_NETWORK_STATEだけを必要としましたが、CONNECTIVITY_INTERNALにロックダウンされました。そのため、Javaレベルのキャッシュを削除するためのbuild.propチューニングの後、rootなしでDNSキャッシュを消去するハック的な方法があったようですが、JBでは機能しません。
セルゲイヴラソフ

追加情報@SergeyVlasovをありがとう!あなたが言及した方法のいずれかが私の答えの最後に言及された2つの提案された解決策によってトリガーされるかどうかを知っていますか?
イジー

4
機内モードのオン/オフはうまくいきました。Samsung Galaxy S4 MiniおよびCM12.1。
-dtumaykin

Matthew Readが質問をロックしたため、答えられません。私のために彼を平手打ちしてください:-)ハードリブートは機能しませんでした。飛行機モードは機能しませんでした。「ロケーション」をクリアすると(回答どおり)、機能しませんでした。過去には、ブラウザのタブを閉じて新しいタブを開くことでこれを解決しました。「ルートなし」8.8.8.8アプリ(Google DNS)がありますが、支払い済みのVPNアプリが既にあるため、VPNアクセスを許可できません。私にとっての解決策は、VPNの「仮想ロケーション」設定を変更するか、VPNを停止および開始することでした。VPNに独自のDNSキャッシュがあると仮定します。
PJブルーネット

@PJBrunet私はmodを平手打ちしません(危険すぎるので、彼は私のアカウントを閉鎖するかもしれません;)、さらに、私の腕は海外に届くほど長くありません)。しかし、10人の担当者を獲得するのはそれほど難しくありません(2つの賛成票を得る良い質問をするか、1つの賛成票を得る答えを書きます)。それで、ここに戻って答えを書いてください:)共有してくれてありがとう!
イジー

2

Androidの最新バージョンでは、chrome:// net-internals /#dnsの下にChromeのDNSキャッシュをクリアするオプションがあります


私のために動作しませんでした、まだハードリブートしなければならなかった
Cerveser

0

私の場合、フラッシュする必要があるドメイン名が1つだけありました。機内モードの切り替え、ハードリブートの実行、chrome:// net-internals /#dnsのアクションなどの提案は機能しませんでした。代わりに、8.8.8.8でGoogleのネームサーバーを使用するようにWiFi設定を一時的に変更しました。

これらは私がとったステップです:

  • 設定-> WiFi->現在の接続をタップし、現在のIPアドレスをメモします
  • 現在の接続をロングクリック->ネットワークを変更
  • 「詳細設定」を確認してください
  • 「IP設定」を「静的」に変更します
  • 「IPアドレス」を最初のステップから現在のIPに設定します
  • 「ゲートウェイ」をIPアドレスに設定しますが、4番目の数字は.1です(これは単なる推測です。何か違うことがわかっている場合は、それを使用してください)
  • 「DNS 1」を8.8.8.8に設定します

これらの手順の後ping、コンソールでドメイン名を編集すると、正しいIPアドレスに解決され、古いキャッシュに上書きされたように見えました。おそらくブラウザでドメインにアクセスしても同じ効果があります。

WiFiに戻り、「IP設定」を「DHCP」に設定しても、正しいドメインは引き続き現在のIPアドレスに解決されました。

これは、Android 5.1.1を実行しているSony Xperia Z3にあります


0

2つのWLAN間で切り替えられるように、間違ったDNSを使用したAdroid 5.1 Mobileで; )

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.