---
title: "Mac 上的 VPN DNS 泄漏：检查你在用哪个 DNS 服务器 · Kilobat 指南"
url: "https://kilobat.app/zh-hans/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 或以太网上手动设置的 DNS 服务器。**为某个网络服务手动输入的服务器，可能会与 VPN 的服务器同时使用。
- **分离隧道 VPN。**有些 VPN 只让部分域名或网络走隧道，其他查询使用本地服务器。
- **加密 DNS 描述文件或 DNS App。**DNS 设置描述文件或其他 DNS App 可能会把查询发往它自己的服务器。
- **VPN App 的设置。**许多 VPN App 有自己的 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 或以太网上手动设置的 DNS 服务器。

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

   需要管理员密码。
2. 打开 VPN App 的设置。如果有使用 VPN DNS 的选项，将其打开。
3. 移除不需要的 DNS 描述文件。在“设备管理”或“描述文件”中选择它，然后点按移除按钮。
4. 断开 VPN 后重新连接。再次运行 `scutil --dns` 并比较结果。
5. 向 VPN 提供商或管理员询问隧道应使用哪些 DNS 服务器。

## 使用 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/zh-hans/guides/vpn-split-dns-internal-names.html): macOS 可以把某个域名的查询发给一台 DNS 服务器，把其他查询发给另一台。
- [在 Mac 上使用加密 DNS](https://kilobat.app/zh-hans/guides/encrypted-dns-mac.html): 普通 DNS 查询不加密。
- [Mac 上 VPN 已连接但无法上网](https://kilobat.app/zh-hans/guides/vpn-connected-no-internet.html): VPN 会通过隧道发送流量。
- [Mac 上 DNS 无法解析](https://kilobat.app/zh-hans/guides/dns-server-not-found.html): DNS 出故障时，Mac 无法把 apple.com 这样的名称转换成 IP 地址。
