---
title: "Mac VPN 分割 DNS：內部名稱無法解析 · Kilobat 指南"
url: "https://kilobat.app/zh-hant/guides/vpn-split-dns-internal-names.html"
description: "在 Mac 上開著 VPN 時，intranet.corp.example 之類的公司主機連不上。檢查各網域的解析器，並用 /etc/resolver 加入一個。"
---

DNS

# 連上 VPN 後內部名稱無法解析

macOS 可以把某個網域的查詢送到一台 DNS 伺服器，其他查詢則送到另一台。VPN 用這種分割 DNS 來處理內部名稱。

適用於：所有目前的 macOS 版本。 · 檢查日期：2026年10月29日

## 症狀

- `intranet.corp.example` 之類的內部名稱失敗，但公開網站可以用。
- 內部 IP 位址可以用，它的名稱卻不行。
- `dig` 或 `nslookup` 失敗，但瀏覽器可以用，或者剛好相反。

## 可能原因

- **VPN 沒有為該網域加入解析器。**VPN 必須告訴 macOS 哪些網域要送到它的 DNS 伺服器。
- **略過 macOS 規則的測試工具。**`dig` 使用 `/etc/resolv.conf` 中的伺服器，而不是 App 使用的各網域解析器。
- **手動設定的 DNS 伺服器。**在 Wi-Fi 上手動設定的 DNS 伺服器不認得內部名稱。
- **沒有搜尋網域的短名稱。**`intranet` 之類的短名稱需要搜尋網域，才能變成完整名稱。

## 如何檢查

1. 連上 VPN。顯示所有解析器。尋找有一行 `domain` 對應你公司網域的解析器。

   ```
   scutil --dns
   ```
2. 透過 macOS 解析器查詢名稱，而不是透過 `dig`。

   ```
   dscacheutil -q host -a name intranet.corp.example
   ```
3. 顯示該服務的搜尋網域。

   ```
   networksetup -getsearchdomains Wi-Fi
   ```

## 如何修正

1. 詢問你的管理者，VPN 應該使用哪個網域和 DNS 伺服器。
2. 如果存放各網域解析器的檔案夾不存在，就建立它。

   ```
   sudo mkdir -p /etc/resolver
   ```

   需要管理者密碼。
3. 建立一個以該網域命名的檔案。每台伺服器在檔案中寫一行 `nameserver`。

   ```
   sudo nano /etc/resolver/corp.example
   ```

   需要管理者密碼。
4. 在一行中輸入內部 DNS 伺服器的位址。

   ```
   nameserver 10.0.0.53
   ```
5. 儲存檔案。執行 `scutil --dns`，尋找新的網域。
6. 使用完整名稱，或在「系統設定」>「網路」> 該服務 >「詳細資訊」>「DNS」中加入搜尋網域。
7. 不再需要時，請移除該檔案。

   ```
   sudo rm /etc/resolver/corp.example
   ```

   需要管理者密碼。

## 使用 Kilobat

1. 對於私人名稱，`why` 會說明查詢送到了哪個 VPN 解析器，以及該解析器是否有回應。

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

## 常見問題

**為什麼瀏覽器可以用，dig 卻失敗？**

`dig` 會詢問 `/etc/resolv.conf` 中的伺服器。瀏覽器使用的是 macOS 解析器，它也會使用各網域解析器。

**可以編輯 /etc/resolv.conf 嗎？**

不行。resolver 的 man 頁面說明，macOS 會自動維護這個檔案。請使用「網路」設定或 `/etc/resolver`。

## 資料來源

- resolver(5)，macOS 27.2 內建的 man 頁面
- scutil(8)，macOS 27.2 內建的 man 頁面
- dig(1)，macOS 27.2 內建的 man 頁面
- [Apple 支援：在 Mac 上更改 DNS 設定](https://support.apple.com/guide/mac-help/change-dns-settings-on-mac-mh14127/mac)

資料來源檢查日期：2026年10月29日。man 頁面為 macOS 內建版本；在終端機中用 `man <name>` 開啟。

## 相關指南

- [Mac 上的 DNS 查詢繞過 VPN](https://kilobat.app/zh-hant/guides/vpn-dns-leak-mac.html): 開啟 VPN 時，你通常會希望 DNS 查詢送往 VPN 的伺服器。
- [Mac 已連上 VPN 但無法上網](https://kilobat.app/zh-hant/guides/vpn-connected-no-internet.html): VPN 會讓流量經由通道傳送。
- [Mac 上的 DNS 無法解析](https://kilobat.app/zh-hant/guides/dns-server-not-found.html): DNS 失敗時，Mac 無法將 apple.com 這類名稱轉換成 IP 位址。
- [找出某個網站或 API 連不上的原因](https://kilobat.app/zh-hant/guides/recipes/why-cant-it-connect.html): 網路正常、只有某個位址失敗時，Kilobat 會逐層檢查。
