DNSキャッシュをフラッシュすることで、プライバシーを保護し、HTTPエラーを解決し、悪意のあるDNSスプーフィングを防ぐことができます。
この投稿では、DNSフラッシュについて知っておく必要があるすべてをカバーします:
- DNSフラッシュが行うこと
- DNSフラッシュを行う理由
- DNSをフラッシュする方法
- Windows 10
- Windows 7の場合
- Windows XPとVistaの場合
- Mac OS X
- クローム
- Linuxの場合
DNSキャッシュとは何ですか?
DNS(Domain Name System)キャッシュは、ブラウザからDNSサーバーに送信されたすべてのクエリの記録です。ブラウザにURLを入力すると、そのURLのIPアドレスを求めるリクエストがDNSサーバーに送信されます。ブラウザがIPアドレスを受信すると、正しいウェブサイトをウィンドウに読み込むことができる。
しかし、2度目にそのウェブサイトにアクセスしようとしたときはどうなるのだろうか。ブラウザはDNSサーバーに新しいリクエストをする必要があるのでしょうか?
いいえ。デフォルトでは、ほとんどのオペレーティング・システムはIPアドレスやその他のDNS(Domain Name System)レコードをキャッシュし、今後のリクエストに迅速に対応できるようにしています。これがDNSキャッシュです。DNSキャッシュは、ブラウザが新しいリクエストを行うのを防ぎ、代わりに保存された情報を使用してウェブサイトを読み込みます。これにより、サーバーの応答時間が短縮され、ウェブサイトの読み込みが速くなります。
DNSフラッシュは何をするのですか?
DNSフラッシュは、キャッシュからIPアドレスやその他のDNSレコードを削除します。これにより、セキュリティ問題、インターネット接続、その他の問題を解決することができます。
例えば、初めてブラウザのアドレスバーにhttps://andrelug.com/ と入力すると、ブラウザはDNSサーバーにウェブサイトがどこにあるかを問い合わせる必要があります。この情報を得ると、ブラウザはその情報をローカルキャッシュに保存することができる。そうすれば、次にそのウェブサイトのアドレスを入力したとき、ブラウザはまずローカルキャッシュのDNS情報を調べ、より素早くウェブサイトを見つけることができる。
問題は、時に危険なIPアドレスや破損した結果がキャッシュされることがあり、それを削除する必要があることだ。また、DNSキャッシュがインターネット接続に影響を与えたり、その他の問題を引き起こしたりすることもあります。どのような理由であれ、すべての主要なオペレーティングシステムでは、このキャッシュをクリアするプロセス、つまり「DNSフラッシュ」を強制的に実行することができます。
DNSキャッシュは、あなたが操作しなくても、時々自動的にクリアされることを理解しておくことが重要です。これは、DNSキャッシュが、ウェブサイトを識別して見つけるために関連するすべての情報を保存することに加えて、TTL(time to live)と呼ばれるコンポーネントも保存するためです。
TTLは、ウェブサイトのDNSレコードが有効である期間(秒単位)を指定します。この期間内であれば、ウェブサイトへの問い合わせは、DNSサーバーの助けを借りずに、ローカルのキャッシュから回答されます。TTLが切れると、エントリーはキャッシュから削除されます。
しかし、すべてのエントリーのTTLが切れるのを待つのではなく、強制的にDNSフラッシュを行う必要がある理由があります。以下でその理由を見てみましょう。
なぜDNSをフラッシュする必要があるのでしょうか?
DNSキャッシュをフラッシュする必要がある理由はいくつかあります。これらの理由は、セキュリティ、技術的な問題、またはデータのプライバシーに関連する可能性があります。以下、それぞれについて簡単に説明します。
1.DNSスプーフィングを防止したい
DNSキャッシュポイズニングとも呼ばれるDNSスプーフィングは、悪意のある行為者があなたのDNSキャッシュにアクセスし、情報を改ざんして間違ったウェブサイトにリダイレクトさせる攻撃です。場合によっては、意図した宛先に似せた詐欺的なウェブサイトにリダイレクトさせ、オンライン・バンキングのログイン情報などの機密情報を入力させることもあります。
2.404エラーが表示される
新しいドメイン名やサーバーに移動したウェブサイトのDNS情報をキャッシュしたとします。この場合、お使いのコンピュータのDNS情報はすぐに更新されず、サイトにアクセスしようとすると404エラーや古いバージョンのサイトが表示される可能性があります。情報は最終的にDNSキャッシュで更新されますが、待つ必要はありません。DNSキャッシュはいつでもクリアできます。
3.ウェブサイトへのアクセスに問題がある場合
ウェブサイトの読み込みに問題がある場合は、まずブラウザの一時ファイルやクッキーを消去したり、ポップアップ・ブロッカーを無効にしたり、ウェブサイトがクッキーを保存したり読み取ったりできるようにブラウザの設定を調整するなど、他の手順を試してみることをお勧めします。しかし、すべてのオプションを試しても問題が解決しない場合は、DNSレコードをクリアし、サーバーに新しいリクエストを行うことができます。
4.検索のプライバシーを守りたい
インターネット上でのユーザー行動の追跡といえば、通常はクッキーを思い浮かべますが、DNSキャッシュは検索履歴も明らかにしてしまいます。これは、DNSキャッシュが仮想的な日記のように機能し、定期的に訪問するウェブサイトの情報を保存するためです。この情報をデータコレクターやウェブ上の悪意ある行為者から遠ざけるには、定期的にDNSキャッシュをクリアするのがよいでしょう。
DNSキャッシュをクリアする意味とその理由を理解したところで、以下でその方法を見ていきましょう。
DNSをクリアする方法
- Macの場合:Finderを開く。
- アプリケーションをクリック。
- Utilities」フォルダまでスクロールダウンし、クリックする。
- ターミナルを開きます。
- ターミナルウィンドウで、次のコマンドを入力します: sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
- Enterキーを押し、管理者パスワードを入力します。
- もう一度Enterを押します。
DNSキャッシュをクリアするプロセスは、お使いのコンピュータのオペレーティング・システムによって異なります。以下に、主なシステムの手順を説明します。
Mac OS XでDNSをクリアする方法
MacコンピュータでDNSキャッシュをクリアする手順は、実行中のソフトウェアのバージョンに関係なく似ています。ただし、コマンドプロンプトが異なる場合があるため、ステップ6のバージョンを知っておく必要があります。
- Finderを開きます。
- アプリケーションをクリックします。
- Utilities」フォルダまでスクロールダウンし、クリックします。
- ターミナルを開きます。
- Terminalを開くには、Launchpadを開き、検索バーに「Terminal」と入力します。
Terminalウィンドウで、ソフトウェアのバージョンに応じて以下のコマンドのいずれかを入力します:
- Ventura と Monterey: sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
- Lion、Mountain Lion、Mavericks、El Capitan、Sierra、High Sierra、Mojave: sudo killall -HUP mDNSResponder
- Yosemite: sudo discoveryutil mdnsflushcache
- Tiger: lookupd -flushcache
- パスワードを入力し、もう一度Enterを押します。
- DNSキャッシュがリセットされたことを確認するメッセージが表示されるはずです。
WindowsでDNSをフラッシュする方法
Windows 10および11でDNSをクリアする方法
以下は、Windows 10および11でDNSキャッシュをクリアする手順です。これらの手順はWindows 8.1でも動作するはずです。
- スタートボタンをクリックします。左下にあるWindowsのロゴです。
- コマンドプロンプトを選択します。
- コマンドプロンプト・コンソールを開くには、WindowsキーとRキーを同時に押し、cmdと入力するだけでもよい。
- コマンドプロンプトがコンピューターに変更を加えることを許可するかどうかを尋ねるポップアップが表示される場合があります。その場合は、「はい」を選択します。
- この時点で管理者ログインを求められた場合は、システム管理者に連絡して手続きを進める必要があります。
- コマンドプロンプトウィンドウで、ipconfig /flushdnsと入力します。
- Enterを押します。
- DNSリゾルバキャッシュが正常にクリアされたことを確認するメッセージが表示されるはずです。
Windows 7でDNSをフラッシュする方法
Windows 7でDNSキャッシュをクリアする手順は、新しいバージョンとほとんど同じです。
- スタートボタンをクリックします。左下にあるWindowsのロゴです。
- すべてのプログラム] > [アクセサリ]をクリックします。
- コマンドプロンプトを見つける。コマンドプロンプトを右クリックし、「管理者として実行」を選択する。
- コマンドプロンプトがコンピュータに変更を加えることを許可するかどうかを尋ねるポップアップが表示される場合があります。はい」の場合は、「はい」を選択します。
- この時点で管理者としてログインするよう促された場合は、システム管理者に連絡して手続きを進める必要があります。
- コマンドプロンプトウィンドウで、ipconfig /flushdnsと入力します。
- Enterを押します。
- DNSリゾルバのキャッシュが正常にクリアされたことを確認するメッセージが表示されるはずです。
Windows XPおよびVistaでDNSをフラッシュする方法
ウィンドウズXPとビスタのDNSキャッシュをクリアするプロセスは、ウィンドウズ7とほぼ同じです。ただし、最終的なメッセージは異なる場合があり、管理者の介入が必要な場合があります。
- スタートボタンをクリックします。左下のWindowsロゴです。
- すべてのプログラム」>「アクセサリ」をクリックします。
- コマンドプロンプトを選択します。
- コマンドプロンプトウィンドウで、ipconfig /flushdnsと入力します。
- Enterを押します。
- DNSリゾルバのキャッシュが正常にクリアされたことを確認するメッセージが表示されるはずです。代わりに「Action Requires Elevation」というメッセージが表示された場合は、コンピューター管理者に連絡して上記の手順を完了する必要があります。
LinuxでDNSをクリアする方法
WindowsやMacコンピュータとは異なり、LinuxシステムにはデフォルトでDNSキャッシュがありません。ただし、ディストリビューションごとに異なるDNSサービスを使用して、DNSレコードをローカルに保存している場合があります。サービスによっては、キャッシュをクリアするか、サービスを再起動することができます。
- キーボードのCtrl Alt Tを押して、ターミナル・ウィンドウを開きます。
- ターミナル・ウィンドウで、Linuxシステムが実行しているサービスに基づいて、以下のコマンドのいずれかを入力します。
- NCSD: 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
- パスワードの入力を求められるかもしれません。
- サービスが停止し、キャッシュが正常にリセットされたという確認メッセージを送信する前に再起動することがあります。
ChromeでDNSキャッシュをクリアする方法
- デスクトップ端末でGoogle Chromeを開きます。
- ブラウザのアドレスバーに次のアドレスを入力します: chrome://net-internals/#dns
- Clear host cacheボタンをクリックします。
- これで完了です!
Google Chromeはオペレーティングシステムではありませんが、独自のDNSキャッシュを保持しています。これは、Chromeのオペレーティングシステムのキャッシュやブラウザのキャッシュとは別のものです。Chromeがデフォルトブラウザに設定されている場合は、ChromeのDNSキャッシュとオペレーティングシステムのDNSキャッシュをクリアする必要があります。
手順は以下の通りです:
- ブラウザのアドレスバーに次のアドレスを入力します: chrome://net-internals/#dns
- Clear host cacheボタンをクリックします。
- 完了です!
DNSフラッシュの実行
DNSキャッシュを定期的にフラッシュする理由はたくさんあります。フィッシング詐欺やコンピューターへのその他の攻撃を防いだり、よくアクセスするウェブサイトの最新版を表示したり、インターネット接続を回復したり、データをプライベートに保ったりするのに役立ちます。
一番の魅力は、プロセスがとても簡単なことです。上記のステップに従うことで、コンピュータのオペレーティングシステムに関係なく、素早く簡単にDNSクリーンアップを実行できます。これで、他のウェブサイト制作作業を続けることができます。