[Mac] DNSのキャッシュをクリアする方法

現象

nslookupコマンドではホスト名でIPアドレスが引けているのに、pingやssshでホスト名でアクセスしようとするとエラーメッセージが表示される。

% ssh hoge@lithium
ssh: Could not resolve hostname lithium: nodename nor servname provided, or not known
% ping lithium
ping: cannot resolve lithium: Unknown host

調べてみると、Macの場合はmDNSResponderなるものがDNSの情報をキャッシュしていて、sshコマンドなどはその値を使っているっぽい。以下のコマンドでキャッシュがクリアできるようです。

% sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

やった直後は調子良かったけど、しばらくしたらまたできなくなっていたので自分が立てたDNSサーバの問題かも。
hostsファイルに追加した方が動作安定しました。

動作確認環境

macOS 12.2.1

参考URL

0 件のコメント :

コメントを投稿