MacOS で DNS キャッシュを削除するコマンドを解説します
MacOS のバージョンによって異なります。
先にコマンドを記述すると(詳しいやり方は後ほど解説します、先にコマンドを知りたい方用)
- 10.10.4 以降(Catalina、Mojave、High Sierra、Sierra、El Capitan、Yosemite)
sudo killall -HUP mDNSResponder
- 10.10 〜 10.10.3(Yosemite)
sudo discoveryutil mdnsflushcache
- 10.7 〜 10.9.5(Mavericks、Mountain Lion、Lion)
sudo killall -HUP mDNSResponder
- 10.6 〜 10.6.8(Snow Leopard)
sudo dscacheutil -flushcache
※ MacOS のバージョン確認は、「ツールバー」の「リンゴのマーク」クリック、「このMacについて」を選択、「バージョン」の項目に記載されています。
具体的なキャッシュクリア方法
- 「Finder」を開きます。
- 「アプリケーション」を表示します。
- 一覧から「ユーティリティ」フォルダを選択します。
- 選択したフォルダ内の「ターミナル.app」をダブルクリックして起動します。
- 「xxx$ 」が表示されることを確認します。
- 利用している 上記の MacOS のコマンドをマウスでコピーします。
例、10.15.3 の場合は sudo killall -HUP mDNSResponder
バージョンの確認方法は、「ツールバー」の「リンゴのマーク」クリック、「このMacについて」を選択、「バージョン」の項目に記載されています。 - 再び「ターミナル.app」のプロンプトに上記のコマンドを貼り付け、リターンキーを押します。
- 「Password : 」が表示されますので、パスワードを入力します。
(個人で利用しているMacの場合、ログイン時のパスワードで大丈夫です) - 再び「xxx$ 」が表示されたら完了です。
以上でクリア完了です。
それでも新しいIPへ変わらない場合はブラウザのキャッシュなど別のキャッシュをクリアしてみましょう。
Dnsキャッシュ以外でもアプリなどでキャッシュが保持されることがあります。
ちなみに、Chrome で上記キャッシュのクリア後は全て閉じると直ぐに新しい IP へ更新されます。
別の原因を探してみましょう。
利用例
ドメインに対するIPアドレスは実行した Mac 内にキャッシュされます。
利用状況としては「DNS を変更後、ブラウザで変更後の IP が設定されたサーバへ接続ができるかを確認する」ではないでしょうか。
ただ、キャッシュをクリアしないと、古い情報が優先され、古い IP のサーバーへ接続されてしまいます。
そのような時はDNSキャッシュをクリアしましょう。