macOS、El Capitan、またはYosemiteでDNSキャッシュをフラッシュする方法

ネットワーク管理者、Web開発者、またはMacのシステム管理者である場合、いくつかの理由でmacOSでDNSキャッシュをフラッシュする必要がある場合があります。 特に、ネームサーバーを正しく解決する場合、またはDNSアドレスの変更を個々のシステムで検出する場合。

上記の理由に加えて、 /etc/ hostsファイルを変更し、Macを再起動することなく変更を有効にする必要がある場合は、DNSキャッシュをダンプしてリセットする必要がある場合があります。

MacでDNSキャッシュをクリアする方法

  • DNSキャッシュのリセットは、Mac OS Xの各バージョンで同じではありません。長期間Macユーザーである場合、OS X Yosemiteでのこのプロセスは他の古いバージョンと似ていることがあります。 これはおそらく、mDNSResponderに代わって発見され、mDNSResponderに再び切り替えられたことが原因です。
  • 変更にもかかわらず、DNSキャッシュのフラッシュはYosemiteの端末コマンドのままですが、使用しているOSの正確なバージョンによって少し異なります。
  • ユニキャストDNSまたはマルチキャストDNS、あるいはその両方をクリアできます。 MacですべてのDNSキャッシュをリセットしようとしている場合は、適切な手段として両方をクリアすることを検討する必要があります。

macOS SierraまたはmacOS High SierraのDNSキャッシュをフラッシュする

macOS SierraおよびmacOS High SierraのDNSキャッシュをクリアするには、新しいコマンドを使用する必要があります。 このクイックガイドに進んで、その方法を確認してください。

Mac OS X YosemiteまたはEl CapitanでDNSキャッシュをクリアする

OS X 10.10.4以降、10.11を含むAppleは、discoverydを破棄し、mDNSResponderに置き換えました。 その結果、OS X YosemiteおよびMac OS X El Capitan、およびおそらく将来のリリースでDNSキャッシュをフラッシュするには、次のコマンド文字列を使用します。

sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder; say cache flushed

上記のコマンドを使用すると、OS X 10.10.4以降のすべてのDNSキャッシュがクリアされます。

Macユーザーとして長い間、このコマンド文字列がYosemite以前のリリースで機能していたことを覚えているかもしれません。 ただし、10.10.4より前のOS X Yosemiteのリリースでは、以下で説明するように異なるコマンド文字列を使用します。

キャッシュをリセットするには、ターミナルを使用する必要があります。 / Applications / Utilities /でターミナルアプリを見つけるか、Spotlightで開きます。 2つの異なるコマンドでUDNS(ユニキャストDNS)とMDNS(マルチキャストDNS)の両方をターゲットにして、最新バージョンのOS XのすべてのDNSキャッシュを完全にフラッシュします。

MDNSキャッシュをクリア

  • OS X Yosemite以降: sudo killall -HUP mDNSResponder
  • OS X v10.10からv10.10.3: sudo discoveryutil mdnsflushcache

Returnキーを押して、求められたら管理者パスワードを入力します。

UDNSキャッシュをクリア

sudo discoveryutil udnsflushcaches

もう1回、要求されたらReturnキーを押して管理者パスワードを入力します。 2番目のコマンドでは、キャッシュは複数ですが、小さいながらも重要な構文のバリエーションです。

OS X YosemiteですべてのDNSキャッシュをフラッシュしてリセットする方法

必要に応じて、2つのコマンドを連結することもできます。 次のコマンドは、キャッシュをクリアすると大声でアナウンスします。

sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed

MDNSキャッシュとUDNSキャッシュは間違いなく異なりますが、OS X Yosemiteで機能するDNSキャッシュを本当にクリアするには両方のコマンドが必要であることがわかります。 独自の要件について、どちらか一方のみをクリアする必要がある場合は、完全に可能です。

OS X YosemiteがmDNSResponderから移行したことは注目に値します。 したがって、Mac OS Xの以前のバージョンのようにDNSキャッシュを更新するためにmDNSResponderプロセスを強制終了する必要はありません。

Mavericks、Mountain Lion、Lionなどの以前のバージョンのOS Xを使用している場合、DNSをフラッシュするコマンドは異なります。 以下では、以前のバージョンのMac OS Xのターミナルコマンドについて説明しました。

OS X Mavericks、Mountain Lion、およびLionでDNSキャッシュをフラッシュする方法

以下のコマンドを使用すると、OS X v10.9.5以前でDNSキャッシュをリセットできます。

sudo killall -HUP mDNSResponder

Mac OS X Snow Leopardを使用している場合、同じ端末のターミナルコマンドは以下のとおりです。チェックしてください。

Mac OS X Snow LeopardでDNSキャッシュをフラッシュする方法

OS X v10.6からv10.6.8のDNSキャッシュをリセットするには、以下のコマンドをコピーして貼り付けます。

sudo dscacheutil -flushcache

OS X El CapitanまたはYosemiteでDNSキャッシュの詳細を確認する方法

DNSの変更中に、その時点で何がキャッシュされているかを知りたい場合は、次のコマンドを使用できます。

UDNSキャッシュ統計を取得する

sudo discoveryutil udnscachestats

さらに、次のコマンドを使用して、マルチキャストDNSキャッシュに関する詳細を回復できます。

sudo discoveryutil mdnscachestats

上記のコマンドは両方とも、キャッシュされたDNSエントリの数などの情報を提供し、次の方法で詳細のアカウントを提供します。

UDNS Cache Stats: Cached 1250 of 1900

flushcacheバリエーションを実行する前後にコマンドを実行すると、次のようにコマンドを0エントリキャッシュにリセットする必要があることがわかります。

MDNS Cache Stats: lo0: Cached 6 of 7500

変更が発生したかどうかをどのように知っていますか

キャッシュをクリアした後、IPサーバーまたはネームサーバーが実際に変更されたかどうかを知りたい場合は、次のURLで「dig」コマンドを使用します。

dig igeeksblog.com

digとnslookupは非常に似ていますが、追加情報を含めることでdigがより良い結果を提供することを除いて、似ています。 ドメインへのアクセスに使用されるDNSサーバーのセット、タイムスタンプ、含まれるクエリ時間などの詳細を提供します。 これらの詳細はすべて、ネームサーバーの問題のトラブルシューティングに役立ちます。 結果のクエリ時間が遅い場合は、namebenchというツールを使用して、より高速なDNSサーバー(一般的にOpenDNSまたはGoogle DNS)を取得する必要があります。

それはほとんどそれです!

まとめ

うまくいけば、DNSキャッシュを削除することは、もはや大したことではないでしょう。 質問がありますか? 以下のコメントでそれを投げます。

これらの投稿もご覧ください:

  • iMac Proでセキュアブートを使用する方法
  • MacおよびWindows用DearMob iPhoneマネージャー
  • Macで購入したアプリを非表示にする方法

このガイドは役に立ちましたか? 私たちのアプリをダウンロードして、Facebook、Twitter、Telegramを介して連絡を取り合い、そのような記事を読んでください。