OS X Yosemite で discoveryutil を使用して DNS キャッシュをフラッシュする方法
目次:
- OS X Yosemite 10.10.4 および OS X 10.10.5 で DNS キャッシュをクリアする
- OS X Yosemite (10.10、10.10.1、10.10.2、10.10.3)でDNSキャッシュをクリアする
一部の Mac ユーザーは、OS X の DNS キャッシュをフラッシュして、ネーム サーバーを適切に解決したり、DNS アドレスの変更を個々のコンピュータに認識させたりする必要がある場合があります。これは、システム管理者、ネットワーク管理者、および Web 開発者にとって特に重要ですが、ユーザーが /etc/hosts ファイルを変更し、その変更が必要な場合など、他のユーザーも DNS キャッシュをダンプしてリセットする必要がある場合があります。 Mac を再起動せずに有効にします。
長年の Mac ユーザーは、Mac OS X のほぼすべてのバージョンで DNS キャッシュのリセットが変更されたことを知っているでしょう。OS X Yosemite も例外ではありません。再び。とにかく、Yosemite での DNS キャッシュのフラッシュは端末コマンドのままですが、使用している OS の正確なリリースによって若干異なり、実際にはマルチキャスト DNS またはユニキャスト DNS、またはその両方をクリアできます。 Mac 上のすべての DNS キャッシュをリセットしようとしている場合は、おそらく両方をクリアすることをお勧めします。
OS X Yosemite 10.10.4 および OS X 10.10.5 で DNS キャッシュをクリアする
OS X 10.10.4 から、10.11 を含む 10.10.5 に移行して、Apple は discoveryd を捨てて、mDNSResponder に置き換えました (というか、元に戻しました)。したがって、OS X Yosemite 10.10.4、10.11 El Capitan、およびおそらくそれ以降で DNS キャッシュをクリアするには、コマンド文字列は次のようになります:
sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder;キャッシュがフラッシュされたと言う
このコマンドは、OS X 10.10.4+ のすべての DNS キャッシュをフラッシュします。
長年の Mac ユーザーは、コマンド文字列が基本的に Yosemite より前のリリースで機能していたものであることを思い出すかもしれません。そうは言っても、10.10.4 より前の OS X Yosemite の以前のバージョンでは、以下で説明する別のコマンド文字列が使用されます。
OS X Yosemite (10.10、10.10.1、10.10.2、10.10.3)でDNSキャッシュをクリアする
ターミナルを使用してキャッシュをリセットする必要があります。ターミナル アプリは /Applications/Utilities/ で見つけるか、Spotlight で起動します。最新バージョンの OS X ですべての DNS キャッシュを完全にクリアするには、2 つの異なるコマンドで MDNS (マルチキャスト DNS) と UDNS (ユニキャスト DNS) の両方をターゲットにします。
MDNSキャッシュをクリアする
sudo discoveryutil mdnsflushcache
Return キーを押して、要求されたら管理者パスワードを入力します。
UDNSキャッシュをクリアする
sudo discoveryutil udnsflushcaches
もう一度、Return キーを押して、要求されたら管理者パスワードを入力します。後者のコマンドでは caches が複数形であることに注意してください。これは微妙ですが重要な構文の違いです。
OS X Yosemite のすべての DNS キャッシュをフラッシュしてリセットする
.sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;フラッシュしたと言う
.自分のニーズに合わせてどちらか一方のみをクリアする必要がある可能性は十分にあります。
疑問に思っている方のために説明すると、OS X Yosemite は mDNSResponder を廃止したため、以前のバージョンの Mac OS X のように DNS キャッシュを更新するために mDNSResponder プロセスを強制終了する必要はありません。
OS X Yosemite で DNS キャッシュの詳細を確認する
DNSを変更している、または変更しようとしていて、現在キャッシュされているものの詳細を確認したい場合は、次のコマンドを使用できます:
UDNSキャッシュ統計を取得する:
sudo discoveryutil udnscachestats
マルチキャスト DNS キャッシュに関する詳細は、次のコマンドでも取得できます:
sudo discoveryutil mdnscachestats
これらは両方とも、キャッシュされている DNS エントリの数に関する詳細を提供し、次のようなレポートを提供します:
UDNS キャッシュ統計: 1750 件中 962 件をキャッシュ
flushcache のバリエーションを実行する前と後にこれらのコマンドを実行すると、次のようにエントリ キャッシュを 0 にリセットする必要があることがわかります:
MDNS キャッシュ統計: lo0: 2000 のキャッシュ 0
変更されたかどうかはどうやってわかりますか?
キャッシュをフラッシュした後、ネームサーバーまたは IP が実際に変更されたかどうかを確認したい場合は、次のように「dig」コマンドを URL とともに使用できます:
dig osxdaily.com
dig は nslookup に似ていますが、出力が改善され、クエリ時間、ドメインへのアクセスに使用される DNS サーバーの設定、タイムスタンプなどの詳細が含まれている点が異なります。ネームサーバーの問題をトラブルシューティングするときに役立ちます。ちなみに、このクエリの時間が遅いと表示される場合は、namebench などのツールを使用して、より高速な DNS サーバー (Google DNS や OpenDNS など) を見つける必要があります。
OS X の最新バージョンの別の DNS キャッシュ トリックを知っていますか?コメントでお知らせください。