DNS
MacでDNSキャッシュを消去する
macOSはDNSの応答をしばらく保存しています。キャッシュを消去すると、次の検索で改めてDNSサーバに問い合わせます。
症状
- サイトが新しいサーバに移ったのに、Macが古いアドレスにアクセスし続ける。
/etc/hostsやDNSレコードへの変更が反映されない。- ネットワークが復旧したのに「サーバが見つかりません」エラーが消えない。
考えられる原因
- キャッシュされた応答。mDNSResponderはDNSの応答をキャッシュしています。キャッシュに古くなった応答が残っていることがあります。
- ブラウザのキャッシュ。独自のDNSキャッシュを持つブラウザもあります。macOSのキャッシュを消去しても、これは消えません。
- DNSサーバのキャッシュ。ルーターやプロバイダも応答を保存しています。Mac側でキャッシュを消去しても、これは消えません。
確認方法
macOSのリゾルバで名前を検索し、表示されたアドレスを予想しているアドレスと比べます。
dscacheutil -q host -a name example.commacOSが使っているDNSサーバを表示します。
scutil --dns
解決方法
ターミナルを開き、ディレクトリサービスのキャッシュを消去します。
sudo dscacheutil -flushcache管理者パスワードが必要です。
mDNSResponderにキャッシュの消去を指示します。AppleはOS X 10.10.4以降向けにこのコマンドを案内しています。
sudo killall -HUP mDNSResponder管理者パスワードが必要です。
ターミナルに求められたらパスワードを入力します。コマンドが成功しても、メッセージは表示されません。
ブラウザが独自の古い応答を使わないように、ブラウザを終了して開き直します。
もう一度名前を検索します。古いアドレスが返ってくる場合は、DNSサーバにまだ古い情報が残っています。
Kilobatを使う場合
CLIは同じ2つのコマンドを実行します。macOSが管理者パスワードを求めます。
kilobat dns flushアプリでは「ヘルス」タブを開き、DNSパネルの「キャッシュを消去…」をクリックします。
MCPツール
set_dnsでproviderをflushに設定しても同じ動作になります。その場合、エージェントには先にユーザに確認するよう伝えます。
よくある質問
キャッシュを消去するとDNSは速くなりますか?
いいえ。古い応答が削除されるだけです。次の検索では改めてDNSサーバに問い合わせるため、少し遅くなることがあります。
DNSキャッシュを消去しても安全ですか?
はい。アプリが名前を検索するにつれて、macOSがキャッシュを埋め直します。dscacheutilのmanページには、消去は必要なときだけ使うよう書かれています。
Macを再起動する必要はありますか?
いいえ。コマンドはすぐに反映されます。
出典
- Appleサポート(アーカイブ):OS XでDNSキャッシュをリセットする
- dscacheutil(1)、macOS 27.2に付属のmanページ
- mDNSResponder(8)、macOS 27.2に付属のmanページ
出典は2026年10月29日に確認しました。manページはmacOSに付属のものです。「ターミナル」でman <name>を実行すると開けます。