「さっきまで見えていたサイトが表示されない」「サーバーを移転したのに古いページが出てくる」——そんなときによく効くのがDNSキャッシュのクリアです。この記事では、Windows・Mac・iPhone・Android、さらに主要ブラウザ別に、DNSキャッシュをクリアする具体的な手順をコマンド付きで解説します。クリアできたかの確認方法や、クリアしても改善しない場合の切り分け方まで、実際に手を動かして解決できるところまで一緒に見ていきましょう。
PCやスマホは、一度アクセスしたサイトのドメイン名とIPアドレスの対応関係を一時的に保存しています。これがDNSキャッシュです。サーバー移転後に古い情報が残っていたり、通信エラーの原因になっていたりする場合は、以下のようにクリアしてみてください。
- Windows:コマンドプロンプトで
ipconfig /flushdns - Mac:ターミナルで
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - iPhone・Android:直接消すコマンドはなく、機内モードのON/OFFや端末再起動が代替手段になります
DNSキャッシュとは?クリアが必要になる場面
DNSキャッシュとは、Webサイトのドメイン名(例:example.com)を、実際の接続先であるIPアドレスに変換した結果を、一定時間だけPCやスマホ・ブラウザ側に一時保存しておく仕組みです。同じサイトに毎回アクセスするたびに名前解決をやり直すのは非効率なので、キャッシュとして持っておくことで表示速度を上げています。いわば「一度調べた電話番号を電話帳にメモしておく」ようなイメージを持つとわかりやすいのではないでしょうか。
便利な仕組みですが、次のような場面ではこのキャッシュが逆に足かせになります。
| こんな症状のとき | DNSキャッシュが原因になりやすい理由 |
|---|---|
| サーバーを移転したのに古いサイトのまま | 古いIPアドレスの対応関係がキャッシュに残っている |
| 「このサイトにアクセスできません」と表示される | 存在しないドメインの情報(ネガティブキャッシュ)が残っている |
| ドメインを取得したばかりなのに表示されない | まだ情報が反映されておらず、古い(空の)情報がキャッシュされている |
いずれのケースも、キャッシュをクリアして最新の情報を取得し直すことで解決することが多いです。特にサーバー移転やドメイン移管の直後は、ブラウザを再起動しても直らないことがあり、「あれ、まだ古いページが出てくる」と戸惑う原因になりがちです。ここから先は、環境別に実際のクリア手順を見ていきます。
【Windows】DNSキャッシュのクリア方法
Windowsでは、コマンドプロンプト(またはPowerShell)から1行のコマンドを実行するだけでDNSキャッシュをクリアできます。Microsoft公式ドキュメントでも「DNSクライアントリゾルバーキャッシュの内容をフラッシュしてリセットする」機能として案内されているコマンドです。
コマンドプロンプトを使う方法
Windowsキーを押しながらRキーを押し、「ファイル名を指定して実行」に cmd と入力してEnterキーを押します。
黒い画面(コマンドプロンプト)が開いたら、次のコマンドを入力してEnterキーを押します。
「Windows IP 構成」に続けて「DNS リゾルバー キャッシュは正常にフラッシュされました。」と表示されれば完了です。
PowerShellを使う方法
PowerShellを使う場合は、管理者権限で起動したうえで次のコマンドを実行します。ipconfig /flushdnsと役割は同じですが、他のPowerShellスクリプトと組み合わせて自動化したい場合はこちらが便利です。
コマンドを実行しても見た目には何も変化しませんが、これで問題ありません。次に対象のサイトへアクセスしたタイミングで、DNSサーバーへ改めて問い合わせが行われ、最新のIPアドレスが取得されます。
そもそもDNSキャッシュではなく、パソコン全体の一時ファイルやブラウザのキャッシュをまとめて削除したい場合は、下記の記事も参考にしてみてください。
【Mac】DNSキャッシュのクリア方法
Macではターミナルからコマンドを実行してDNSキャッシュをクリアします。現行のmacOS(Sequoia・Sonoma等)を含め、10.10.4以降のバージョンであれば共通のコマンドが使えます。
ターミナルでのクリア手順
Launchpadの「その他」フォルダ、またはSpotlight検索(command+スペース)から「ターミナル」を起動します。
次のコマンドを入力してEnterキーを押します。管理者パスワードの入力を求められたら入力してください(画面には表示されませんが入力はされています)。
特にメッセージが表示されなければ正常に完了しています。macOS Sequoia・Sonomaでもこのコマンドで問題なくフラッシュできることが確認されています。
OS X Yosemite(10.10〜10.10.3)などごく一部の古いバージョンでは、代わりに sudo discoveryutil mdnsflushcache を使う必要があります。現行のMacを使っている方はほぼ気にする必要はありません。
コマンドの中のdscacheutil -flushcacheはキャッシュそのものを空にする処理、killall -HUP mDNSResponderは名前解決を担当するプロセス(mDNSResponder)を再起動する処理です。この2つをセミコロンで繋げて一度に実行することで、確実にキャッシュがリセットされます。
Ubuntu等のLinuxをお使いの場合は、ディストリビューションによって使うコマンドが異なります。systemd-resolvedを利用している環境(近年のUbuntu等)であれば、ターミナルで sudo systemd-resolve --flush-caches または sudo resolvectl flush-caches を実行することでクリアできます。
【スマホ】iPhone・AndroidでDNSキャッシュをクリアする方法
iPhone・Androidのどちらも、パソコンのようにDNSキャッシュだけをピンポイントで消すコマンドやボタンは用意されていません。そのため、以下の代替手段を組み合わせてキャッシュをリフレッシュします。
iPhoneの場合
iPhoneにはAndroidのようなDNS専用の設定画面もないため、まずは影響が小さい方法から順に試すのがおすすめです。
- コントロールセンターから機内モードを一度ONにし、10秒ほど待ってからOFFに戻す
- 「設定」→「Wi-Fi」で接続中のネットワーク名の横のマークをタップし、「このネットワーク設定を削除」を実行してから再接続する
- 端末そのものを再起動する
Safariで表示がおかしい場合は、ブラウザ側のキャッシュも合わせて削除すると効果的です。詳しい手順は以下の記事で解説しています。
Androidの場合
- 機内モードのON/OFFを試す
- 端末を再起動する
- Chromeを使っている場合は、アドレスバーに
chrome://net-internals/#dnsと入力してアクセスし、「Clear host cache(ホストキャッシュをクリア)」をタップする(PC版と同じ画面がAndroid版Chromeでも開けます)
Wi-Fi設定で「静的IP」に変更してDNSアドレスを手動入力する方法を紹介している記事もありますが、設定を誤るとネットに繋がらなくなることがあるため、通信の仕組みに慣れていない方にはおすすめしません。まずは機内モードのON/OFFと再起動を試してみてください。
なお、iPhone・Androidともに「ネットワーク設定のリセット」を行うとより確実にキャッシュがクリアされますが、この操作では登録済みのWi-Fiパスワードもすべて削除されてしまいます。手間が増えるだけでなく、他の端末のWi-Fi設定には影響しないとはいえ再入力の手間がかかるため、まずは機内モードのON/OFFや再起動を試し、それでも直らない場合の最終手段として考えておくとよいでしょう。
【ブラウザ別】DNSキャッシュのクリア方法
OS側のDNSキャッシュとは別に、ブラウザ自身が独自のDNSキャッシュを持っているケースがあります。OS側をクリアしても症状が変わらない場合は、使っているブラウザ側もあわせて確認してみてください。
| ブラウザ | クリア方法 |
|---|---|
| Google Chrome | アドレスバーに chrome://net-internals/#dns を入力してEnter →「Clear host cache」をクリック |
| Microsoft Edge | アドレスバーに edge://net-internals/#dns を入力してEnter →「Clear host cache」をクリック |
| Firefox | アドレスバーに about:networking#dns を入力してEnter →「Clear DNS Cache」をクリック |
| Safari | ブラウザ単体のDNSキャッシュ機能はなく、Macのシステム側キャッシュを共有しています。前述のターミナルコマンドでクリアしてください |
Chrome・Edgeはどちらも同じ仕組み(Chromiumエンジン)を使っているため、ほぼ同じ操作でクリアできます。ブラウザが独自にDNSキャッシュを持っているのは、OSに毎回問い合わせる手間を省いて表示速度を上げるためです。OS側をクリアしてもブラウザだけ古い情報を持ち続けているケースがあるので、症状が残るときはセットで確認してみてください。Edgeでのキャッシュ削除についてさらに詳しく知りたい方は、こちらの記事も参考にしてください。
DNSキャッシュがクリアされたか確認する方法
コマンドを実行しても画面に大きな変化がないので、「本当にクリアされたのか」が気になる方もいるのではないでしょうか。ここでは環境別の確認方法を紹介します。
Windowsでの確認方法
コマンドプロンプトで次のコマンドを実行すると、現在キャッシュされているDNS情報の一覧を確認できます。
クリア直後は登録件数が大きく減っている(もしくはhostsファイル由来の項目だけが残る)状態になります。Microsoft公式ドキュメントによると、このコマンドは「ローカルHostsファイルからプリロードされたエントリと、最近取得したリソースレコードの両方」を表示する仕組みです。その後、対象のサイトに再度アクセスすると、新しい情報がここに追加されていきます。
Macでの確認方法
MacにはWindowsのdisplaydnsに相当する「キャッシュの中身をそのまま表示する」公式コマンドは用意されていません。そのため、以下のような方法で間接的に確認するのが実務的です。
dig ドメイン名を実行し、返ってくるIPアドレスが最新の情報になっているか確認する- ブラウザで対象サイトを再読み込みし、表示内容が変わったかどうかで判断する
クリアしても改善しない場合の対処法
DNSキャッシュをクリアしても症状が変わらない場合、原因はDNSキャッシュ以外にある可能性があります。よくある原因を切り分けながら確認してみましょう。
| 考えられる原因 | 対処法 |
|---|---|
| ブラウザ自体のキャッシュが残っている | DNSキャッシュとブラウザキャッシュ(ページや画像の保存データ)は別物です。ブラウザ側のキャッシュ削除も試してください |
| hostsファイルに古い情報が書き込まれている | Windowsは C:\Windows\System32\drivers\etc\hosts、Macは /private/etc/hosts を開き、該当ドメインとIPアドレスの組み合わせが記載されていないか確認する |
| ルーター側にもDNSキャッシュが残っている | ルーターを一度再起動する。長期間再起動していない場合や機器自体が古い場合は買い替えも検討する |
| ISP(プロバイダ)側のDNSサーバーがまだ古い情報を保持している(DNS浸透待ち) | サーバー移転などの直後は、TTLの設定値によって数分〜最大24時間程度、反映に時間がかかることがあります。時間を置いて再度確認する |
hostsファイルは通常「#」から始まる説明文と数行のIPアドレスだけが書かれたシンプルなテキストファイルです。心当たりのない行に自分のドメインが登録されていたら、その行を削除(または先頭に#を付けて無効化)して保存すれば反映されます。編集にはテキストエディタで管理者権限が必要になる点も覚えておいてください。
ルーター自体が古く、動作が不安定になっているケースもあります。心当たりがある方は、買い替えの目安も含めてこちらの記事を確認してみてください。
DNSキャッシュクリアの注意点・よくある質問
クリアする前に知っておきたいこと
DNSキャッシュをクリアすると、クリア直後だけ名前解決のやり直しが発生するため、サイトの表示がほんの一瞬遅くなることがあります。エラーが起きるわけではないので、心配しすぎる必要はありません。
よくある質問
大きなデメリットはありません。クリア直後は一時的に名前解決のやり直しが発生するため、初回アクセスがわずかに遅くなる程度です。データが消えたり設定が壊れたりする心配はありません。
別物です。DNSキャッシュはドメイン名とIPアドレスの対応関係の一時保存、ブラウザキャッシュはページの画像やスタイル情報などの一時保存です。症状が改善しない場合は、両方をクリアしてみることをおすすめします。
はい。DNSキャッシュにはTTL(保持期限)が設定されており、この期限が切れると自動的に古い情報が破棄され、次回アクセス時に最新の情報が再取得されます。急いで解決したい場合は、手動でクリアしたほうが早く反映されます。
コマンド自体は同じように実行できますが、会社のネットワークでは社内DNSサーバー側にも別のキャッシュが存在する場合があります。手元の端末でクリアしても改善しないときは、社内のネットワーク管理者に確認してみてください。
はい、消えます。iPhone・Androidともに、ネットワーク設定のリセットを行うと登録済みのWi-Fiパスワードやモバイル通信の設定がすべて初期化されます。DNSキャッシュのクリアが目的であれば、まずは機内モードのON/OFFや端末の再起動を試し、それでも改善しない場合の最終手段として検討してください。
まとめ
- ✓DNSキャッシュは、サイトの表示崩れや接続エラーの原因になることがある一時保存データ
- ✓Windowsは
ipconfig /flushdns、Macはsudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderでクリアできる - ✓iPhone・Androidは直接消すコマンドがないため、機内モードのON/OFFや再起動で代用する
- ✓クリアしても改善しない場合は、ブラウザキャッシュ・hostsファイル・ルーター・DNS浸透待ちの4点を切り分けて確認する
買い物のついでに、価格の動きもチェックしませんか?
プライシーアプリなら、Amazon・楽天・Yahoo!ショッピングの価格を横断比較しながら、値下げやクーポンをプッシュ通知でお知らせします。
プライシーアプリを見てみる