---
title: "Mac DNS 無法解析：「找不到伺服器」的解決方法 · Kilobat 指南"
url: "https://kilobat.app/zh-hant/guides/dns-server-not-found.html"
description: "Mac 上的網站出現「找不到伺服器」或「could not resolve host」錯誤。找出是否為 DNS 造成，並用內建工具修正。"
---

DNS

# Mac 上的 DNS 無法解析

DNS 失敗時，Mac 無法將 apple.com 這類名稱轉換成 IP 位址。連線本身可能正常，但所有以名稱開啟的網站都會失敗。

適用於：「系統設定」的步驟適用於 macOS 13 Ventura 以上版本。終端機指令適用於所有目前的 macOS 版本。 · 檢查日期：2026年10月29日

## 症狀

- 瀏覽器在許多網站上顯示「找不到伺服器」或類似錯誤。
- 終端機工具顯示「Could not resolve host」或「nodename nor servname provided」。
- 使用 IP 位址的 App 仍可運作，但使用名稱就不行。
- 問題在你切換網路、連上 VPN 或設定自訂 DNS 伺服器之後開始。

## 可能原因

- **沒有連線。**Mac 沒有可用的網際網路路徑，所以 DNS 查詢送不出去。
- **DNS 伺服器錯誤或無法連線。**手動輸入的 DNS 伺服器可能停止運作，或在這個網路上遭到阻擋。
- **路由器的 DNS 失敗。**許多網路會把 DNS 交給路由器。如果路由器停止回應，所有裝置上的名稱都會失敗。
- **VPN、描述檔或過濾器更改了 DNS。**VPN、加密 DNS 描述檔和內容過濾器可能把查詢送往其他伺服器。
- **快取中的舊回應。**Mac 會將回應保留一段時間。網站搬家後，舊的回應可能導致失敗。

## 如何檢查

1. 確認連線正常。對 IP 位址執行 ping，這樣就不會用到 DNS。

   ```
   ping -c 3 1.1.1.1
   ```
2. 對名稱執行 ping。如果 IP 位址可以、名稱卻失敗，問題就在 DNS。

   ```
   ping -c 3 apple.com
   ```
3. 向 macOS 解析器查詢某個名稱。這和大多數 App 使用的路徑相同。

   ```
   dscacheutil -q host -a name apple.com
   ```

   輸出`ip_address` 和 `ipv6_address` 行。沒有這些行就表示查詢失敗。
4. 顯示 macOS 目前使用的 DNS 設定。第一個解析器是預設解析器。

   ```
   scutil --dns
   ```
5. 顯示你在 Wi-Fi 服務上手動設定的 DNS 伺服器。

   ```
   networksetup -getdnsservers Wi-Fi
   ```

   輸出一串 IP 位址，或是沒有設定 DNS 伺服器的訊息，後者表示由網路提供伺服器。

## 如何修正

1. 移除你手動輸入的 DNS 伺服器。選擇「蘋果」選單 >「系統設定」>「網路」。
2. 按一下網路服務，按一下「詳細資訊」，然後按一下「DNS」。選取你加入的每一台伺服器，然後按一下「移除」按鈕。
3. 也可以在終端機中清除。用 `empty` 這個字取代伺服器位址。

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

   需要管理者密碼。
4. 清除 DNS 快取。請參閱[清除 Mac 上的 DNS 快取](https://kilobat.app/zh-hant/guides/flush-dns-cache-mac.html)。

   ```
   sudo killall -HUP mDNSResponder
   ```

   需要管理者密碼。
5. 從路由器取得新的位址和新的 DNS 伺服器。請參閱[在 Mac 上更新 DHCP 租約](https://kilobat.app/zh-hant/guides/renew-dhcp-lease-mac.html)。
6. 為了測試，中斷 VPN 連線。如果名稱因此恢復正常，請檢查 VPN 的 DNS 設定。請參閱[Mac 上的 DNS 查詢繞過 VPN](https://kilobat.app/zh-hant/guides/vpn-dns-leak-mac.html)。
7. 如果所有裝置的 DNS 都失敗，請重新啟動路由器。

## 使用 Kilobat

1. Kilobat 會測量一次 DNS 查詢，並列出使用中的解析器。請查看 `dnsMilliseconds`、`dnsServers` 和 `captivePortal`。

   ```
   kilobat diagnose --json
   ```
2. 針對單一網站或 API，找出失敗的那一層。它會先檢查 DNS，再檢查連線。

   ```
   kilobat why api.example.com
   ```
3. CLI 是免費的。在 App 中，「健康狀態」標籤頁會顯示 DNS 伺服器和查詢時間。請參閱[找出某個網站或 API 連不上的原因](https://kilobat.app/zh-hant/guides/recipes/why-cant-it-connect.html)。

## 常見問題

**為什麼 ping 1.1.1.1 可以，網站卻打不開？**

對 IP 位址執行 ping 不會用到 DNS。如果 ping 可以、名稱卻失敗，問題就在 DNS，而不是連線。

**為什麼 dig 可以用，App 卻失敗？**

`dig` 會把查詢送往 `/etc/resolv.conf` 中的伺服器。App 使用的是 macOS 解析器，它還可能套用 VPN 和個別網域的規則。

**路由器會重新提供 DNS 伺服器給我嗎？**

會。「網路」設定中的 DNS 列表為空時，macOS 會使用網路透過 DHCP 提供的伺服器。

## 資料來源

- [Apple 支援：在 Mac 上更改 DNS 設定](https://support.apple.com/guide/mac-help/change-dns-settings-on-mac-mh14127/mac)
- [Apple 支援（已封存）：在 OS X 中重置 DNS 快取](https://support.apple.com/en-us/101481)
- 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>` 開啟。

## 相關指南

- [Mac 上的「Safari 找不到伺服器」](https://kilobat.app/zh-hant/guides/safari-cant-find-server.html): 「Safari 找不到伺服器」通常表示 Mac 無法取得該網站名稱的位址。
- [Mac 上的 DNS 很慢](https://kilobat.app/zh-hant/guides/slow-dns-mac.html): 每個新網站在載入前都需要先查詢 DNS。
- [清除 Mac 上的 DNS 快取](https://kilobat.app/zh-hant/guides/flush-dns-cache-mac.html): macOS 會將 DNS 回應保留一段時間。
- [Mac 上沒有出現 Wi-Fi 登入頁面](https://kilobat.app/zh-hant/guides/captive-portal-not-appearing.html): 公共網路通常會攔住所有流量，直到你在登入頁面上登入。
- [找出某個網站或 API 連不上的原因](https://kilobat.app/zh-hant/guides/recipes/why-cant-it-connect.html): 網路正常、只有某個位址失敗時，Kilobat 會逐層檢查。
- [Mac 版 Chrome 的 ERR_NAME_NOT_RESOLVED](https://kilobat.app/zh-hant/guides/err-name-not-resolved.html): Chromium 對這個錯誤的描述是：「The host name could not be resolved.」Chrome 無法取得網站名稱的位址。
