DNSキャッシュクリアの方法とコマンド:Windows・Mac・Linux・Chrome
ポイント
DNSキャッシュのクリア(フラッシュ)とは、端末が過去に調べたドメイン名の回答を削除し、次のアクセスで改めてDNSに問い合わせさせる操作です。Windowsはコマンド プロンプトで ipconfig /flushdns を実行します。macOSはターミナルで sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder を実行します。systemd-resolvedを使うLinux(Ubuntu、Fedora)では sudo resolvectl flush-caches を実行します。Chromeでは chrome://net-internals/#dns を開いて「Clear host cache」をクリックします。安全な操作で、影響するのはご自分の端末だけです。
今すぐ確認

読み始める
- DNSキャッシュクリアのコマンド早見表
- DNSキャッシュの仕組み:TTL・キャッシュレベル・有効期限
- DNSフラッシュが必要なのはどんなとき?
- Windows 10・Windows 11でDNSキャッシュをクリアする方法
- MacでDNSキャッシュをクリアする方法(El Capitan以降の全バージョン)
- Linux(Ubuntu・Fedora・Debian)でDNSキャッシュをクリアする方法
- Google ChromeでDNSキャッシュをクリアする方法
- Firefox・Edge・SafariなどでDNSキャッシュをクリアする方法
- Android・iPhoneでDNSキャッシュをクリアする方法
- ルーターのDNSキャッシュをクリアする方法
- DNSキャッシュがクリアされたことを確認する方法
- DNSフラッシュで問題が解決しない場合の対処法
- よくある質問
DNSキャッシュクリアのコマンド早見表
DNSキャッシュをクリアするには、お使いのシステムに合ったコマンドを1つ実行するだけです。 クリア(フラッシュ)すると、端末が最近調べたドメイン名の回答が削除され、次のアクセスで改めてDNSに問い合わせて最新のアドレスを取得します。
ドメインの現在のレコードとTTLを確認
システム別のコマンドは次のとおりです。
| 対象 | コマンドまたは操作 |
|---|---|
| Windows 10・11 | ipconfig /flushdns(コマンド プロンプト)または Clear-DnsClientCache(PowerShell) |
| macOS | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder |
| systemd-resolvedを使うLinux(Ubuntu、Fedora 33以降) | sudo resolvectl flush-caches |
| Chrome・Edge・Brave | chrome://net-internals/#dns(または edge://、brave://)→ Clear host cache |
| Firefox | about:networking#dns → DNS キャッシュを消去(英語版では Clear DNS Cache) |
| Android・iPhone | 機内モードを10秒オンにしてからオフにする(または再起動) |
| ルーター | 再起動する |
なぜクリアが必要なのでしょうか。DNSレコードは変わるからです。サイトが新しいサーバーやホスティング会社に移転しても、端末に保存された回答は古いアドレスを指したままになります。ローカルキャッシュからの回答はほぼ一瞬で返りますが、リゾルバーへ問い合わせる場合は、私たちの自宅回線からGoogleの8.8.8.8まで約30msかかりました(2026年10月26日測定)。回答が古くなるまでは、キャッシュは役に立つ仕組みです。
DNSはブラウザ、OS、そして多くの場合ルーターと、複数の場所にキャッシュされます。そのため、しつこく古い回答が残るときは、複数の階層でクリアが必要になることがあります。
DNSキャッシュの仕組み:TTL・キャッシュレベル・有効期限
すべてのDNSレコードには、ドメインの所有者が設定するTTL(Time to Live)があります。キャッシュがそのレコードを保持してよい秒数です。値は通常300秒(5分)から86,400秒(24時間)の範囲で、たとえばCloudflareの既定値は300秒です。
各階層はそれぞれ独自のコピーを保持しています。
- ブラウザ — Chromeは通常、内蔵のDNSクライアントを使います(Windows、macOS、Linux、ChromeOS、Androidで既定で有効)。各回答をレコードのTTLの間(最低60秒)保持し、「存在しない」という回答はゾーンのネガティブTTLの間保持します。OSのリゾルバーにフォールバックした場合は回答を60秒保持し、失敗した問い合わせは保持しません(Chromiumのソースコード)。Firefoxは最大3,200件の名前を保持し、OSからTTLが得られない場合は60秒を使います(Firefoxの設定項目)。
- OS — WindowsのDNSクライアント(DNS Client)サービス、macOSのmDNSResponder、Linuxのsystemd-resolvedは、TTLが切れるまで回答を保持します。一部のLinux(既定構成のDebianや最小構成のインストール)はまったくキャッシュしません。
- ルーター — 多くの家庭用ルーターはdnsmasqで動いており、既定で150件の名前をキャッシュします(dnsmasqのマニュアル)。OpenWrtではこれが1,000件に増やされています。
- DNSプロバイダー — ISPやパブリックリゾルバーのキャッシュは、それを使う全員が共有しています。ISPのキャッシュはクリアできませんが、Google Public DNSとCloudflareでは、誰でも特定の名前をキャッシュから削除(パージ)できます(Google、Cloudflare)。それ以外の場合は、TTLが切れるのを待つか、リゾルバーを切り替えてください。
DNSキャッシュをクリアするとブラウザとOSの階層が消去され、ルーターを再起動するとルーターの階層が消去されます。プロバイダー側の古いキャッシュを避けるには、Cloudflareの1.1.1.1やGoogleの8.8.8.8などのパブリックリゾルバーに切り替えます。各レコードの現在のTTLはDNS確認で確認できます。
DNSフラッシュが必要なのはどんなとき?
キャッシュされた回答はシステムが自動的に期限切れにするため、定期的にクリアする必要はありません。次のような場合にクリアしてください。
- 自分だけサイトが表示されない(他の人は見られる) — DNS_PROBE_FINISHED_NXDOMAINやDNSサーバーが応答しないなどのエラーが出る
- サイトが新しいサーバーやホスティング会社に移転した後も、古いページが表示される
- DNSサーバーを変更した — たとえばGoogle DNS(8.8.8.8)やCloudflare(1.1.1.1)に切り替えて、すぐに反映させたい
- サイトの移転後に証明書の警告が出る — 保存されたアドレスが、旧サーバーとその古い証明書を指したままになっている
- DNSレコード(A、CNAME、MX)を編集し、古いTTLが切れる前に変更を確認したい。世界中のリゾルバーに反映されたかはDNS伝播チェッカーで確認できます
- 回答の改ざんや乗っ取り(DNSキャッシュポイズニングなど)が疑われる — クリアすれば、その回答がキャッシュから消えます
Windows 10・Windows 11でDNSキャッシュをクリアする方法
WindowsでDNSキャッシュをクリアする方法は、コマンド プロンプトとPowerShellの2つです。どちらもWindowsのDNSクライアントサービスのキャッシュを消去します。ipconfig /flushdns はWindows Serverや古いバージョンを含め、すべてのバージョンで使えます。
方法1:コマンド プロンプトを使う
- 手順1 —
Windows + Sを押してcmdと入力し、コマンド プロンプトを開きます(現在のWindows 10・11では通常のウィンドウで十分です。管理者特権が必要だと表示された場合は、右クリックして管理者として実行を選びます) - 手順2 —
ipconfig /flushdnsと入力してEnterキーを押します - 手順3 — 「DNSリゾルバーキャッシュは正常にフラッシュされました。」と表示されれば完了です(英語版Windowsでは "Successfully flushed the DNS Resolver Cache.")
これだけで完了です。WindowsのDNSキャッシュが空になり、次にウェブサイトにアクセスするとき、Windowsは設定されたDNSサーバーに最新のIPアドレスを問い合わせます。ipconfigコマンドはWindows標準のネットワークユーティリティで、/flushdns はその数あるオプションの1つです。
方法2:PowerShellを使う
PowerShellには、同じ処理に加えて追加のオプションも使える専用のDNSコマンドレットがあります。
# Flush the DNS cache
Clear-DnsClientCache
# Verify the cache is empty (should return very few entries)
Get-DnsClientCache
# Count cached entries
Get-DnsClientCache | Measure-Object | Select-Object CountClear-DnsClientCache は ipconfig /flushdns とまったく同じ処理を行います。PowerShellの利点は Get-DnsClientCache コマンドレットで、キャッシュされたエントリを表形式で表示するため、ipconfig /displaydns よりも絞り込みやエクスポートが簡単です。
MacでDNSキャッシュをクリアする方法(El Capitan以降の全バージョン)
MacではターミナルからDNSキャッシュをクリアします。El Capitan(10.11)から現在のリリースまで、macOS 26 Tahoeを含むすべてのバージョンで同じコマンドが使えます。
| macOSのバージョン | DNSキャッシュをクリアするコマンド |
|---|---|
| Big Sur(11)以降(Tahoe(26)を含む) | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder |
| Catalina(10.15)〜El Capitan(10.11) | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder |
| Yosemite(10.10.4〜10.10.5) | sudo killall -HUP mDNSResponder |
| Yosemite(10.10〜10.10.3) | sudo discoveryutil mdnsflushcache |
| Lion(10.7)〜Mavericks(10.9) | sudo killall -HUP mDNSResponder |
- 手順1 —
Command + SpaceでSpotlightを開き、ターミナルと入力してEnterキーを押します - 手順2 —
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderを貼り付けてEnterキーを押します - 手順3 — 求められたらMacのパスワードを入力します。ターミナルには何も表示されませんが、キャッシュは消去されています
dscacheutil -flushcache はディレクトリサービスのキャッシュを消去し、killall -HUP mDNSResponder はmacOSのDNSリゾルバーであるmDNSResponderに、キャッシュした回答を破棄するよう指示します(プロセスを再起動するわけではありません)。Safariは独自のDNSキャッシュを持たないため、この操作でSafariもカバーされます。古いアドレスへの接続が残らないよう、Safariも終了(⌘Q)してください。
Linux(Ubuntu・Fedora・Debian)でDNSキャッシュをクリアする方法
LinuxでDNSがキャッシュされるのは、キャッシュ機能を持つサービスが動いている場合だけです。UbuntuとFedora(33以降)はsystemd-resolvedを使います。Debianや最小構成のインストールではキャッシュがまったくないことも多く、代わりにdnsmasqやnscdを使うシステムもあります。
- 手順1 — ターミナルを開きます(Ubuntuでは
Ctrl + Alt + T) - 手順2 — 使っているDNSサービスに合ったコマンドを実行します(下記参照)
- 手順3 — 結果を確認します。
resolvectl statisticsで現在のキャッシュサイズ(Current Cache Size)が0になっていれば成功です
# Ubuntu, Fedora 33+ and other systemd-resolved systems
sudo resolvectl flush-caches
# Check: "Current Cache Size" should be 0
resolvectl statistics
# Older systemd (before version 239, e.g. Ubuntu 18.04)
sudo systemd-resolve --flush-caches
# dnsmasq
sudo systemctl restart dnsmasq
# nscd
sudo systemctl restart nscdどのサービスを使っているか分からない場合は、resolvectl status を実行します。DNSサーバーの一覧が表示されれば、systemd-resolvedを使っています。コマンドが見つからない場合や、resolveサービスに接続できないと表示される場合は、systemctl status dnsmasq または systemctl status nscd を確認してください。
Google ChromeでDNSキャッシュをクリアする方法
ChromeはOSとは別に独自のDNSキャッシュを持っているため(前述のキャッシュの階層を参照)、両方をクリアしてください。手順は次のとおりです。
- 手順1 — Chromeで新しいタブを開きます
- 手順2 — アドレスバーに
chrome://net-internals/#dnsと入力してEnterキーを押します - 手順3 — Clear host cache ボタンをクリックします(このページは日本語版のChromeでも英語で表示されます)
- 手順4 — 続けて
chrome://net-internals/#socketsを開き、Flush socket pools をクリックします。古いIPアドレスを使い続けている可能性のあるTCP接続が閉じられます
完全にリフレッシュするには、OSとChromeの両方をクリアしてください。Chromeはブラウジングしながらキャッシュを作り直すため、クリアしても速度に長期的な影響はありません。
Firefox・Edge・SafariなどでDNSキャッシュをクリアする方法
Chromium系のブラウザはどれも、それぞれのプレフィックスで同じページを持っています。Firefoxには専用のページがあり、SafariはMacのキャッシュを使います。
| ブラウザ | DNSキャッシュのクリア方法 |
|---|---|
| Microsoft Edge | edge://net-internals/#dns → Clear host cache、続けて edge://net-internals/#sockets → Flush socket pools |
| Firefox | about:networking#dns → DNS キャッシュを消去(英語版では Clear DNS Cache)。Firefoxは最大3,200件の名前を保持し、OSからTTLが得られない場合は60秒保持します |
| Safari(Mac) | 独自のDNSキャッシュはありません。前述の手順でmacOSのキャッシュをクリアしてください。[開発]→[キャッシュを空にする]で消去されるのはWebページのキャッシュで、DNSではありません |
| Brave・Opera・Vivaldi | brave://net-internals/#dns、opera://net-internals/#dns、vivaldi://net-internals/#dns → Clear host cache |
Android・iPhoneでDNSキャッシュをクリアする方法
スマホにはDNSキャッシュをクリアするコマンドがありません。接続し直せば同じ効果が得られます。
- 機内モードをオンにし、10秒待ってからオフにします。スマホがネットワーク接続とそのDNSキャッシュを作り直します。
- それでも古いまま? スマホを再起動します。Androidでは 設定 → ネットワークとインターネット → プライベート DNS も確認してください(Samsungでは 接続 → その他の接続設定)。ここにプロバイダーのホスト名が設定されていると、Wi-FiのDNS設定に関係なく、すべての問い合わせにそのプロバイダーが応答します。
- Wi-Fi接続時はルーターのキャッシュも使われます。特定のサイトがどの端末でも表示されない場合は、ルーターも再起動してください。
ルーターのDNSキャッシュをクリアする方法
家庭用ルーターも、ネットワーク上のすべての端末のDNS応答をキャッシュしています。パソコンとブラウザのDNSキャッシュをクリアしても古いレコードが残る場合は、ルーターのキャッシュが原因かもしれません。
ほとんどの家庭用ルーターには、DNSキャッシュをクリアする専用の機能がありません。ルーターのDNSキャッシュを消すいちばん簡単な方法は再起動です。
- 手順1 — ルーターの電源ケーブルを抜きます(リセットボタンは押さないでください。ルーターが工場出荷時の状態に初期化されます)
- 手順2 — 完全に電源が落ちるよう、30秒ほど待ちます
- 手順3 — 電源ケーブルを差し直し、ルーターが完全に起動するまで1〜2分待ちます
- 手順4 — 必要に応じてWi-Fiに再接続し、問題が解決したか確認します
OpenWrtなどdnsmasqで動くルーターでは、SSHで /etc/init.d/dnsmasq restart を実行すれば、再起動せずにキャッシュをクリアできます。
DNSのトラブルが続く場合は、ルーターのDNSをCloudflare(1.1.1.1)やGoogle(8.8.8.8)などのパブリックリゾルバーに設定すると、すべての端末がそれを使うようになります。手順は遅いDNS検索の修正ガイドをご覧ください。
DNSキャッシュがクリアされたことを確認する方法
クリアしたら、キャッシュが空になったか、またはシステムが新しいアドレスを解決するようになったかを確認します。
# Windows: lists what's cached (only a few entries right after a flush)
ipconfig /displaydns
# Windows PowerShell: count cached entries
(Get-DnsClientCache).Count
# macOS: the address your Mac resolves now
dscacheutil -q host -a name example.com
# Linux (systemd-resolved): "Current Cache Size" should be 0
resolvectl statisticsそのうえで、表示できなかったサイトを開いてみてください。自分の端末が受け取る回答と、実際のDNSの内容を比べるには、DNS確認でドメインを調べます。
原因がキャッシュにあるのか、レコード自体にあるのかを見分けるには、DNS伝播チェッカーでドメインを調べます。28か国の34のリゾルバーに同時に問い合わせます。どのリゾルバーも新しいアドレスを返しているのに自分だけ違う場合は、自分のキャッシュかリゾルバーが遅れています。
DNSフラッシュで問題が解決しない場合の対処法
DNSキャッシュのクリアで直るのは古い回答だけで、すべてのDNSトラブルが古い回答によるものではありません。端末、ブラウザ、ルーターのキャッシュをクリアしても問題が残る場合は、次を試してください。
- DNSサーバーを切り替える — ISPのリゾルバーが停止しているか、古いレコードを返している可能性があります。Cloudflare(1.1.1.1)かGoogle(8.8.8.8)を試してください。手順は遅いDNS検索の修正ガイドにあります
- サイト自体が落ちていないか確認する — サーバーダウンチェックは11か所からサイトを開きます。どこからも開けなければ、原因はキャッシュでもリゾルバーでもありません
- レコードを確認する — DNS確認でドメインのA・AAAA・CNAMEレコードを調べます。誤ったIPを指している場合、修正できるのはドメインの所有者だけです
- VPNやプロキシを切断する — VPNはDNSを自社のサーバー経由で送り、そのサーバーも独自のキャッシュを持っています
- hostsファイルを確認する — Windowsは
C:\Windows\System32\drivers\etc\hosts、macOSとLinuxは/etc/hostsです。該当するドメインのエントリを削除してください - 最近の変更なら時間をおく — 各リゾルバーが変更後のレコードを取り込むのは、手元にある古いコピーのTTLが切れたときです。TTLが短ければ数分、長ければ最大1〜2日かかります
DNSレコードを今すぐ確認する
ドメイン自身のネームサーバーからすべてのレコードを直接取得し、GoogleとCloudflareにキャッシュされた内容と並べて、それぞれの残りTTLとともに表示します。
出典
- ipconfig, Microsoft
- host_resolver_manager_job.cc (Chrome's DNS cache times), Chromium
- dnsmasq manual (default cache size), dnsmasq



