ウェブサイトの異常調査は、恐ろしい作業です。ドメインネームサーバー(DNS)キャッシュをクリアすることなどの仕事はわかりにくく、どこから始めればいいのかわからない場合が多いでしょう。
幸いなことに、技術に精通していないユーザでも、この作業を簡単に実行できます。2つの簡単なステップでDNSのキャッシュがクリアされ、直面している異常を解決する作業を続けることができます。
本記事では、DNSキャッシュの概要と、キャッシュをクリアする必要のある状況をご案内します。次に、当社の経験からの実際の例と、ご利用のハードウェアに関係なく適用できるトラブルシューティング手順をご紹介します。
それでは始めましょう!
DNSキャッシュの概要
DNSキャッシュをクリアする必要のある理由を理解するには、その背景も十分に理解しておかなければなりません。
まず、ドメインネームシステム(DNS)は、インターネット上のすべてのウェブサイトとそのIPアドレスの索引です。まるでウェブサイトの電話帳のようなものです。「キャッシュ」は、ウェブページなどのスナップショットを保存して、今後より速く読み込みできるようにするプロセスです。
DNSのキャッシュなら、オペレーティングシステム(OS)またはブラウザが最近アクセスしたIPアドレスを取得してデータベースに保存します。これによりブラウザが、過去にアクセスしたサイトを毎回DNSを参照するよりも速く読み込まれます。
残念ながら、DNSのキャッシュが破損するとフィッシング詐欺につながる可能性があります。また、単に古くなったり、インターネット接続の異常を引き起こしたりする可能性もあります。これらの状況のいずれにおいても、DNSキャッシュをクリアすると、問題が解決します。
DNSキャッシュのケーススタディ
上記をさらに説明するために、Kisntaのお客さまのウェブサイトで実際に発生した例をご紹介します。
そのお客さまは、画像、CSS、またはJavaScriptがウェブサイトに正しく読み込まれなかったため、サポートチームまで連絡しました。
ただし、サポートチームが確認したらサイトは正常に読み込まれていました。または、お客さまが最近変更を加えたことはありませんでした。ChromeのDevtoolsでサイトを調査した結果、CDNサブドメイン(cdn.domain.com)からのすべてのコンテンツが正しく読み込まれず、404エラーが発生していることがわかりました。
そこでまず、CDNサブドメインにアクセスできるかどうか、ネットワーク接続を確認しました。予測どおりに、サブドメインが応答を返しました。次に、無料のwhatsmydns ツールを使用してお客さまのCDN URLを確認しました。
このツールを使用すると、ユーザーは複数の地理的な場所からのDNSレコード(CDN CNAMEなど)の解決をすばやく確認できます。当社のメンバーがいる場所だけでなく、世界中どこでもサイトが正常に読み込まれ、CDNプロバイダーに解決されることを確認したかったのです。
結果は次のとおりでした。
上記の調査で、お客さまのDNSプロバイダーが細かい変更を加えたが、お客さまのパソコンではそのコンテンツがまだキャッシュされていたことを分かりました。 お客様にコンピューターのDNSキャッシュをクリアして、ページを更新するように依頼しました。
その時点で、WordPressサイトが再び正常に読み込まれるようになりました。
DNSキャッシュをクリアする方法を知っておくと、上記のような状況で非常に便利でしょう。それでは、やり方を詳しく見てみましょう。
Mac、Windows、Linux、ChromeでDNSキャッシュをクリアする方法
DNSのキャッシュをクリアすることは比較的に簡単ですが、OSによって異なります。また、コンピューターのキャシュをクリアするかまたはブラウザーのキャシュをクリアするかもポイントです。以下では、macOS、Windows、Linuxの3つのオペレーティングシステム(OS)、およびGoogle Chromeブラウザーでの手順について説明します。
1. macOSでDNSキャッシュをクリアする方法
MacでDNSキャッシュをクリアするには、「ターミナル」と呼ばれるコマンドラインインターフェイスを開き、適切なコマンドを実行します。このプロセスは、macOSのご利用のバージョンによって異なります。
ご利用のバージョンがわからない場合は、デスクトップの左上隅にある「アップル」アイコンをクリックして、「このMacについて」を選択します。
一番上に表示される情報は利用中のバージョンです。
この情報がわかったら、以下の関連手順を実行します。
macOS El Capitan (10.11)、Sierra (10.12)、High Sierra (10.13)、Mojave (10.14)、Catalina (10.15)
macOSバージョン10.11以降では、「移動」> 「ユーティリティ」をクリックしてコマンドラインインターフェースを開きます。
次に、「ターミナル」を選択します。開いたら、次のコマンドを実行します。
sudo killall -HUP mDNSResponder
コンピューターのパスワードを入力するよう求められます。
そうすると、DNSキャッシュがクリアされます。
macOS Yosemite (10.10)
macOSのどのバージョンでも、上記と同じ方法でターミナルにアクセスできます。Yosemite(10.10)では、ウィンドウが開いたら、次のコマンドを実行します。
sudo discoveryutil udnsflushcaches
コンピューターのパスワードを入力すると、DNSキャッシュが正常にクリアされます。
macOS Lion (10.7)、Mountain Lion (10.8)、Mavericks (10.9)
macOSバージョン10.7~10.9では、ターミナルを開き、次のコマンドを実行してDNSキャッシュをクリアします。
sudo killall -HUP mDNSResponder
お気づきかもしれませんが、これはバージョン10.11以降で使用されているのと同じコマンドです。パスワードを入力して実行します。
macOS Snow Leopard (10.6)
macOS Snow Leopard(10.6)を実行している場合は、ターミナルを開いて次のコマンドを入力します。
sudo dscacheutil -flushcache
次に、パスワードを入力してDNSキャッシュをクリアします。
macOS Leopard (10.5)
最後になりますが、macOS Leopard(10.5)では、ターミナルで次のコマンドを実行します。
sudo lookupd -flushcache
パスワードを入力すると、DNSキャッシュがクリアされます。
DNSキャッシュをクリアすることは、ERR_SPDY_PROTOCOL_ERRORの解決策でもあります。
2. WindowsでDNSキャッシュをクリアする方法
WindowsでDNSキャッシュをクリアするのは非常に簡単です。Windows 10、8、7、およびXPでは手順がそれぞれ異なります。
Windows 10
Windows OSでDNSキャッシュをクリアするには、システムのコマンドラインインターフェイスであるコマンドプロンプトを開きます。Windows 10でこのプログラムにアクセスするには、「スタート」ボタンをクリックします。次に、「Windowsシステムツール」>「コマンドプロンプト」に移動します。
コマンドラインインターフェイスが開いたら、次の行を入力します。
ipconfig /flushdns
このコマンドは、DNSキャッシュが正常にクリアされたことの確認メッセージを返すはずです。
その後、コマンドプロンプトウィンドウを閉じてもかまいません。
Windows 8
Windowsの旧バージョンでDNSキャッシュをクリアするには、同じipconfig /flushdns
コマンドを実行します。ただし、コマンドプロンプトにアクセスするための手順は、バージョンによって若干異なります。
Windows 8では、アプリ一覧を開きます。右側にある「Windowsシステムツール」を見つけて、「コマンドプロンプト」を選択します。
プログラムが開いたら、ipconfig /flushdns
を実行します。 DNSキャッシュが正常にクリアされたことの確認メッセージが表示されるはずです。
Windows 7およびWindows XP
Windows 7またはWindows XPでは、「スタート」ボタンをクリックします。 「すべてのプログラム」> 「アクセサリ」に移動し、「コマンドプロンプト」を選択します。
コマンドラインインターフェイスで、ipconfig /flushdns
を実行します。DNSキャッシュがクリアされたことの確認メッセージが表示されるはずです。
3. LinuxでDNSキャッシュをクリアする方法
LinuxでDNSキャッシュをクリアする手順は、MacまたはWindowsでDNSキャッシュをクリアする手順とかなり似ています。やり方は次のとおりです。
Ubuntu
Linuxは、macOSと同様に、コマンドラインインターフェイスとして「ターミナル」を使用します。ターミナルを開くには、デスクトップの左上隅にある「アクティビティ」をクリックします。これにより、「ターミナル」と入力できる検索バーが表示されます。
コマンドラインインターフェイスが開いたら、次のコマンドを実行します。
sudo systemd-resolve --flushcaches
その後、ターミナルはパスワードの入力を求めます。入力してコマンドの実行しDNSキャッシュをクリアします。
その他のディストリビューション
Ubuntu以外のLinuxディストリビューションでは、コマンドラインインターフェースを開いて次のコマンドを実行することにより、DNSキャッシュをクリアできます。
sudo /etc/init.d/dns-clean start
コマンドが実行されると、キャッシュがクリアされます。
4. Google ChromeでDNSキャッシュをクリアする方法
最後になりますが、本記事の冒頭で述べたように、OSではなくブラウザのDNSキャッシュをクリアする必要がある場合があります。Google Chromeでは、キャッシュをクリアするにはアドレスバーに下記を入力します。
chrome://net-internals/#dns
次に「Clear host cache」(ホストキャッシュのクリア)ボタンをクリックします。
これにより、ChromeのDNSキャッシュがクリアされます。
詳細については、「すべての人気のあるブラウザのブラウザキャッシュをクリアするには」をご確認ください。
まとめ
インターネット接続異常などのウェブサイト異常調査に慣れていない場合、DNSキャッシュをクリアすることは気が遠くなるような仕事でしょう。 幸いなことに、手順はかなり簡単です。
DNSキャッシュを数ステップでクリアできます。まず、ご利用のOSとそのバージョンを知っておきましょう。次に、上記の関連手順に従い、1つまたは2つの簡単なコマンドを入力してDNSキャッシュをクリアします。