DNS
MacでDNSの名前解決ができない
DNSが失敗すると、Macはapple.comなどの名前をIPアドレスに変換できません。接続は生きていても、名前で開くサイトはすべて失敗します。
症状
- 多くのサイトで、ブラウザに「サーバが見つかりません」などのエラーが表示される。
- ターミナルのツールに「Could not resolve host」や「nodename nor servname provided」と表示される。
- IPアドレスを使うアプリは動くのに、名前では動かない。
- ネットワークを切り替えたり、VPNに接続したり、カスタムDNSサーバを設定したりしたあとに問題が起き始めた。
考えられる原因
- 接続がない。Macにインターネットへの正常な経路がないので、DNSの問い合わせが出ていけません。
- DNSサーバが間違っている、または到達できない。手動で入力したDNSサーバが動かなくなったり、このネットワークでブロックされていたりすることがあります。
- ルーターのDNSが失敗している。多くのネットワークでは、DNSはルーターに送られます。ルーターが応答しなくなると、すべてのデバイスで名前が解決できなくなります。
- VPN、プロファイル、フィルタがDNSを変更している。VPN、暗号化DNSのプロファイル、コンテンツフィルタは、問い合わせを別のサーバに送ることがあります。
- キャッシュに古い応答がある。Macは応答をしばらく保持します。サイトが移転したあとは、古い応答のせいで失敗することがあります。
確認方法
接続が正常か確認します。DNSを使わないように、IPアドレスにpingを送ります。
ping -c 3 1.1.1.1名前にpingを送ります。IPアドレスでは成功し、名前では失敗するなら、問題はDNSです。
ping -c 3 apple.commacOSのリゾルバに名前を問い合わせます。ほとんどのアプリと同じ経路を使います。
dscacheutil -q host -a name apple.com出力
ip_addressとipv6_addressの行。行がなければ、検索は失敗しています。macOSが今使っているDNS構成を表示します。最初のリゾルバがデフォルトです。
scutil --dnsWi-Fiサービスに手動で設定したDNSサーバを表示します。
networksetup -getdnsservers Wi-Fi出力IPアドレスの一覧、またはDNSサーバが設定されていないというメッセージ。後者の場合は、ネットワークがサーバを提供しています。
解決方法
手動で入力したDNSサーバを削除します。アップルメニュー>「システム設定」>「ネットワーク」を選択します。
ネットワークサービスをクリックし、「詳細」をクリックしてから「DNS」をクリックします。追加したサーバを1つずつ選択し、削除ボタンをクリックします。
ターミナルで消去することもできます。サーバのアドレスの代わりに
emptyという語を使います。networksetup -setdnsservers Wi-Fi empty管理者パスワードが必要です。
DNSキャッシュを消去します。MacでDNSキャッシュを消去するを参照してください。
sudo killall -HUP mDNSResponder管理者パスワードが必要です。
ルーターから新しいアドレスと新しいDNSサーバを取得します。MacでDHCPリースを更新するを参照してください。
テストのため、VPNを切断します。それで名前が解決できるようになったら、VPNのDNS設定を確認します。MacでDNSの問い合わせがVPNの外に出てしまうを参照してください。
すべてのデバイスでDNSが失敗する場合は、ルーターを再起動します。
Kilobatを使う場合
Kilobatは、DNSの検索を1回計測し、使われているリゾルバを一覧表示します。
dnsMilliseconds、dnsServers、captivePortalを確認します。kilobat diagnose --json1つのサイトやAPIについて、失敗しているレイヤーを見つけます。接続の前にDNSを確認します。
kilobat why api.example.comCLIは無料です。アプリでは、「ヘルス」タブにDNSサーバと検索時間が表示されます。1つのサイトやAPIに接続できない原因を見つけるを参照してください。
よくある質問
1.1.1.1へのpingは成功するのにサイトが開けないのはなぜですか?
IPアドレスへのpingはDNSを使いません。pingが成功して名前が失敗するなら、問題は接続ではなくDNSです。
アプリは失敗するのにdigは成功するのはなぜですか?
digは/etc/resolv.confにあるサーバに問い合わせます。アプリはmacOSのリゾルバを使い、リゾルバはVPNやドメインごとのルールも使えます。
ルーターはまたDNSサーバを提供してくれますか?
はい。ネットワーク設定のDNSリストが空なら、macOSはネットワークがDHCPで提供するサーバを使います。
出典
- Appleサポート:MacでDNS設定を変更する
- Appleサポート(アーカイブ):OS XでDNSキャッシュをリセットする
- scutil(8)、macOS 27.2に付属のmanページ
- dscacheutil(1)、macOS 27.2に付属のmanページ
- networksetup(8)、macOS 27.2に付属のmanページ
出典は2026年10月29日に確認しました。manページはmacOSに付属のものです。「ターミナル」でman <name>を実行すると開けます。