同じドメインでも応答が変わる3つの理由
ジオルーティング
地域ごとに別のエッジサーバー
キャッシュ
TTLもキャッシュも個別
スプリットホライズン
意図的に異なる回答
Android で DNS をフラッシュする方法
火曜日の夜にサイトを新しいホストへ移し、DNS を更新し、チェッカーがリゾルバごとに緑に変わるのを見たのに——私の電話は木曜日まで古いサイトを読み込み続けました。デスクトップなら三十秒で済んだはずです。プロンプトを開き、キャッシュをフラッシュし、終わりです。電話はただそこに座り、得意げに、昨日のインターネットを読み込んでいました。その週、私は Android ユーザーがやがて皆学ぶことを学びました。フラッシュボタンは存在しない。隠されてもおらず、開発者メニューの奥に埋もれてもいません。ただ、ないのです。
それは、あなたが無力だということではありません。Android の DNS キャッシュはデスクトップのものとは違う働き方をし、それを実際に消すものは少し間接的だということです。やる価値のあるものもあります。民間伝承のものもあります。そしてその一つ——有名なあれ——は、何年も前にほぼ効かなくなりました。
押すボタンが存在しない理由
Windows や macOS では、一つのシステムサービスがほぼすべてのルックアップに答えるので、一つのコマンドでそのキャッシュを空にできます。Android は決して本当にその形にはなりませんでした。アプリは共有のシステムサービスを通じて名前を解決し、ブラウザはその上に独自のキャッシュを持ち、メーカーはその上に独自の調整を加えます。結果は、空にできる一つのタンクではなく、答えの小さな隠し場所が幾つもある形です。
答えがどれくらい残るかも、あなたの電話次第ではありません。すべてのレコードは TTL を持ちます。それはサイトの所有者が設定した寿命で、キャッシュはそれを守ることになっています。DNS の変更が隣の人には即座に見えて、あなたには古く見える静かな理由がこれです。あなたの電話が不運な瞬間に尋ね、まだ期限切れになっていない答えを持ち続けているのです。その連鎖全体を知りたい方には、DNS の伝播の仕組みの解説があります。
本当に役立つもの
機内モードを切り替える(時には)
機内モードを二十秒か三十秒オンにしてからオフにすると、電話はネットワーク接続を作り直し、プロバイダに再登録しなければなりません。多くのビルドでは、それが副次的にキャッシュされた答えを揺り落とします。他のビルドでは、それらに触れません。費用はゼロで、かかるのは半分ほどの分です。一度試す価値はありますが、失敗を驚きとして扱わないでください。正直に言うと、最近のバージョンでは、この手は仕組みというより希望です。
電話を再起動する
鈍器であり、確実に効くものです。完全な再起動は、システムがメモリに保持する揮発性のキャッシュを消し、ネットワークスタックをリセットし、ルックアップを新しく始めます。他のすべてを試してもサイトが古いアドレスを表示するなら、より賢い何かを試す前に電話を再起動してください。はい、これはテクニカルサポートで最も古い助言です。ここでは、それが正しいものでもあります。
自分の Wi-Fi なら、ルーターを再起動する
問題は電話ではないかもしれません。家庭用ルーターも答えをキャッシュし、あなたの電話はその古いコピーを受け取り続けます。ルーターを再起動すればそのキャッシュは消え、おまけに、家中のデバイスが古いサイトを見ているのか、あなたのものだけなのかが分かります。
Chrome 独自のキャッシュはどうですか?
Android の Chrome には、かつてこのための独自の内部ページがありました。今でも多くの古いガイドが、フラッシュボタンを押すために chrome://net-internals へ行くよう案内します。そのページは廃止されました。現在のビルドでは、そのアドレスは DNS ツールを提供しません。古い手順が回り続けるのは、インターネットが何も削除しないからです。ガイドがそこへ行けと言うなら、時代遅れなのはあなたの電話ではなく、そのガイドです。
Chrome の中にまだ生きているのは、そのサイトデータです。調子の悪いその一つのサイトのキャッシュされた画像とファイルを消すか、Android のアプリ設定から Chrome を強制停止して冷えた状態で起動させると、ブラウザ自身が保持する答えを揺り落とせることがあります。システムレベルのキャッシュは消えません——アプリのすることでは何も消せません——が、「サイトが更新されない」という不満の多くは、ネットワークではなくブラウザが原因だと判明します。これはそれを正直に切り分ける方法です。
プライベート DNS:フラッシュではなく、迂回
ほとんどの Android 電話のネットワーク設定の奥にはプライベート DNSがあります。あなたの選んだリゾルバへ、暗号化された接続でルックアップを送るものです。現在のリゾルバ——たいていプロバイダかルーターのもの——が古い答えを持っている場合、別のリゾルバに切り替えると、まったく別のキャッシュが得られます。新しいレコードをすでに持っているかもしれないキャッシュです。
それが何をして、何をしないかに注意してください。何も空にはしません。満杯の棚を空にする代わりに、その周りを回るのです。それでも有用です。切り替えた瞬間にサイトが正しく読み込めれば、故障は古いリゾルバのキャッシュにあり、治療は実はただの時間だと学べます。DNS サーバーを変更するガイドは、リゾルバの選び方とプライバシーのトレードオフを、あなたのルックアップを他の誰かに渡すという事実を含めて、正直に扱っています。
どのキャッシュが答えを持っているかを見極める
ほかの何かを再起動する前に、二分だけ使って、古い答えがどのキャッシュのものか絞り込みましょう。テストは退屈です。確実さは素敵です。
別のブラウザで試す
別のブラウザでサイトを開いてください——Firefox、Samsung Internet、すでにインストールされているもので構いません。新しいサイトが表示されれば、ネットワークも電話のシステムも正常で、古い答えを持っているのは最初のブラウザです。そのブラウザのサイトデータを消去するか、強制停止すれば完了です。
Wi-Fi とモバイルデータを比べる
Wi-Fi をオフにしてページを再読み込みしてください。モバイルデータで新しいサイトが現れれば、家庭側の経路に有罪判決です——ルーターのキャッシュか、その背後にあるプロバイダのリゾルバです。両方で古いサイトが出るなら、古い答えは電話そのものにあるか、まだインターネットを旅している途中であり、次のテストがどちらか決めます。
あなたに何の義理もないリゾルバに聞く
ドメインをオンライン伝播チェッカーにかけてください。いくつかの国のリゾルバがすでに新しいアドレスを示しているなら、世界は先へ進んでいて、同意していないのはあなたのキャッシュだけです。彼らも古いアドレスを示すなら、再起動はやめてください。変更そのものがまだ広がっている最中であり、電話の設定では届きません。
開発者向けガイドの中には、コンピュータ接続とデバッグツール経由で DNS の動作を変える方法に触れているものがあります。その道は実在しますが、アプリのテストのためのものであり、毎日頼りにしている電話にとっては大げさすぎます。古い答えに対してそれができることは何でも、再起動のほうがもっと簡単にやってのけます。これに触れるのは、その助言に出会ったとき、それが不足していた設定ページではなく、作業場の道具だと気づけるようにするためだけです。
嘘をつくアプリと、無実の電話
知っておくべき隠し場所がもう一つあります。個別のアプリです。行儀のよいアプリはシステムのリゾルバを使い、その答えを引き継ぎますが、一部のアプリは独自の解決を行ったり接続を固定したりして、システムが先へ進んだ後もずっとアドレスを使い続けます。古典的なパターンは、ブラウザが新しいサイトを表示する一方で、銀行や買い物のアプリが古いサイトを表示する——あるいはエラーを出す——というものです。そのアプリを強制停止するか、設定でそのキャッシュを消すことが、アプリごとの再起動に相当します。
電話を責める前にテストを変えてください。ブラウザ三つとアプリ五つがすべて古いサイトを表示するなら、古い答えはアプリより上流にあります。ちょうど一つのアプリだけが他のすべてと食い違うなら、そのアプリが犯人です。
誰も聞きたくない答え:TTL を待つ
ここでは率直に言わなければなりません。サイトが長い TTL——例えば一日——で DNS を変更し、あなたの電話やルーターのリゾルバが変更の直前に古い答えをキャッシュしていた場合、押せるものは何もないかもしれません。新しい答えを早く生み出すものは。DNS キャッシュをフラッシュするための手順はデスクトップのコマンドと、同じキャッシュの理屈を扱います。そして、ここではその理屈は負けません。キャッシュは、あなたの予定ではなく、レコードの予定で期限切れになります。
できることは、それが本当にあなたの状況であることを確かめることです。Wi-Fi ではなくモバイルデータでサイトを読み込んでください。プライベート DNS 経由で新しいリゾルバを試してください。独立したネットワークが新しいサイトを表示し、普段の経路だけが古いサイトを表示するなら、あなたはキャッシュが抜けていくのを見ており、それは終わります。どこでも誰も新しいサイトを見ないなら、変更そのものがまだ届いていないのであり、それもあなたの電話のせいではありません。
サイトを引っ越すのがあなたなら
ここまではすべて、DNS 変更を待つ側から書かれています。あなたが変更する側になることがあれば、訪問者の負担のほとんどを省いてあげられます。引っ越しの丸一日前に、変更するレコードの TTL を下げてください。以前は世界に「この答えを一日キープせよ」と伝えていたレコードが、今は「五分キープせよ」と伝えます。あらゆる場所のキャッシュは速く更新され、引っ越しの夜には新しいアドレスが数分で広がり、木曜日までだらだらせずに済みます——これは、読者が覚えているかもしれませんが、まさにこの記事の始まり方そのものです。
ほこりが落ち着いたら、TTL を再び上げてキャッシュに通常の仕事をさせ、切り替え後も少なくとも古い TTL の長さだけ古いホストを動かし続けてください。どこかの誰かの電話が、まだ古い答えを持っています。ノックしに来たとき、動くサイトに出迎えられる資格がそれにはあります。
ドメインの公開DNSアドレスを調べたい場合は、Domain IP Lookupツールをお試しください。
よくある質問
関連記事
TTLの実際の選び方
Windows・macOS・LinuxでDNSキャッシュをフラッシュする方法
階層ごとのDNSキャッシュのフラッシュ用コマンドリファレンス。各コマンドが何を消すのか、そしてフラッシュでは決して届かない階層も説明します。
「DNSサーバー」と呼ばれる3つの層
スタブリゾルバー
お使いのデバイス自体
再帰リゾルバー
ISP、ルーター、1.1.1.1
権威サーバー
ドメイン自身のDNS
DNS サーバーの変更方法(ルーターまたはデバイス)
あなたのデバイスは、何かを読み込む前にリゾルバーに尋ねます。ルーターを変えるべきかデバイス自体かを分かれば、変更は数分で済みます。
「伝播」の正体は、キャッシュの有効期限切れ
0分
変更を保存
0-5分
DNSホストが更新
TTLまで
古い回答がまだキャッシュ中
TTL後
全員に新しい回答が表示
どこにも何も送られず、各キャッシュがコピーの再利用をやめるだけ
DNS 伝播を解説:変更に時間がかかる理由
何も伝わってはいません。新しいレコードは配信元ではすでに有効で、各リゾルバのキャッシュがそれぞれの時計で期限切れになるだけです。流れ、本当の限界、自分で制御できることを説明します。