【初心者向け】特定のサイトが表示されないときはDNSキャッシュのクリアが効果的

Mac

ネットを見ているとき、特定の端末で、「特定のサイトだけ表示されない」「表示が極端に遅い」といった経験をしたことはないですか?この場合はDNSキャッシュと呼ばれるものに問題が起きているかもしれません。
他の端末では問題なく見られるような場合は、DNSキャッシュをクリアすると改善する可能性があります。

DNSキャッシュとは?

以前、DNSについては下記にて説明していますので、よかったらご参照を。

改めてカンタンに説明すると、DNSとはドメインからIPアドレスを引くシステムのことで、これがあることにより「google.co.jp」といった人間にわかりやすい名前を入力しても、目的のサイトに辿り着けることができるようになります。

さて、問題のDNSキャッシュですが、その名のとおりにこのドメイン名とIPアドレスの対応情報を一時的に使っているPC内に保存する仕組みのこと。キャッシュに保存することによって、同じドメイン名へアクセスする際に再度DNSキャッシュサーバーに問い合わせる必要がなくなるので、より迅速にサイトへアクセスできるようになります。つまり、サイトへ接続する体感速度が向上するわけです。

DNSキャッシュに問題があるときはどうなる?

しかし、キャッシュが正常に保存されなかったり、何らかの原因で壊れてしまったりします。そうなるとどうなってしまうのでしょうか?

ウェブサイトが表示されない

DNSキャッシュが壊れていると、そのサイトのドメインが正しく引けなくなってしまうので、「サイトにアクセスできません」や「ページが見つかりません」というエラーメッセージが表示されてしまいます。

もちろん、DNSキャッシュを使わず、DNSサーバーへ問い合わせてアクセスした場合は、この症状は起きません。よって、特定のサイトだけエラーとなってしまう場合は、DNSキャッシュに問題がありそうと切り分けられます。

古い情報の表示

ウェブサイトのIPアドレスやDNS情報は時折変更されることがあります。もし変更があっても、DNSキャッシュに残された情報は古いままですので、サイトへのアクセスにキャッシュが使われると古いサイトへアクセスしようとしてしまいます。

そのため、サイトが更新されているはずなのに古いサイトが表示される、またはサイトが見つからないといった現象につながります。

セキュリティリスク

ちょっと厄介なのがDNSキャッシュポイズニングという攻撃によって偽のDNS情報をつかまされ、それをキャッシュとして保存してしまうパターンです。

DNSキャッシュポイズニングとは、攻撃者がDNSサーバーに対して偽のDNS情報を保存させるというものです。DNSサーバーがこの攻撃で汚染されると、アクセスしてきたユーザーはこの偽DNS情報を使ってアクセスしてしまいます。そうすると、本来アクセスしたいサイトではなく、攻撃者が用意した偽サイトへ誘導されてしまうのです。いわゆるフィッシング詐欺とかで使われる攻撃です。

もし、この攻撃で汚染したDNSサーバーへアクセスしていた場合、自分の端末には偽DNS情報がキャッシュとして保存されてしまいます。つまり、そのサイトへアクセスしようとしても、キャッシュに残された偽DNSを参照してしまうので、常に偽サイトに誘導されるリスクがあります。

DNSキャッシュをクリアする

DNSキャッシュをクリアする方法は、使っているPCによって異なります。

Windowsでクリアする

Windowsはコマンドプロンプトからクリアします。Windows 10/11で共通です。ここでは、Windows 11で説明します。
まず、タスクバーの検索ボックスに「cmd」と入力し、「コマンドプロンプト」をクリックします。

コマンドプロンプトが開いたら、↓のコマンドをコピーして貼り付け、Enterキーを押します。

ipconfig /flushdns

↓のメッセージが表示されたら、DNSキャッシュのクリアは完了です。

Macでクリアする

Macの場合はターミナルからクリアします。macOSはバージョンによって入力するコマンドが異なります。ここでは、Yosemite(macOS 10.10.x)以降のコマンドを紹介します。画面は現在最新のSonoma(macOS14.x)です
まず、ターミナルを起動します。Launchpadから開く場合は、ユーティリティ内にある「ターミナル」をクリックします。

ターミナルが開いたら、↓のコマンドをコピーして貼り付け、Enterキーを押します。

sudo killall -HUP mDNSResponder

パスワードが求められるので、Macへログインするときのパスワードを入力してEnterキーを押します。なお、入力しても文字は表示されないのは正常です。

元の表示に戻ったら、DNSキャッシュのクリアは完了です。

【まとめ】DNSキャッシュを定期的にクリアしてメンテしておく

DNSキャッシュのクリアにデメリットはそんなに多くありません。強いて挙げるとすれば、DNSキャッシュをクリアすると、次にアクセスする際にDNSサーバーへのアクセスが発生するので、その分だけサイトの読み込みが遅くなります。とはいっても体感で遅い!と感じるほどではないでしょう。

ですので、特定の端末でページが表示されないといったトラブルが発生したなら、DNSキャッシュをクリアしてみるといいでしょう。

また、DNSキャッシュポイズニングの攻撃は気付きにくいので、そのリスクを抑えるためにも定期的(月に1度程度)にクリアしておくと安全。PCを安全に使うためのメンテナンスだと思って、たまにクリアしておくのがオススメです。

コメント

タイトルとURLをコピーしました