Apps

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

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

Mac OS XでDNSキャッシュをフラッシュするシステム管理者でも、Web 開発者でも、あるいはその中間の人でも、サーバー側の問題を解決するために、あるいは特定の構成をテストするために、時々 DNS キャッシュをフラッシュする必要があるでしょう。

Mac OS XでDNSキャッシュをフラッシュするのは実はとても簡単ですが、実際には複数の異なるコマンドを使用する必要があり、Mac OS Xのバージョンによってコマンドが異なります。MacOS Sierra 10.12、10.11、10.13、OS X 10.10、OS X 10.9、そして10.4まで、お使いのMac OS Xのバージョンに関係なく、この手順を網羅しています。お使いのOS Xのバージョンを確認し、ターミナルを開いて、以下の適切な手順に従ってください。


これらのコマンドはすべて、ターミナルアプリケーション(Mac OS Xのすべてのバージョンで/アプリケーション/ユーティリティ/にあります)を使ってコマンドラインに入力する必要があることに注意してください。まずターミナルアプリケーションを起動し、必要に応じてコマンドをコピー&ペーストしてください。

macOS Monterey 12、macOS Big Sur 11 で DNS キャッシュをフラッシュする

macOS Monterey、Big Sur 以降では、次のコマンドライン文字列を使用して DNS キャッシュをフラッシュできます。

sudo killall -HUP mDNSResponder

MacOS 10.12、10.11以降でDNSキャッシュをフラッシュする

Sierra、El Capitan、およびそれ以降の Mac OS リリースの場合:

sudo killall -HUP mDNSResponder

OS X 10.10 Yosemite で DNS キャッシュをクリアする

Yosemite をお使いですか? OS X Yosemite で DNS キャッシュをクリアする方法が再度変更され、MDNS と UDNS に分割されるか、または以下で使用するように統合されるようになりました。必要なコマンドは次のとおりです。

sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed

興味があれば、OS X Yosemite での DNS キャッシュのリセットとフラッシュに関する詳細をここで読むことができます。

OS X 10.9 MavericksでDNSをフラッシュする

10.9 で DNS キャッシュをフラッシュする方法は次のとおりです。

dscacheutil -flushcache;sudo killall -HUP mDNSResponder

このタスクを完了するには、管理者パスワードを入力する必要があります。お気づきかもしれませんが、このタスクはmDNSResponderの強制終了と標準のdscacheutilの実行を組み合わせたもので、まずキャッシュをフラッシュし、次にOS XのDNS処理をリロードして変更を有効にするという2段階のプロセスになっています。

OS X Lion (10.7) および OS X Mountain Lion (10.8) での DNS キャッシュのフラッシュ

ターミナルを起動し、以下のコマンドを入力します。管理者パスワードの入力が必要です。dscacheutil は
sudo killall -HUP mDNSResponder
10.7と10.8でも利用可能ですが、DNSキャッシュをクリアする正式な方法はmDNSResponderを強制終了することです。アクティビティモニターでもこのプロセスの実行状況を確認できます。

DNSキャッシュを頻繁にフラッシュする必要がある場合、.bash_profileまたはお好みのシェルのプロファイルに、そのコマンド文字列のエイリアスを設定すると便利です。キャッシュをフラッシュするためのシンプルなbashエイリアスは以下のようになります。

alias flushdns='dscacheutil -flushcache;sudo killall -HUP mDNSResponder'

これを .bash_profile に保存し、「flushdns」と入力すると、将来完全なコマンド文字列を使用する必要がなくなります。

Mac OS X 10.5、Mac OS X 10.6 で DNS キャッシュをフラッシュする

ターミナルを起動し、以下のコマンドを実行してください。
dscacheutil -flushcache
これで完了です。DNSがフラッシュされました。ちなみに、dscacheutilは全体的に興味深いので、試してみる価値があります。統計情報を表示するには、代わりに-statisticsフラグを試してみてください。

Mac OS X 10.4 Tiger、10.3 で DNS をフラッシュする

ターミナルに次のコマンドを入力します。
lookupd -flushcache

これで完了です。これでDNS設定は意図したとおりになっているはずです。http、ping、nslookup、traceroute、curlなど、状況に応じて適切なネットワークツールを使って簡単に確認できます。

何かがうまく動作せず、DNSが変更されていないように見える場合は、お使いのOS Xのバージョンを確認し、最新バージョンの適切なコマンドを使用してください。それでも問題が解決しない場合は、別のマシン(できれば別のネットワーク(携帯電話など))で試して、リモートサーバーの問題ではないことを確認してください。