必要になることは稀ですが、DNSキャッシュをフラッシュすると、原因不明のインターネット接続の問題が解決する場合があります。その理由、タイミング、方法をご紹介します。
これは、おそらく使う必要がないかもしれないヒントの一つです。とはいえ、Macがウェブサイトに接続できず、よくある簡単な解決策(「すべてを再起動する」など)を試しても解決しない場合は、Macユーザーのトラブルシューティングツールとして役立つヒントです。
ターミナル アプリに慣れていない場合、この特定のヒントはそれほど簡単ではありませんが、心配しないでください。手順を説明します。
Mac、ルーター、インターネット サービス プロバイダーはすべて、最も頻繁にアクセスする Web サイトにこれまで以上に速く接続できるようにするための DNS キャッシュを備えているので、そこから始めましょう。
DNSキャッシュの機能
インターネット上のすべてのウェブサイトやその他の場所には、私たちが思い浮かべる名前ではなく、実際には数値のアドレスが割り当てられていることを、すでにご存知かもしれません。例えば、ブラウザに「apple.com」と入力しても、実際のIPv4アドレスは17.253.144.10です。人間は数字の列や単語の列を記憶するのが得意ではないため、ドメインネームシステム(DNS)が開発され、これらのアドレスを覚えやすい名前に変換しました。
すべてのISPは、頻繁にアクセスされるサイトのアドレスのキャッシュを使用して、自社のDNSサーバー上の適切な場所への高速接続を確立し、ユーザーのコンピュータからのリクエストを受信すると、ウェブサイトの実際のアドレスをより迅速に検索します。全く同じ理由で、ほとんどのルーターも頻繁にアクセスされるサイトのアドレスの小さなキャッシュを保持しており、ユーザーのコンピュータも同様です。
Mac が ISP の DNS サーバーを待つよりも速くサイトの IP アドレスを取得できる場合、リクエストからサイトの提供までの「ルート」にある他の DNS サーバーからの検索遅延を回避して、直接そのサイトに移動します。
このプロセス全体は、高速接続ではわずか 10 分の 1 秒しかかかりませんが、最近アクセスした Web サイトに戻ると、これまでアクセスしたことのない Web サイトにアクセスした場合よりも常にページの読み込みが速いことに気付くでしょう。
これは、一度もアクセスしたことのないサイトの「検索」(サイト名から IP 番号への変換)がまだコンピュータにキャッシュされていない場合、ブラウザは実際のアドレスを見つけるために ISP の DNS サーバーにフォールバックするため、少し時間がかかります。そのサイトにアクセスするユーザーが非常に少ない場合は、さらに数秒かかることもあります。
インターネット接続の問題
接続の問題は、ISPのDNSサーバー自体に問題がある場合(家庭内のWi-Fi接続デバイスすべてに影響する可能性があります)、ルーターのDNSキャッシュが破損している場合、またはご自身のコンピューターのDNSキャッシュに問題がある場合などに発生することがあります。これは、キャッシュへの書き込みエラーが原因となる場合もあれば、ごく稀にマルウェアが原因となる場合もあります。
Wi-Fi接続を利用しているデバイスでウェブサイトにアクセスできない場合は、まず簡単な手順を試してください。ルーターを再起動し、影響を受けているデバイスを再起動して、接続の問題が解決するかどうかを確認してください。または、以下の方法もお試しください。
- プライベートリレーがオンになっている場合はオフにします
- システム環境設定 -> ネットワーク -> 詳細に移動します
- タブ内のDNS項目をクリックします。何か問題が発生した場合に備えて、最初に表示される数字をメモしておいてください。
- 代わりにCloudflareの1.1.1.1と1.0.0.1 DNSサーバーを追加してください
- [OK]をクリックします
コンピューターの選択リモート DNS サーバーを変更すると、接続の問題を解決できる場合もあります。
その後ウェブサイトへのアクセスが突然可能になった場合、問題はISPのDNSサーバーにあり、数時間以内に解決される可能性があります。1.1.1.1のアドレスを削除して再起動するだけで、ISPのサーバーを復元できます。
それでも問題が解決しない場合、特に頻繁にアクセスするサイトにアクセスできないのに、一度もアクセスしたことのないランダムなサイトにはアクセスできる場合、マシン上の DNS キャッシュをクリアすると解決する可能性があります。
ターミナル時間
Appleは、DNSキャッシュを「フラッシュ」するためのグラフィカルな方法や簡単な方法を提供していません。これは、実際に必要になる機会が稀であること、そしてターミナルを使用する場合と同様に、以下の手順を注意深く実行しないと、予期せぬ損害が発生するリスクがあるためです。手順は複雑ではなく、コマンドをコピー&ペーストすることで間違いを防ぐことができますが、ここまで読んでも実行したくないと感じた場合、またはEl Captainより前のサポートされていない古いバージョンのmacOSを使用している場合は、お近くの専門家に連絡してサポートを受けることをお勧めします。
- 開いているアプリケーションを最小化するのではなく、終了してください。
- 画面上部のメニューバーに「移動」メニューが表示されます。「移動」メニューの最後のオプションは「ユーティリティ」フォルダです。それを選択してください。
- そのフォルダの内容が表示されたウィンドウが開きます。ウィンドウの1つに「ターミナル」という名前が付いています。
- ダブルクリックして開きます
- これで、プレーンテキストが入ったウィンドウが表示され、その最後に短いユーザー名とカーソルが表示されます。
- ターミナルのコマンドは正確な構文を使用して入力する必要があるため、自分で入力するのではなく、次のコマンドをコピーして貼り付けることをお勧めします。
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
- 貼り付けたら、Enter/Returnキーを押します。
- Macのログインパスワードの入力を求められます。パスワードを入力しても、ターミナルには表示されません。ゆっくりと入力し、パスワードのスペルミスがないか確認してください。
- 次にもう一度ReturnキーまたはEnterキーを押します。
パスワードを入力すると、既存の DNS キャッシュはすぐに削除されます。
再度パスワードの入力を求められたり、エラーメッセージが表示されたりしなければ、コマンドは正常に実行されています。ターミナルウィンドウを閉じ、お好みのブラウザでウェブサイトにアクセスしてみてください。
以前より読み込みが少し遅くなるかもしれませんが、正常に読み込まれる場合は、DNSキャッシュをフラッシュすることで問題は解決しており、MacのDNSキャッシュは時間の経過とともに再構築されます。さあ、自分を褒めてあげましょう。