DNSキャッシュをクリアする方法は、単純にひとつではありません。
なぜなら、キャッシュが残る場所にはいくつか種類があるからです。
主に考えるべきなのは、パソコンやスマートフォンなどのOS側のDNSキャッシュ、ブラウザ側に残るDNS関連情報、そしてルーターやDNSサーバー側のキャッシュです。
そのため、パソコン側でDNSキャッシュを削除しても、ブラウザの中に古い情報が残っていたり、ネットワーク機器側の影響が続いていたりすると、すぐに変化が反映されないことがあります。
DNSキャッシュとは、ドメイン名とIPアドレスの対応関係を一時的に保存しておく仕組みです。
これによって、同じサイトに再度アクセスするときに毎回最初から問い合わせをせずに済むため、表示や接続が速くなります。
ただし、この仕組みは便利な反面、DNS設定を変更した直後には古い情報が残ってしまうことがあります。
たとえば、サイトを別サーバーへ移転した直後や、DNSレコードを更新した直後、SSLの設定を見直した直後などに、古い接続先を参照してしまうケースがあります。
ほかにも、自分の端末だけ古いサーバーにつながる、一部のブラウザだけ表示が違う、といった問題の原因になることがあります。
このようなときは、OSだけでなく、ブラウザ側の情報も含めて確認することが大切です。
Windowsでは、DNSキャッシュを削除する方法が比較的わかりやすく整理されています。
一般的には、Windowsのコマンド操作を使って、DNSクライアントキャッシュを削除します。
また、Windowsでは、ネットワーク設定全体を更新するために、IPアドレスの再取得を行う操作が紹介されることもあります。
ただし、ここは少し切り分けて理解したほうが正確です。
DNSキャッシュを削除する操作と、IPアドレスやDHCP情報を取り直す操作は、役割が異なります。
前者はDNSの記録を消すためのもので、後者はネットワーク接続そのものを更新するためのものです。
そのため、DNSキャッシュを消したいだけであれば、まずはDNSキャッシュ削除を中心に考え、ネットワーク全体の不調も疑われる場合に追加でIP情報の更新を行う、という順番で捉えるのが自然です。
macOSでもDNSキャッシュを削除することはできますが、Windowsのように一般向けに非常に明快な形で一本化された案内が広く知られているわけではありません。
そのため、Macでは、実務でよく使われる代表的な方法として紹介される手順を使って対応することが多いです。
ただし、ここで大事なのは、それを「誰にとっても唯一の公式標準手順」と断定しないことです。
MacのDNSキャッシュ削除は、実際によく使われる方法はあるものの、Windowsほどわかりやすく整理された印象ではありません。
また、Macでは、DNSキャッシュ削除だけでなく、ネットワーク設定の中に登録されているDNSサーバーの内容も確認しておくと安心です。
特に、VPN、セキュリティソフト、iCloud Private Relay、手動で設定されたカスタムDNSなどがあると、期待しているDNS経路と異なる動きになることがあります。
Chrome系ブラウザでは、OSとは別に、ブラウザ内部で保持しているホスト情報や接続情報が影響することがあります。
そのため、OS側のDNSキャッシュを消しても、Chromeでは古い接続先が残っているように見える場合があります。
実務では、Chrome内部のDNS関連情報をクリアする方法が使われることがあります。
ただし、この点は少し慎重に理解したほうがよい部分です。
実際に利用されている手順ではありますが、WindowsのDNSキャッシュ削除のように、誰にとっても明快な標準手順として扱うよりは、ブラウザ側で試せる補助的な対処として捉えるほうが正確です。
また、ChromeではDNSキャッシュだけでなく、ソケットや接続状態の情報を整理する追加操作が紹介されることもあります。
これはDNSキャッシュ削除そのものというより、接続の不整合を解消する補助的な意味合いが強いものです。
EdgeもChromium系ブラウザなので、考え方はChromeとほぼ同じです。
OS側とは別に、ブラウザ内部のDNS関連情報や接続状態が影響する場合があります。
そのため、Windows側のDNSキャッシュを削除しても、Edgeの中では古い情報が残っているように見えることがあります。
こうした場合、Edge内部のホスト情報や接続情報を整理する対処が試されることがあります。
ただし、これもChromeと同じく、OS側のDNSキャッシュ削除のような中心的手順というよりは、ブラウザ側で必要に応じて追加で試す対処と考えるのが適切です。
Firefoxは、ほかのブラウザと比べると、ブラウザ側のDNSキャッシュを意識しやすい構成になっています。
ブラウザ内部のDNS情報を確認したり、削除したりする方法が比較的わかりやすく用意されています。
Firefoxで特に重要なのは、DNS over HTTPSの設定です。
これが有効になっている場合、OSとは別の経路で名前解決が行われることがあります。
そのため、OSのDNSキャッシュを消したのにFirefoxだけ挙動が変わらない、あるいは他のブラウザでは直ったのにFirefoxだけ古い接続先を見ているように見える、ということが起こりえます。
このような場合は、OS側のDNSキャッシュだけでなく、Firefox内部のDNS情報やDNS over HTTPSの設定まで含めて確認する必要があります。
Safariでは、ChromeやFirefoxのように、Safari単体でわかりやすくDNSキャッシュ削除画面が案内されるケースはあまり多くありません。
そのため、SafariでDNS関連の問題があるときは、Safari単体の専用操作を探すよりも、まずmacOS側のDNSキャッシュを整理し、そのうえでSafariを完全終了して再起動し、必要であればWebサイトデータを見直す、という流れで対処することが多いです。
また、Safariを使っている環境では、VPNやPrivate Relay、DNS設定そのものの影響も見逃せません。
Safari単独の問題に見えても、実際にはOSやネットワーク全体の設定が影響していることがあります。
Linuxはディストリビューションやシステム構成によってかなり違いがあります。
そのため、Windowsのように「この方法で共通」とは言い切れません。
どの仕組みでDNS解決を行っているかによって、手順が変わります。
たとえば、systemd-resolved を使っている環境もあれば、nscd や dnsmasq など別の仕組みが使われていることもあります。
したがって、LinuxでDNSキャッシュを削除したい場合は、まず自分の環境でどのリゾルバが動いているのかを確認し、その環境に合った方法を選ぶことが重要です。
DNSキャッシュを削除しても問題が解決しない場合、原因がDNS以外にあることも少なくありません。
たとえば、DNSの変更がインターネット全体にまだ十分浸透していない場合や、ブラウザの通常キャッシュが残っている場合、CDNのキャッシュが残っている場合などがあります。
また、ルーター側に古い情報が残っていたり、VPNやProxyが別のDNSを使っていたり、セキュリティソフトが名前解決に関与していたりすることもあります。
FirefoxのDNS over HTTPSや、MacのPrivate Relayのように、OS標準とは別経路の名前解決が使われていると、OS側のキャッシュを消しただけでは変化が反映されないこともあります。
このため、DNSキャッシュ削除は有効な対処のひとつではありますが、それだけで必ず解決するとは限りません。
実務的には、まずOS側のDNSキャッシュを整理し、そのあとブラウザを完全終了して再起動し、それでも直らなければブラウザ内部のDNS関連情報や接続状態を確認する、という順番がわかりやすいです。
さらに改善しない場合は、DNS設定そのもの、VPNやProxyの有無、Private RelayやDNS over HTTPSの設定、ルーター側の影響などを順に見ていくと切り分けしやすくなります。
DNSキャッシュをクリアする方法は、単にひとつの操作で完結するものではありません。
OS、ブラウザ、ネットワークのどこに古い情報が残っているかによって、必要な対処が変わります。
特に押さえておきたいのは、Windowsでは比較的明快な方法があり、Firefoxもブラウザ側のDNS情報を扱いやすい一方で、MacやChrome、Edgeは「実務でよく使われる方法」を慎重に案内するほうが正確だという点です。
つまり、DNSキャッシュ削除を考えるときは、単に「キャッシュを消す」というよりも、どの層に古い情報が残っているのかを切り分けながら対処することが大切です。
以上、DNSキャッシュをクリアする方法についてでした。
最後までお読みいただき、ありがとうございました。