Apps

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

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

ターミナル経由で OS X El Capitan の DNS キャッシュをフラッシュするMacでDNS設定を変更しても変更が反映されない場合や、特定のネームサーバーアドレスが意図したとおりに解決されない場合、DNSキャッシュをフラッシュすることですぐに解決できることがよくあります。OS X El Capitan(10.11以降)では、コマンドラインから簡単にDNSキャッシュをフラッシュできますが、Mac OS Xを長く使っている方なら、以前のMac OSとは構文が異なることに気付くでしょう。これは、AppleがmDNSResponderを一時的にdiscoverydに切り替えた後、再び採用したためです。そのため、dscacheutilコマンドはMacユーザーにとって馴染みのあるコマンドかもしれません。

OS X 10.11以降でDNSキャッシュをフラッシュする

DNS キャッシュをクリアするこの方法は、バージョン 10.11 以降の OS X El Capitan を実行しているすべての Mac に適用されます。

  1. /Applications/Utilities/ または Spotlight にあるターミナルアプリケーションを開きます。
  2. コマンドプロンプトで次の構文を入力し、Enter キーを押します。
  3. sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder; say DNS cache flushed 

  4. DNSキャッシュのクリアを実行するには、要求された場合(sudoによって要求されます)、管理者パスワードを入力します。
  5. 「DNSキャッシュがフラッシュされました」というメッセージが聞こえたら、コマンドが成功したことがわかります*

OS X EL CapitanのDNSキャッシュをフラッシュする

これで完了です。DNSキャッシュは消去されます。変更内容をインターネットに接続されたアプリに反映させるには、WebブラウザなどDNSを使用しているアプリを終了して再起動することをお勧めします。

ローカル DNS キャッシュのクリアは、Web 開発者、ネットワーク管理者、ホストを使用した正確な詳細検索の実行、ホスト ファイルを編集するユーザー、サーバーの高速化やその他の目的でドメイン名設定を調整するユーザーなどによって一般的に要求されます。

DNS キャッシュを頻繁にフラッシュする予定の場合は、適切な .profile に単純なエイリアスを配置しておくと、将来の使用時に便利です。

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

ユーザーは say 部分を切り取ってコマンドを複数の部分に分割することもできますが、ワンライナーが最も簡単な方法である場合がよくあります。

sudo dscacheutil -flushcache

次に、mDNSResponder killall コマンドを個別に開始します。

sudo killall -HUP mDNSResponder

この方法を採用すると、コマンドが成功したことを示す聴覚的なフィードバックは提供されません。

これは最新バージョンのOS Xに当てはまりますが、Yosemite以前のバージョンをお使いの方は、異なるコマンド文字列で同じ効果を得るための手順をこちらでご覧いただけます。また、MavericksやSnow Leopardといった古いMac OS Xリリース、あるいはTiger、Panther、Jaguarといった古くなったバージョンをお使いの方にも同様の手順でご利用いただけます。モバイル端末では、iPhoneやiPadユーザーも簡単な操作でiOSのDNSキャッシュを素早くフラッシュできます。