GCP代理帳號開戶 谷歌云 DNS 常見解析錯誤代碼修復指南
前言:為什麼會遇到「看起來像同一個問題」的不同錯誤代碼
在 Cloud DNS 上完成設定後,很多人會遇到一種挫折:明明改了同一張表、加了同一條紀錄,卻仍然出現不同的解析錯誤代碼。像是 NXDOMAIN、SERVFAIL、REFUSED,或是看似沒有代碼、但就是超時、偶爾解析成功偶爾失敗。更麻煩的是,這些錯誤往往不是單一原因造成,而是多個環節串起來的結果:網域是否已正確委派、權威名稱伺服器是否一致、紀錄類型是否匹配、DNSSEC 是否正確、以及各地快取與解析器行為都可能讓你看到不同表現。
GCP代理帳號開戶 因此,與其只盯著某個代碼,不如把它當成線索。只要你理解「錯誤代碼通常代表哪一段流程出問題」,再搭配一個穩定的排查順序,就能把問題從模糊變成可修、可驗證。
第一章:先建立正確的排查框架
當你遇到 Cloud DNS 解析錯誤時,不要急著反覆改設定。最有效的做法是建立一個固定流程:先確認你想要的結果是什麼,再去驗證權威回答是否一致,最後才談快取與修復。
1. 明確「你期望的紀錄」
DNS 的問題往往看似「域名不解析」,實際上是「你期望的紀錄沒有以你認為的方式存在」。請在修改前把以下資訊寫下來:
- 要驗證的子網域:例如
api.example.com、example.com。 - 紀錄類型:A、AAAA、CNAME、MX、TXT、NS、SRV。
- 你期望回應的值:IP、別名目標、郵件伺服器主機名等。
- 預期是否啟用 DNSSEC。
- GCP代理帳號開戶 是否使用代理層(例如某些 WAF/反代服務會提供自己的 DNS 入口)。
2. 區分「權威層面」與「客戶端層面」
你看到的錯誤來自哪裡,決定你要查什麼。建議把查詢來源分兩類:
- 對權威 DNS 查詢:直接讓解析器查 Cloud DNS 所宣告的權威名稱伺服器,看看權威端到底回了什麼。
- 對遞迴解析器查詢:用一般解析工具或本地網路查結果,這通常混入快取與轉發延遲。
如果你不分層,可能會遇到「你改對了,但快取還在」或「你改錯了,但權威沒問題只是快取誤導」的狀況。
3. 先記錄當下錯誤輸出,再動手修
GCP代理帳號開戶 務必保留錯誤的關鍵資訊:代碼、回應時間、是否有權威標記(AA)、是否提示找不到紀錄。這些差異會直接影響後續推理。
第二章:常見解析錯誤代碼與對應修復方向
以下列出在 Cloud DNS 上最常見的錯誤類型。每一類我都會用「代表什麼 → 常見原因 → 建議修復步驟 → 如何驗證」的方式整理。
1. NXDOMAIN:網域不存在(或權威回答認為不存在)
代表什麼:權威名稱伺服器回覆「找不到這個名稱」。注意:NXDOMAIN 是權威層面最常見的錯誤之一,代表你查詢的名稱在該權威資料中確實不存在(或紀錄鏈路被切斷)。
常見原因:
- 你新增的是不同子網域,例如本該是
api.example.com,卻加成了app.example.com。 - 紀錄類型不匹配:例如你期待 A 記錄,但只加了 CNAME,或反之。
- 你查詢的名稱有尾點或空白問題(少見但會發生),導致實際查詢的 FQDN 不同。
- GCP代理帳號開戶 根或委派層級沒有正確指向 Cloud DNS:例如頂層 NS 沒更新、或 TTL 仍在舊委派上。
修復方向:
- 確認 Cloud DNS 內「對應的 zone」與「正確的名字空間」。
- 檢查紀錄名稱與類型是否正確:A/AAAA/CNAME/TXT/MX 的組合要符合你的服務需求。
- 若是子網域委派,檢查 NS 紀錄是否已正確委派到你的 Cloud DNS。
驗證方式:用權威查詢確認:該 FQDN 在 Cloud DNS 權威端是否存在。如果權威端仍回 NXDOMAIN,就不是快取問題;要回到紀錄與委派本身。
2. SERVFAIL:權威端或解析鏈路發生故障
代表什麼:通常表示解析器在獲取回答時失敗。可能是權威不可達、回應錯誤、DNSSEC 驗證失敗、或遞迴層在轉發過程出錯。
常見原因:
- 權威名稱伺服器設定或網路不可達:Cloud DNS 其實在公共網路中提供服務,但你可能在前端委派或 NS 指向上出錯。
- DNSSEC 配置不完整:如果開了 DNSSEC,簽名鏈路或 DS/Key 沒有正確配置,解析器可能直接判定失敗。
- 紀錄依賴的其他名稱不存在:例如 CNAME 指向了一個不存在的目標,部分情況會引發連鎖失敗(實際更常見的是 NXDOMAIN,但在某些解析器行為下可能以 SERVFAIL 呈現)。
修復方向:
- 檢查 Cloud DNS 是否真的成為權威:確認頂層或子網域的 NS 是否正確指向。
- 若有 DNSSEC,先確認 DS/Key 在上層已正確部署,再檢查 Cloud DNS 的簽名狀態與算法匹配。
- 對 CNAME/TXT 等有相依的紀錄,逐一檢查目標名稱是否存在且類型正確。
驗證方式:用權威查詢觀察是否仍 SERVFAIL。如果只在遞迴查詢出現、權威查詢正常,通常與快取或解析器策略有關;若權威也 SERVFAIL,則多半是委派或 DNSSEC/簽名問題。
3. REFUSED:權威拒絕查詢或政策禁止
代表什麼:權威伺服器拒絕提供回答,常見於不允許的來源、或權威設定不一致。
常見原因:
- 你查到的不是你的 Cloud DNS 權威,而是某個「以前委派」的伺服器或測試環境。
- 上游(委派層)與 zone 之間不一致,導致某些查詢被路由到不正確的權威。
- 較少見:解析器或網路層面的策略造成拒絕。
修復方向:
- 確認 NS 委派已正確更新並已同步到全網。
- 確認你在查詢時使用的解析器或網路路徑,確實指到目標權威。
驗證方式:用權威查詢(指定 NS)通常能快速確認是否因委派錯誤而被拒絕。
4. 查詢超時:看起來像「什麼都沒有」
代表什麼:解析器在超時前沒有拿到回應。這種狀況可能是網路問題,但在 DNS 設定錯誤中,也常見於委派指向了不可達的權威,或在某些地區路由異常。
常見原因:
- NS 指向了不存在或不提供服務的名稱伺服器。
- 你在錯誤的 zone 修改了紀錄:例如其實該名稱屬於另一個 zone 的責任範圍。
- 中間層(例如某些安全裝置)攔截 DNS(較少但確實存在)。
修復方向:
- 先檢查委派的 NS 清單與其可用性(是否正確、是否打錯、是否仍指向舊服務)。
- 確認該名稱確實落在 Cloud DNS zone 的管理範圍內。
驗證方式:從不同網路/不同地理位置測試。若所有地方都超時,幾乎一定是委派或權威可達性問題。
5. 解析到「錯誤 IP」或「偶爾解析正確、偶爾不對」
代表什麼:這通常不是 NXDOMAIN,而是回答存在,但不是你想要的那一份。偶爾正確通常意味著快取、或多個權威/多個紀錄源造成混合結果。
常見原因:
- 你改的是 A 記錄,但現在線上流量仍命中舊快取。尤其 TTL 設得很大時更明顯。
- 存在多個紀錄同名但被不同解析器採用(或你同時在多處管理 DNS,導致結果不一致)。
- 負載平衡/地理分流不是透過 DNS,而是應用層重導造成「看似 DNS 錯」。
修復方向:
- 檢查 A/AAAA 紀錄的集合:有沒有多餘或不該存在的值。
- 調整 TTL:變更前可先把 TTL 降到較小值,變更後再升回來。
- 確定只有一套權威來源管理同一個 zone(避免重複管理導致的混亂)。
驗證方式:同時做「權威查詢」與「外部遞迴查詢」。如果權威已是正確 IP,但外部仍不一致,通常是快取或解析器差異。
第三章:Cloud DNS 設定錯誤最常見的幾個「細節坑」
GCP代理帳號開戶 很多問題不是你不會用 DNS,而是某些細節容易忽略。以下列的是高頻坑,幾乎每一位管理者都遇過。
1. 紀錄類型弄錯:CNAME 與 A/AAAA 的邏輯
常見情況是把 CNAME 當成「指向 IP」的概念來用,或把 A 記錄當成「別名」。
- CNAME 用於「別名到另一個主機名」。目標應該是另一個 FQDN,而不是 IP。
- A/AAAA 用於直接對應 IP。
當你把 CNAME 設錯類型,通常會在權威端就暴露出不符合預期的答案。部分查詢工具也會因此顯示不同錯誤代碼。
2. zone 範圍理解錯:你修改了另一個責任區
Cloud DNS 是以 zone 來管理。你以為自己在改 example.com 的紀錄,但其實該名稱的責任應該在 sub.example.com 的 zone,或反過來。
結果就是:你改了,但權威並不被用來回答你查詢的那個名字,所以你看到的錯誤代碼會一直卡住。
3. 委派未完成:NS 沒更新或更新未生效
最經典的狀況是:你在 Cloud DNS 建好紀錄,但網域註冊商端(或上層 DNS)仍使用舊的 NS。此時外部查詢永遠不會走你新建的 zone,導致 NXDOMAIN 或超時。
修復就是把 NS 委派更新到 Cloud DNS 提供的名稱伺服器,並等待 TTL 與快取自然收斂。
4. TTL 不當導致「看起來像沒生效」
GCP代理帳號開戶 TTL 是快取生存時間。你可以想像成「變更後仍有一段時間世界不會立刻同步」。如果你在大 TTL 狀態下直接改 IP 或 CNAME 目標,外部觀測會呈現「一半人成功、一半人失敗」。
建議策略是:在大幅變更前先把 TTL 調小,變更後再調回合理值。
5. DNSSEC 啟用後才發現 DS/Key 不一致
DNSSEC 的好處是提高完整性,但它讓錯誤成本變高。一旦簽名鏈路不正確,不同解析器可能呈現不同錯誤行為。某些情況你會看到 SERVFAIL 或驗證相關的錯誤。
處理方式通常不是「改幾條紀錄就好」,而是要把整條簽名鏈路端到端對齊:上層(委派方)與 zone 內(權威方)都要一致。
第四章:針對常見場景的具體修復流程
下面我用幾個常見場景,給出可以直接照做的排查順序。你不需要記住任何神祕指令,但需要知道每一步在驗證什麼。
場景一:新增 A 記錄後仍是 NXDOMAIN
- GCP代理帳號開戶 確認你加到正確 zone:查該名稱是否落在你更新的 zone 責任範圍內。
- 確認紀錄名稱與類型:A 記錄要對應子網域主機名(不含多餘空格、不含錯誤前綴)。
- 對權威名稱伺服器查詢:看權威端是否仍回 NXDOMAIN。
- 檢查 NS 委派:若權威端回覆正確但外部仍 NXDOMAIN,則表示外部還在舊委派或快取。
如果權威也回 NXDOMAIN,那幾乎一定是紀錄不在該名稱或 zone 範圍不對;如果權威正確,才談快取與委派同步。
場景二:MX 設好但郵件仍投遞失敗或顯示找不到
- 先確認 MX 的主機名是否存在:MX 的值通常指向另一個主機名,該主機名還需要 A/AAAA。
- 檢查優先級:同時存在多條 MX 時,優先級不正確可能讓你以為「沒生效」。
- 檢查權威查詢:對 MX 的相關子域做權威查詢,確認回應內容。
- 確認 SPF/DKIM/DMARC(若你的環境有要求):這些不會直接造成 NXDOMAIN,但可能導致投遞被拒或進垃圾信,外觀上像是「解析問題」。
郵件是一整套鏈路,DNS 只是第一步;因此排錯時要避免把投遞拒收的原因錯判成 DNS。
場景三:CNAME 設好但解析不穩定或部分地區錯誤
- 檢查 CNAME 目標是否為有效主機名:目標需要有對應的 A/AAAA 或可再解析到正確答案。
- 避免同名多紀錄混用:確保該名稱下沒有與 CNAME 衝突的紀錄。
- 檢查 TTL:CNAME 的 TTL 決定快取效應,目標紀錄 TTL 也會影響最終答案一致性。
- 權威查詢對比:看權威回應是否一致。如果權威一致但外部不一致,優先考慮快取。
場景四:啟用了 DNSSEC,之後 SERVFAIL
- 確認委派方(上層)已加入正確 DS:如果 DS 沒正確部署,解析器可能無法驗證。
- GCP代理帳號開戶 核對 zone 的簽名狀態:簽名策略與算法要與上層預期一致。
- 先用權威查詢判斷責任範圍:權威層面出現問題,通常是簽名鏈或配置不完整;權威正常則可能是遞迴解析器驗證差異。
- 逐步排除依賴紀錄:例如 CNAME 目標或特殊 TXT 使用到的名稱是否都在簽名覆蓋之內。
DNSSEC 的排錯要更有耐心。你可以把它理解成「多了一道驗證門」,過不了就會被不同解析器用不同方式呈現。
第五章:如何用「可驗證的指標」判斷你修好了沒有
在 DNS 裡,修好不是靠感覺,而是靠觀測。建議你用三類指標來判斷。
1. 權威端回答是否正確(最重要)
先確認 Cloud DNS 權威回應的內容是否與你設定一致。只要權威端正確,問題多半會隨快取消退。
2. 外部遞迴端是否逐步收斂
你可以觀察:不同時間點、不同網路的查詢結果是否逐漸一致。若一直不一致,通常表示還有委派或多權威來源競爭。
3. 查詢行為是否穩定(避免「偶爾」)
偶爾成功、偶爾失敗很可能是快取競態、或負載與解析鏈路不同步。這時你要再檢查:TTL 是否合理、是否存在多地區不同策略、以及紀錄是否被不小心更新到不一致狀態。
第六章:修復後的最佳實踐,避免再次踩坑
DNS 設定不是一次性工作。你可以把「可控變更」當成長期運營能力。
1. 變更前先降低 TTL,變更後再恢復
尤其是涉及 A/AAAA、CNAME 的目標切換。TTL 降低可以縮短外部收斂時間;變更後再調回較合理的值,平衡快取效率。
2. 做命名規範,避免子網域打錯
建立命名表,把常用服務(例如 www、api、mail)的紀錄類型、值與用途列出來。多數 NXDOMAIN 其實就是名字打錯造成。
3. 清點是否存在「同時管理」的 DNS
許多團隊在一開始沒有留意,後來就變成同一個網域由多處地方維護。結果就是外部解析永遠不一致。你要確保:同一個 zone 的權威來源只有一套主責。
4. 若使用 DNSSEC,建立簽名與委派的變更流程
DNSSEC 的變更不要臨時起意。最好建立檢查清單:上層 DS、zone 內簽名、以及測試期間對外部解析器觀測的節奏。
結語:把錯誤代碼當成地圖,而不是判決
Cloud DNS 的常見解析錯誤代碼,並不只是「壞掉了」。它們像地圖上的標記:告訴你問題更可能出在哪一段流程。NXDOMAIN 多半指向紀錄不存在或委派未到位;SERVFAIL 常牽涉到權威不可達或 DNSSEC/鏈路驗證;REFUSED 常與查詢被導向不對的權威或政策一致性有關;超時通常是委派與可達性問題;而「解析到錯誤 IP、偶爾正確」多半與快取、TTL 與重複權威來源有關。
當你用「權威查詢先行」這個核心原則,再搭配穩定的排查順序,你會發現很多看似複雜的故障,其實可以被拆成一個個可驗證的小決策。修復也就不再依賴運氣,而是依賴方法。

