---
title: "MacのVPNでDNSリーク：使っているDNSサーバを確認する · Kilobatガイド"
url: "https://kilobat.app/ja/guides/vpn-dns-leak-mac.html"
description: "MacがDNSクエリをVPNのDNSサーバに送っているか、ローカルネットワークに送っているかを確認します。トンネルの外にDNSを送っている設定を見つけます。"
---

DNS

# MacでDNSの問い合わせがVPNの外に出てしまう

VPNがオンのときは、通常DNSクエリをVPNのサーバに送りたいはずです。設定によっては、代わりにローカルネットワークのサーバに送られます。

対象：「システム設定」の手順はmacOS 13 Ventura以降。ターミナルのコマンドは現在のすべてのmacOSバージョンで使えます。 · 確認日：2026年10月29日

## 症状

- VPNは接続されているのに、DNSテストでは地元のプロバイダのサーバが表示されます。
- VPNがオンなのに、サイトからはローカルネットワークのDNSサーバが見えています。
- 社内の名前は使えますが、ほかの名前にはローカルネットワークのDNSが使われます。

## 考えられる原因

- **Wi-FiやEthernetに手動で設定したDNSサーバ。**ネットワークサービスに入力したサーバが、VPNのサーバと並んで使われ続けることがあります。
- **スプリットトンネルのVPN。**VPNの中には、一部のドメインやネットワークだけをトンネル経由で送るものがあります。それ以外のクエリはローカルのサーバを使います。
- **暗号化DNSのプロファイルやDNSアプリ。**DNS設定のプロファイルや別のDNSアプリが、クエリを独自のサーバに送ることがあります。
- **VPNアプリの設定。**多くのVPNアプリには独自のDNSオプションがあります。macOSがどのサーバを受け取るかは、そのオプションで決まります。

## 確認方法

1. VPNを接続します。DNS構成を表示します。ほとんどの名前には、resolver #1がデフォルトで使われます。

   ```
   scutil --dns
   ```

   出力各リゾルバと、その`nameserver`アドレス、`if_index`インターフェイス、さらに一部には`domain`。
2. resolver #1のインターフェイスを調べます。VPNのインターフェイスには、多くの場合`utun`のような名前が付いています。

   ```
   ifconfig -l
   ```
3. 物理サービスに手動で設定したDNSサーバがないか確認します。

   ```
   networksetup -getdnsservers Wi-Fi
   ```
4. プロファイルがないか確認します。macOS 15以降では、アップルメニュー >「システム設定」>「一般」>「デバイス管理」と選択します。
5. macOS 13と14では、アップルメニュー>「システム設定」>「プライバシーとセキュリティ」>「プロファイル」を選択します。

## 解決方法

1. Wi-FiやEthernetに手動で設定したDNSサーバが不要なら、削除します。

   ```
   networksetup -setdnsservers Wi-Fi empty
   ```

   管理者パスワードが必要です。
2. VPNアプリの設定を開きます。VPNのDNSを使うオプションがあれば、オンにします。
3. 不要なDNSプロファイルを削除します。「デバイス管理」または「プロファイル」でそれを選択し、削除ボタンをクリックします。
4. VPNを切断して、もう一度接続します。もう一度`scutil --dns`を実行して比べます。
5. トンネルでどのDNSサーバを使うべきか、VPNプロバイダや管理者に問い合わせます。

## Kilobatを使う場合

1. Kilobatは、VPNインターフェイスを物理インターフェイスと並べて表示します。

   ```
   kilobat interfaces --json
   ```
2. プライベートな名前の場合、`why`はどのVPNリゾルバに問い合わせたか、応答があったかを示します。直接の経路とトンネルの比較も行います。

   ```
   kilobat why intranet.corp.example
   ```

## よくある質問

**VPNは常にすべてのDNSを処理しますか？**

いいえ。それはVPNが決めます。スプリットトンネルのVPNは、一部のドメインだけを自分のDNSサーバに送ることがあります。

**リゾルバが複数表示されるのはなぜですか？**

macOSは多くのリゾルバを使えます。`domain`行のあるリゾルバは、そのドメインにだけ応答します。scutilのmanページで説明されています。

## 出典

- scutil(8)、macOS 27.2に付属のmanページ
- resolver(5)、macOS 27.2に付属のmanページ
- [Appleサポート：MacでDNS設定を変更する](https://support.apple.com/guide/mac-help/change-dns-settings-on-mac-mh14127/mac)
- [Appleサポート：Macで使用するネットワークサービスの順序を変更する](https://support.apple.com/guide/mac-help/change-order-network-services-mac-mchlp2711/mac)
- [Appleサポート：構成プロファイルを使ってMacコンピュータの設定を標準化する](https://support.apple.com/guide/mac-help/configuration-profiles-standardize-settings-mh35561/mac)

出典は2026年10月29日に確認しました。manページはmacOSに付属のものです。「ターミナル」で`man <name>`を実行すると開けます。

## 関連ガイド

- [VPN接続中に社内の名前が解決されない](https://kilobat.app/ja/guides/vpn-split-dns-internal-names.html): macOSは、特定のドメインへの問い合わせを特定のDNSサーバに、それ以外を別のサーバに送ることができます。
- [Macで暗号化DNSを使う](https://kilobat.app/ja/guides/encrypted-dns-mac.html): 通常のDNSクエリは暗号化されていません。
- [MacでVPNに接続しているのにインターネットに接続できない](https://kilobat.app/ja/guides/vpn-connected-no-internet.html): VPNは通信をトンネル経由で送ります。
- [MacでDNSの名前解決ができない](https://kilobat.app/ja/guides/dns-server-not-found.html): DNSが失敗すると、Macはapple.comなどの名前をIPアドレスに変換できません。
