AndroidフォンのDNSキャッシュをクリアするにはどうすればよいですか?(Droid3、Gingerbread、特定に根ざした)
理想的には、端末エミュレータを介して実行するコマンドを探しています。
ipconfig /flushdns
Windowsマシン上。
これのLinuxバージョンは何ですか?
AndroidフォンのDNSキャッシュをクリアするにはどうすればよいですか?(Droid3、Gingerbread、特定に根ざした)
理想的には、端末エミュレータを介して実行するコマンドを探しています。
ipconfig /flushdns
Windowsマシン上。
これのLinuxバージョンは何ですか?
回答:
典型的なLinuxシステムでは、キャッシュを実行するとクリアされます/etc/init.d/nscd restart
が、少なくとも私のROMはnscdを使用してDNSをキャッシュしません。あなたはあなたがするかどうかを確認できますが、私はそれを疑います。ブラウザキャッシュをクリアするとDNSキャッシュもクリアされるという提案を見てきましたが、確実な方法の1つはハードリブート(シャットダウン、30秒間のバッテリーの取り外し、バッテリーの再接続とブート)を行うことです。
デフォルトでは、アドレスは600秒(10分)キャッシュされます。失敗した検索は10秒間キャッシュされます。私が見たすべてのものから、キャッシュをフラッシュするために組み込まれているものは何もありません。これは、DNSキャッシュを保存する方法が原因で、明らかにAndroidで報告されたバグです。ブラウザのキャッシュをクリアしてもDNSに影響はなく、「ハードリセット」は単にタイムアウトするため、DNSをクリアします。
DNSキャッシュをクリアする必要がある根本的な理由を尋ねることはできますか?おそらく、私たちは全体像を見ていないので見逃している別の解決策があるでしょう。
Androidでこれを行う唯一の方法は、ハードリブートを行うことです。必要なコマンドラインツールは通常利用できませんが、私のテストでは、ハードリブートが常に私のためのトリックを行いました(Galaxy Nexus、HTC Desire、さまざまなROM)。
これは苦痛ですが、10分のキャッシュタイムアウトよりも高速です。
「とりわけDNSキャッシュをクリアする」ことを約束するInternet Boosterのようなアプリもあります。私は自分で試してみませんでした。さらに、それだけを行う方法はありません(「改善を適用する」「最適化」ボタンが1つだけです)。また、その効果はデバイス間(アプリの説明など)で異なる場合がありますが、再起動するよりも優れている場合があります。ところで:要件としてルートについて言及していませんが、それはまだ必要かもしれません。
Google Playにはいくつかの「類似のアプリ」がリストされていますが、それらのほとんどにはAirpush広告が含まれているか、過剰な許可が必要なため、ここでは名前を付けませんでした。
別の可能な解決策(自分でテストしていません)私がMadPCで見つけたのは、述べる前にuser8522の答えを引用しているようです:
最後のオプションですが、更新を待つだけの場合を除き、ユーザー自身に最も集中します。ユーザーに設定->アプリケーション->ネットワークの場所->データのクリアを選択させます
別の簡単なハウツーでは、DNSをフラッシュする別の簡単な方法に言及しています(これも自分でテストしていません):飛行機モードに切り替えて(おっと、ネットワークなしですか?)馬鹿げているように聞こえるかもしれませんが、機内モードに入ると/etc/init.d/networking stop
、Androidがに似た動作をします。
非常に簡単な解決策は、以下のコメントでdtumaykinによって提供されました:飛行機モードに切り替えるだけですでに戻るかもしれません(もちろん、ネットワークが数秒間ダウンするという副作用があります;)うまくいかないかもしれませんが一部のデバイスでは、試してみる価値があります。追加のインストールは不要で、n00bsでも簡単に実行できます。
誰かがそれらの解決策のいずれかを試した場合、確認(またはその反対)を歓迎します:)
ndc resolver flushdefaultif
とndc resolver flushif wlan0
; があります。ルートが必要です。NetworkManagementService.flushDefaultDnsCache()メソッドもあります。これは、JBの前にCHANGE_NETWORK_STATEだけを必要としましたが、CONNECTIVITY_INTERNALにロックダウンされました。そのため、Javaレベルのキャッシュを削除するためのbuild.propチューニングの後、rootなしでDNSキャッシュを消去するハック的な方法があったようですが、JBでは機能しません。
私の場合、フラッシュする必要があるドメイン名が1つだけありました。機内モードの切り替え、ハードリブートの実行、chrome:// net-internals /#dnsのアクションなどの提案は機能しませんでした。代わりに、8.8.8.8でGoogleのネームサーバーを使用するようにWiFi設定を一時的に変更しました。
これらは私がとったステップです:
これらの手順の後ping
、コンソールでドメイン名を編集すると、正しいIPアドレスに解決され、古いキャッシュに上書きされたように見えました。おそらくブラウザでドメインにアクセスしても同じ効果があります。
WiFiに戻り、「IP設定」を「DHCP」に設定しても、正しいドメインは引き続き現在のIPアドレスに解決されました。
これは、Android 5.1.1を実行しているSony Xperia Z3にあります
2つのWLAN間で切り替えられるように、間違ったDNSを使用したAdroid 5.1 Mobileで; )