Windows、Mac、Linux、主要ブラウザでDNSキャッシュをフラッシュ(クリア)する手順をイメージした、ネットワーク管理の解説図

DNSキャッシュをクリアする方法(Windows / Mac / Linux / ブラウザ)


著者: Ahona Rudra
翻訳: 古川 綾乃

この記事はPowerDMARCのブログ記事 How to Flush DNS on Windows, Mac, Linux & Browsersの翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。


主なポイント

  1. Windowsでは、コマンドプロンプトを開き、ipconfig /flushdnsを実行してDNSキャッシュをクリアします。
  2. Macでは、ターミナルを開き、macOSのバージョンに応じたフラッシュコマンドを入力します。
  3. Linuxでは、ターミナルを開き、ディストリビューションで使用されているDNSサービスを再起動してキャッシュをクリアします。
  4. Chromeでは、chrome://net-internals/#dnsにアクセスし、「Clear host cache」をクリックしてDNSエントリを削除します。
  5. DNSをフラッシュすると、接続問題の解消、古いレコードの更新、DNSスプーフィング対策、404エラーの解消、プライバシー保護、システムセキュリティの向上に役立ちます。

本記事では、DNSをフラッシュする方法と、どのような場面で実行すべきかを解説します。
DNSのフラッシュとは、デバイスに保存されているDNSキャッシュを削除し、DNSレコードを最新の状態に更新する操作のことです。

これにより、ネットワークのパフォーマンスや安定性が向上し、ドメイン名が正しいIPアドレスに解決されるようになります。
このガイドでは、Windows、Mac、Linux、さらにGoogle ChromeなどのWebブラウザを含むさまざまなプラットフォームでDNSをフラッシュする方法を解説します。

DNSキャッシュとは何ですか?

DNSキャッシュとは、デバイス上にローカルで保存される一時的なデータベースで、最近行われたDNS(Domain Name System)のルックアップ結果を保存しています。
これらのデータには、ドメイン名、対応するIPアドレス、そしてシステムがWebサイトをより素早く見つけるためのDNS関連情報が含まれます。
Webサイトにアクセスすると、コンピュータはDNS解決(ドメイン名をIPアドレスに変換する処理)を実行します。

これは、ドメイン名をIPアドレスに変換し、ブラウザがサーバーに接続できるようにする仕組みです。
また、将来のアクセスを高速化するため、システムはDNSルックアップの結果をローカルに保存します。
毎回このルックアップを実行する代わりに、システムは結果をDNSキャッシュに保存し、次回のアクセスを高速化します。
DNSキャッシュにはTTL(Time To Live)と呼ばれる有効期限の仕組みがあります。

これは、レコードが期限切れになるまでどのくらい保存されるかを示す値です。
TTLの有効期間中は、システムはDNSサーバーに再度問い合わせる代わりに、キャッシュからDNSデータを取得します。
TTLが期限切れになると、そのエントリは削除され、システムは新しいDNSルックアップを実行します。

DNSキャッシュは自動的に管理され、パフォーマンス向上に役立ちます。
しかし、WebサイトのIPアドレスやDNS設定が変更された場合など、キャッシュのデータが古くなると、サイトが読み込まれない、または誤ったページが表示されるといった問題が発生することがあります。
そのような場合は、DNSをフラッシュすることで古いデータを削除し、正常な動作を回復できます。

DNSをフラッシュする方法:Windowsの場合

以下の手順では、最新および以前のWindowsバージョンでコンピュータのDNSキャッシュをクリアする方法を説明します。

  1. 画面左下のWindowsアイコン、またはStartボタンをクリックします。
  2. 「コマンドプロンプト(Command Prompt)」をクリックするか、検索して起動します。
  3. または、Windows + Rを押して「ファイル名を指定して実行」を開き、cmdと入力してコマンドプロンプトを起動することもできます。
  4. コマンドプロンプトがコンピュータに変更を加える許可を求めるポップアップが表示された場合は、「Yes」を選択します。
  5. 管理者の認証情報を求められた場合は、システム管理者に連絡してください。
  6. コマンドプロンプトのウィンドウで次のコマンドを入力します。
    ipconfig /flushdns
  7. Enterキーを押します。
  8. DNSリゾルバキャッシュがフラッシュされたことを示すメッセージが表示されます。

注:Windows XPおよびVistaでDNSキャッシュをフラッシュする手順は、最新のMicrosoft Windowsとほぼ同じです。
ただし、最後に表示されるメッセージが異なる場合や、管理者権限が必要になる場合があります。

DNSをフラッシュする方法:Macの場合

MacでDNSキャッシュをフラッシュするのは簡単ですが、正しいコマンドを使用するためには、使用しているmacOSのバージョンを確認する必要があります。
使用するコマンドはmacOSのバージョンによって異なるため、バージョンを確認してから実行する必要があります。
以下の手順でMacのDNSキャッシュをフラッシュできます。

  1. Finderを開きます。
  2. Applications(アプリケーション)をクリックします。
  3. Utilities(ユーティリティ)フォルダに移動します。
  4. Terminalを開きます。(またはLaunchpadで「Terminal」を検索して起動することもできます。)
  5. Terminalウィンドウで、使用しているmacOSのバージョンに対応するコマンドを入力します。
macOSバージョン コマンド
macOS 14(Sonoma)
macOS 13(Ventura)
macOS 12(Monterey)
macOS 11(Big Sur)
macOS 10.15(Catalina)
macOS 15(Sequoia)
sudo killall -HUP mDNSResponder
macOS 10.10(Yosemite) sudo discoveryutil -mdnsflushcache
macOS 10.7〜10.9、10.11〜10.14 sudo killall -HUP mDNSResponder
macOS 10.5〜10.6(Leopard、Snow Leopard) sudo dscacheutil -flushcache
macOS 10.4(Tiger) lookupd -flushcache
  1. Enterキーを押します。
  2. 求められた場合は管理者パスワードを入力し、再度Enterキーを押します。
  3. 確認メッセージが表示される場合もあれば、何も表示されない場合もありますが、いずれの場合でもDNSキャッシュは正常にフラッシュされています。

DNSを手動でフラッシュするべきですか?

DNSキャッシュとは、Webサイトを見つけるために必要な情報を保存する仕組みです。
これにはIPアドレス、ホスト名、その他のDNSレコードなどが含まれます。
ネットワークのDNSサーバーはこれらのレコードを管理し、必要に応じて更新されます。

DNSキャッシュは、ユーザーが何もしなくても定期的に更新・削除されます。
また、TTL(Time To Live)と呼ばれる情報も保存されています。
TTLとは、DNSキャッシュ内のエントリが期限切れになるまで保持される時間のことです。

この期間中は、DNSサーバーに問い合わせる代わりにローカルDNSキャッシュからデータが取得されます。
TTLが期限切れになると、そのレコードはキャッシュから削除されます。
例えば、あるWebサイトのTTLが3分に設定されている場合、TTLが期限切れになった後の最初のリクエストでは、ローカルキャッシュではなくDNSサーバーから最新情報が取得されます。

そのため、DNSを手動でフラッシュするかどうかは、状況に応じて判断することをお勧めします。
例えば、インターネット接続に問題が発生している場合、DNSキャッシュをフラッシュすると改善することがあります。
これにより、Webサイトに関する古い情報が削除され、オーソリティDNSサーバーから取得した最新データに置き換えられます。

LinuxでDNSをフラッシュする方法

WindowsやMacとは異なり、LinuxではディストリビューションによってDNSキャッシュの仕組みが異なります。
そのため、DNSキャッシュを更新するには、DNSサービスを再起動する必要がある場合があります。
手順は次のとおりです。

  1. Ctrl + Alt + Tを押してターミナルを開きます。
  2. ターミナルで、使用しているLinux環境に応じて次のコマンドを実行します。
    • NSCD:
      sudo /etc/init.d/nscd restart
    • Dnsmasq:
      sudo /etc/init.d/dnsmasq restart
    • BIND:
      sudo /etc/init.d/named restart
      sudo rndc restart
      sudo rndc exec
  3. パスワードの入力を求められる場合があります。
  4. サービスが再起動するとDNSキャッシュがフラッシュされます。

ブラウザでDNSをフラッシュする方法

システムのDNSキャッシュをフラッシュした後でも、ページの読み込みが遅い、古いページが表示される、またはサイトが正しく開かない場合があります。
これは、多くの最新のWebブラウザ(特にChromiumベースのブラウザ)が、ブラウジング速度を向上させるために独自のDNSキャッシュを持っているためです。

ブラウザのDNSキャッシュをクリアすると、特にWebサイトの移行、サーバー変更、DNS更新の後に発生する問題を解決できる場合があります。
以下は主要ブラウザでDNSキャッシュをクリアする方法です。

Google Chrome

Chromeは独自のDNSキャッシュを使用しています。

手順

  1. Chromeを開きます。
  2. アドレスバーにchrome://net-internals/#dnsと入力します。
  3. Enterキーを押します。
  4. 「Clear host cache」をクリックします。

Mozilla Firefox

Firefoxでも内部ネットワークツールからDNSキャッシュを削除できます。

手順

  1. Firefoxを開きます。
  2. アドレスバーにabout:networking#dnsと入力します。
  3. Enterキーを押します。
  4. DNSセクションで「Clear DNS Cache」をクリックします。

Microsoft Edge

EdgeはChromiumベースのため、Chromeと同じ手順です。

手順

  1. Edgeを開きます。
  2. edge://net-internals/#dnsを入力します。
  3. Enterキーを押します。
  4. 「Clear host cache」をクリックします。

Brave Browser

BraveもChromiumベースのため、同じ手順でDNSキャッシュをクリアできます。

手順

  1. Braveを開きます。
  2. brave://net-internals/#dnsを入力します。
  3. Enterキーを押します。
  4. 「Clear host cache」をクリックします。

DNSをフラッシュする利点

DNSをフラッシュすると、ネットワークトラブルの原因となる古いキャッシュ情報を削除できます。
特に、Webサイトやオンラインサービスにアクセスできない場合に、問題の解決に役立つことがあります。

また、DNSをフラッシュするとキャッシュが更新され、古い情報に基づく誤った応答を防ぐことで、接続の安定性やパフォーマンスが改善する場合があります。
DNSをフラッシュする主な理由には、次のようなものがあります。

1. DNSスプーフィングを防ぐため

DNSスプーフィング(DNSキャッシュポイズニング)とは、攻撃者がDNSキャッシュを改竄し、特定のドメイン名が誤ったIPアドレスに解決されるようにする攻撃です。
これにより、ユーザーのDNSリクエストが攻撃者のWebサイトへ転送されることがあります。
この攻撃は、DNSハイジャック、フィッシング攻撃、中間者攻撃(Man-in-the-Middle Attack)、マルウェア配布などの不正行為に利用されることがあります。

DNSキャッシュをフラッシュすると、システムはDNSレコードを再取得するため、不正なキャッシュエントリが削除される可能性があります。
その結果、攻撃者によってキャッシュに追加された不正なエントリが使用されるリスクを減らすことができます。

2. 404エラーを修正するため

Webサイトが新しいドメインやサーバーへ移行した場合、コンピュータに保存されているDNS情報が更新されていないことがあります。
その結果、サイトにアクセスできない、またはエラーが表示される場合があります。
このような場合、DNSキャッシュをフラッシュすると、最新のDNS情報が取得され、正しいページへアクセスできるようになることがあります。

3. Webサイトが読み込まれない問題を修正するため

Webサイトが正しく読み込まれない場合にも、DNSフラッシュが役立つことがあります。
これは、IPアドレスの変更やDNSサーバー設定の変更が原因である場合があります。
このような状況では、DNSキャッシュをクリアすることでDNS解決が再実行され、WebサイトのIPアドレスが再取得されます。

4. 閲覧履歴の一部を削除するため

Webサイトにアクセスすると、コンピュータにはDNSキャッシュとしてアクセス履歴の一部が保存されます。
そのため、第三者がDNSキャッシュにアクセスできた場合、どのWebサイトにアクセスしたかが推測される可能性があります。

DNSをフラッシュすると、このキャッシュ情報が削除されるため、一定のプライバシー保護につながる場合があります。
これにより、閲覧履歴が公開されるのを防ぎ、スパイウェアの防止やオンライン行動の追跡から保護するのに役立ちます。

5. セキュリティを向上させるため

DNSフラッシュは、システムのDNSキャッシュを更新し、古くなったDNS情報や不正なエントリを削除することで、セキュリティ向上に役立つ場合があります。
DNSキャッシュを定期的に更新することで、誤ったIPアドレスへの接続を防ぎ、ネットワークの信頼性を高めることができます。

また、サイバーセキュリティ分野ではAI技術の進歩により、脅威の検知やブロックの精度が向上しています。
そのため、DNSキャッシュを常に最新の状態に保つことは、セキュリティ対策の一環として重要です。

結論

多くのシステムやDNSリゾルバは、IPアドレスのルックアップ結果を保存するためにDNSキャッシュを使用しています。
この仕組みにより、同じDNSルックアップを繰り返す必要がなくなり、通信速度が向上します。
しかし、DNSキャッシュの情報が古くなった場合、問題が発生することがあります。

例えば、IPアドレスが変更されてもDNSキャッシュが更新されていない場合、ユーザーは古いIPアドレスに接続してしまう可能性があります。
また、DNSキャッシュが不正に改竄された場合、ユーザーが意図しないサーバーへ誘導されるリスクもあります。

そのため、DNSをフラッシュすることは、DNS情報を最新の状態に保ち、古くなったキャッシュを削除するための有効な対策の一つです。
これにより、誤ったIPアドレスへの接続や、古いDNS情報による問題の発生リスクを減らすことができます。

よくある質問

DNSをフラッシュすると、インターネットの速度は向上しますか?
場合によっては向上することがあります。
特に、古いまたは破損したDNSレコードが原因でWebサイトの読み込みが遅くなっている場合に効果があります。
DNSキャッシュをフラッシュすると、システムはDNSサーバから最新のIPアドレスを直接取得するようになります。
DNSをフラッシュするとDNS_PROBE_FINISHED_NXDOMAINエラーは解決しますか?
場合によっては解決します。
このエラーは通常、ブラウザがドメイン名を解決できないときに表示されます。
問題の原因が不正または古いDNSキャッシュエントリである場合、DNSをフラッシュすることで誤ったデータが削除され、システムがDNSサーバから正しい情報を取得できるようになります。
ルータを変更した後にDNSをフラッシュする必要がありますか?
実行することをおすすめします。
ルータを変更した場合、特に新しいルータが異なるDNS設定を使用している場合、システムが以前の接続からキャッシュされたエントリを引き続き使用している可能性があります。
DNSをフラッシュすると、デバイスは古いレコードを破棄し、新しいDNSサーバに対して再度クエリを行います。
DNSを頻繁にフラッシュしても安全ですか?
はい、DNSをフラッシュすることは完全に安全であり、システムのパフォーマンスに悪影響を与えることはありません。
むしろ、定期的に実行することで接続問題を防ぎ、古いレコードを削除し、DNSスプーフィングのリスクを減らすことに役立ちます。