DNSキャッシュは、以前のDNSルックアップに関する情報を格納する一時データベースです。つまり、Webサイトにアクセスするたびに、OSとWebブラウザはドメインと対応するIPアドレスの記録を保持します。これにより、リモートDNSサーバーへの繰り返しのクエリが不要になり、OSまたはブラウザがWebサイトのURLをすばやく解決できるようになります。
ただし、ネットワークの問題のトラブルシューティングやDNSリゾルバーの変更後などの状況では、DNSキャッシュをフラッシュする必要があります。これにより、キャッシュされたDNSエントリがクリアされ、後続のルックアップが実行されて、新しく構成されたDNS設定に基づいてドメインが解決されます。
この記事では、さまざまなオペレーティングシステムとWebブラウザでDNSキャッシュをフラッシュする方法について説明します。
WindowsでのDNSキャッシュのクリア/フラッシュ#
DNSキャッシュをクリアするプロセスは、すべてのWindowsバージョンで同じです。管理者権限でコマンドプロンプトを開き、ipconfig /flushdns
を実行する必要があります 。
Windows10およびWindows8#
Windows 10および8でDNSキャッシュをクリアするには、次の手順を実行します。
-
Windowsの検索バーに「cmd」と入力します。
-
[コマンドプロンプト]を右クリックし、[管理者として実行]をクリックします。これにより、コマンドプロンプトウィンドウが開きます。
-
コマンドラインで次の行を入力し、Enterキーを押します。
ipconfig /flushdns
成功すると、システムは次のメッセージを返します。
Windows IP Configuration Successfully flushed the DNS Resolver Cache.
Windows 7#
Windows 7でDNSキャッシュをクリアするには、次の手順を実行します。
-
[スタート]ボタンをクリックします。
-
[スタート]メニューの検索テキストボックスに「cmd」と入力します。
-
[コマンドプロンプト]を右クリックし、[管理者として実行]をクリックします。これにより、コマンドプロンプトウィンドウが開きます。
-
コマンドラインで次の行を入力し、Enterキーを押します。
ipconfig /flushdns
成功すると、システムは次のメッセージを返します。
Windows IP Configuration Successfully flushed the DNS Resolver Cache.
LinuxでのDNSキャッシュのクリア/フラッシュ#
Linuxでは、Systemd-Resolved、DNSMasq、Nscdなどのキャッシングサービスがインストールされて実行されていない限り、OSレベルのDNSキャッシングはありません。 DNSキャッシュをクリアするプロセスは、使用しているLinuxディストリビューションとキャッシュサービスによって異なります。
Systemd Resolved#
Ubuntu 18.04などの最新のLinuxディストリビューションのほとんどは、systemdで解決されたサービスを使用してDNSエントリをキャッシュしています。
サービスが実行されているかどうかを確認するには、次のコマンドを使用します。
sudo systemctl is-active systemd-resolved.service
サービスが実行されている場合、コマンドはactive
を出力します 。それ以外の場合は、inactive
が表示されます 。
Systemd Resolved DNSキャッシュをクリアするには、次のように入力します。
sudo systemd-resolve --flush-caches
成功すると、コマンドはメッセージを返しません。
DNSMasq#
Dnsmasqは、軽量のDHCPおよびDNSキャッシングネームサーバーです。
システムがキャッシュサーバーとしてDNSMasqを使用している場合、DNSキャッシュをクリアするには、Dnsmasqサービスを再起動する必要があります。
sudo systemctl restart dnsmasq.service
または
sudo service dnsmasq restart
Nscd#
Nscdはキャッシングデーモンであり、ほとんどのRedHatベースのディストリビューションで推奨されるDNSキャッシングシステムです。
システムがNscdを使用している場合、DNSキャッシュをクリアするには、Nscdサービスを再起動する必要があります。
sudo systemctl restart nscd.service
または
sudo service nscd restart
macOSでDNSキャッシュをクリア/フラッシュする#
macOSでキャッシュをフラッシュするコマンドは、実行しているバージョンによって少し異なります。コマンドは、システム管理者権限を持つユーザー(sudo user)として実行する必要があります。
macOSでDNSキャッシュをクリアするには、次の手順を実行します。
-
Finderを開きます。
-
[アプリケーション]>[ユーティリティ]>[ターミナル]に移動します。これにより、ターミナルウィンドウが開きます。
-
コマンドラインで次の行を入力し、Enterキーを押します。
sudo killall -HUP mDNSResponder
sudoパスワードを入力し、もう一度Enterキーを押します。成功すると、システムはメッセージを返しません。
以前のバージョンのmacOSでは、キャッシュをフラッシュするコマンドが異なります。
macOSバージョン10.11および10.9
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
macOSバージョン10.10
sudo discoveryutil mdnsflushcache
sudo discoveryutil udnsflushcaches
macOSバージョン10.6および10.5
sudo dscacheutil -flushcache
ブラウザのDNSキャッシュをクリア/フラッシュする#
最新のWebブラウザのほとんどにはDNSクライアントが組み込まれており、Webサイトにアクセスするたびにクエリが繰り返されるのを防ぎます。
Google Chrome#
Google ChromeのDNSキャッシュをクリアするには、次の手順を実行します。
- 新しいタブを開き、
chrome://net-internals/#dns
と入力します Chromeのアドレスバーに表示されます。 - [ホストキャッシュをクリア]ボタンをクリックします。
それでも問題が解決しない場合は、キャッシュとCookieをクリアしてみてください。
-
CTRL+Shift+Del
で[閲覧履歴データの消去]ダイアログウィンドウを開きます 。 - 時間範囲を選択します。すべてを削除するには、[常時]を選択します。
- [Cookieとその他のサイトデータ]と[キャッシュされた画像とファイル]チェックボックスをオンにします。
- [データを消去]ボタンをクリックします。
この方法は、Chromium、Vivaldi、Operaを含むすべてのChromeベースのブラウザで機能するはずです。
Firefox#
FirefoxのDNSキャッシュをクリアするには、次の手順を実行します。
- 右上隅にあるハンバーガーアイコン
☰
をクリックします Firefoxのメニューを開くには: -
⚙ Options (Preferences)
をクリックします リンク。 - 左側の[プライバシーとセキュリティ]または[プライバシー]タブをクリックします。
History
まで下にスクロールします セクションをクリックし、Clear History...
をクリックします ボタン。- クリアする時間範囲を選択します。 「すべて」を選択してすべてを削除します。
- すべてのボックスを選択して、[今すぐクリア]をクリックします。
それでも問題が解決しない場合は、次の方法を試して、DNSキャッシュを一時的に無効にしてください。
- 新しいタブを開き、
about:config
と入力します Firefoxのアドレスバーにあります。 -
network.dnsCacheExpiration
を検索します 、一時的に値を0に設定し、[OK]をクリックします。その後、デフォルト値に戻し、[OK]をクリックします。 -
network.dnsCacheEntries
を検索します 、一時的に値を0に設定し、[OK]をクリックします。その後、デフォルト値に戻し、[OK]をクリックします。
結論#
Windows、Linux、およびmacOSオペレーティングシステムでDNSキャッシュをクリアまたはフラッシュする方法を説明しました。
LinuxおよびmacOSユーザーは、dig
を使用できます DNSの問題を照会してトラブルシューティングするコマンド。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。