Web サイトで作業している場合、特にレコードの編集後やホストの変更後に、コンピューターの DNS キャッシュをリセットする必要がある場合があります。 Windows では専用のコマンドを使用して DNS キャッシュをフラッシュする のは簡単ですが、Mac ユーザーは少しの回避策を使用する必要があります。
Mac の DNS キャッシュをクリアする
Mac 上の DNS キャッシュをクリアするには、ターミナルを開きます。このターミナルは、[アプリケーション] > [ユーティリティ] にあるか、Spotlight で検索して見つけることができ、次のコマンドを実行します。
sudo killall -HUP mDNSResponder
パスワードを要求されたら入力します。
では、このコマンドは実際に何をするのでしょうか?ここで何が起こっているのかというと、システムをだましてキャッシュをフラッシュさせているようなものです。ウィキペディアでは次のように説明されています。
SIGHUP シグナルは、制御端末が閉じているときにプロセスに送信されます。これは元々、シリアル回線の切断 (ハングアップ) をプロセスに通知するために設計されました。最新のシステムでは、この信号は通常、制御している擬似または仮想端末が閉じられたことを意味します。多くのデーモンは、このシグナルを受信すると終了するのではなく、設定ファイルをリロードしてログファイルを再度開きます。 nohup はコマンドにシグナルを無視させるコマンドです。
もちろん、残りの部分をすべて知る必要はありません。しかし、今はそうなります。
この手順については、Web 上に矛盾する情報がたくさんあります。たとえば、一部のサイトでは、High Sierra ではこれより多くのコマンドを実行する必要があると主張していますが、他のサイトではこのコマンドが不必要に長くなっています。ただし、私たちが知る限り、実際に必要なのは上記のコマンドだけです。作業内容を確認する方法は次のとおりです。
DNSが実際にリセットされているかどうかを確認する
DNS リセットが実際に機能したかどうかわからない場合は、キャッシュをフラッシュする前に Web ブラウザを閉じると状況によっては解決することがありますが、それがうまくいかない場合は、2 つの方法でキャッシュが空であることをすぐに確認できます。
1 つ目はサイト固有です。ターミナルで、
dig
と入力し、その後にサイトの URL を入力します。例えば:
.com を掘る
結果の「回答セクション」に、リストされているサイトに関してコンピュータが認識している IP アドレスが表示されます。
新しい IP アドレスが表示されない場合は、 Mac の DNS 設定を変更し 、キャッシュを再度フラッシュすることを検討してください。
よりグローバルな (サイト固有ではない) 方法として、コンソールでキャッシュがリセットされていることを確認することもできます。コンソールは、[アプリケーション] > [ユーティリティ] で見つけるか、Spotlight を使用して確認できます。左側のパネルでシステムが強調表示されている状態で、検索ボックスに「mDNSResponder」と入力して Enter キーを押し、最初のクエリの横に「キャッシュ サイズ」と入力して、もう一度 Enter キーを押します。このような:
ここで、コンソール ウィンドウが開いたままの状態で、ターミナル ウィンドウに戻り、次のコマンドを実行します。
sudo killall -INFO mDNSResponder
コンソール ウィンドウで DNS キャッシュ サイズが強調表示されるはずです。次に、次のコマンドを実行します。
sudo killall -HUP mDNSResponder
次に、このコマンドをもう一度実行します。
sudo killall -INFO mDNSResponder
コンソール ウィンドウにキャッシュ サイズの変更が表示されるはずです。上のスクリーンショットでは、コマンドの発行後にキャッシュ サイズが大幅に変化したことがわかります。





