常見問題

一般

什麼是 Google 公用 DNS?

Google Public DNS 是免費的全球網域名稱系統 (DNS) 解析服務,可用來取代目前的 DNS 供應商。

為什麼 Google 要開發 DNS 服務?

我們相信,更快、更安全的 DNS 基礎架構能大幅改善網路瀏覽體驗,Google 公用 DNS 改善了速度、安全性和結果的有效性。我們已在說明文件中提供這些改善項目,以協助網頁社群持續進行對話。

我可以使用 Google 公用 DNS 來代管網域名稱嗎?

Google 公用 DNS 並非具公信力的 DNS 代管服務,無法用來當做這類服務。如要透過 Google 的基礎架構尋找大量可程式化的權威名稱伺服器,請嘗試 Google's Cloud DNS

Google 公用 DNS 是否提供封鎖或過濾不需要網站的功能?

Google 公用 DNS 的純粹是 DNS 解析和快取伺服器,除非我們認為有必要保護特定網域,以致保護 Google 使用者免於安全性威脅,除非在特殊情況下,否則無法執行任何封鎖或篩選作業。不過,我們認為封鎖功能通常是由用戶端執行。如果您想要啟用這類功能,請考慮安裝用戶端應用程式或瀏覽器外掛程式來達到此目的。

Google 公用 DNS 是否有任何跨產品依附元件?

Google 公用 DNS 是獨立的服務,

我需要有 Google 帳戶才能使用 Google 公用 DNS 嗎?

使用 Google 公用 DNS 時不必登入任何帳戶。

Google 公用 DNS 與我的網際網路服務供應商 (ISP) 或其他開放式 DNS 解析器有何差異?如何判斷應用程式的品質是否提升?

開放式解析器和網際網路服務供應商 (ISP) 都提供 DNS 解析服務。歡迎您試用 Google 公用 DNS 做為主要或次要 DNS 解析器,搭配任何其他替代 DNS 服務使用。識別適合您的 DNS 解析器時,會需要考量多項因素,例如速度、可靠性、安全性和回應的有效性。與 Google 公用 DNS 不同,部分網際網路服務供應商 (ISP) 和開放式解析器會基於商業目的封鎖、篩選或重新導向 DNS 回應。

Google 公用 DNS 如何處理不存在的網域?

如果您發出的網域名稱不存在,Google 公用 DNS 一律會根據 DNS 通訊協定標準傳回 NXDOMAIN 記錄。 瀏覽器應該會將此回應顯示為 DNS 錯誤。如果收到了錯誤訊息以外的任何回應 (例如,系統會將您重新導向至其他網頁),這可能是以下原因:

  • 瀏覽器應用程式 (例如瀏覽器外掛程式) 顯示不存在網域的替代頁面。
  • 部分網際網路服務供應商 (ISP) 可能會攔截所有的 NXDOMAIN 回應,並替換成導向自家伺服器的回應。 如果擔心網際網路服務供應商 (ISP) 攔截 Google 公用 DNS 要求或回應,請與您的 ISP 聯絡。

Google 公開 DNS 將來用於放送廣告嗎?

我們會致力保留 DNS 通訊協定的完整性。 Google 公用 DNS 絕對不會針對不存在的網域傳回廣告伺服器位址。

什麼是 HTTPS 透過 HTTPS (DoH)?

透過加密 HTTPS 連線進行 DNS 解析。 透過 HTTPS 的 DNS 大幅強化了虛設常式解析器和遞迴解析器之間的隱私權和安全性,並補充 DNSSEC 提供端對端驗證的 DNS 查詢。

使用和支援

我目前使用其他 DNS 服務,我可以使用 Google 公用 DNS 嗎?

您可以將 Google 公用 DNS 設為主要或次要 DNS 解析器,搭配目前的 DNS 解析器。提醒您,作業系統處理 DNS 解析器的方式不同:有些是偏好您的主要 DNS 解析器,只有當主要 DNS 解析器失敗時,才使用次要解析器,而其他解析器則循環檢查。

如果已設定的解析器之間有安全性或篩選功能的差異,系統會提供所有解析器的安全等級或篩選條件最低。NXDOMAIN 的篩選或重新導向功能有時可能會封鎖,但 SERVFAIL 不會封鎖網域,除非所有解析器會傳回 SERVFAIL。

Google 公用 DNS 是否適合任何類型的網際網路裝置?

Google 公用 DNS 可用於任何符合標準的網路裝置。如果發現 Google 公用 DNS 無法正常運作,請通知我們。

我可以在辦公室電腦上執行 Google 公用 DNS 嗎?

某些辦公室具有私人網路,可讓您存取在工作之外無法存取的網域。使用 Google 公用 DNS 可能會限制您存取這些私人網域。 在辦公室電腦上使用 Google 公用 DNS 之前,請先檢查 IT 部門的政策。

哪些國家/地區可以使用 Google 公用 DNS?

目前全球網際網路使用者都有可能使用這項功能,但視您的所在地而定,使用體驗可能大不相同。

Google 公用 DNS 適用於所有網際網路服務供應商 (ISP) 嗎?

假設您有權變更網路 DNS 設定,Google 公用 DNS 應與大多數 ISP 搭配運作。

我需要同時使用兩個 Google 公用 DNS IP 位址嗎?

您可以將其中一個 IP 位址當做 Google 的主要服務。不過,「請勿」指定與主要伺服器和次要伺服器相同的位址。

指定 IP 位址的順序為何?

順序無關緊要。 IP 可以是主要或次要的名稱伺服器。

這項服務的服務水準協議為何?

免費 Google 公用 DNS 服務沒有服務水準協議 (SLA)。

我正在經營 ISP。我可以將使用者重新導向 Google 公用 DNS 嗎?

使用 Google 公用 DNS 的網際網路服務供應商 (ISP) 應按照 網際網路服務供應商 (ISP) 操作說明,確認是否需要執行任何操作,才能將查詢傳送至 Google 公用 DNS。

如何向 Google 公用 DNS 團隊取得支援?

建議您使用 Google 網路論壇,取得團隊的實用更新資訊,並提出問題。 如果遇到問題,並想回報問題,請參閱報告問題

技術

Google 公用 DNS 如何得知傳送查詢到哪裡?

Anycast 轉送會將查詢導向最近的 Google 公用 DNS 伺服器。如要進一步瞭解任一傳播轉送功能,請參閱維基百科條

Google 公用 DNS 會使用發布至 DNS 根可用區和頂層網域的區域,透過名稱伺服器 (NS) 記錄找出任何網域的權威 DNS 伺服器名稱和位址。部分名稱伺服器也使用 Anycast 轉送功能。

您的伺服器目前位於何處?

Google 公用 DNS 伺服器遍及全球。這個問題有兩個答案:一個是用戶端,另一個是 DNS 伺服器,供 Google 公用 DNS 取得傳回給用戶端的答案。

用戶端向 Google 公用 DNS 傳送查詢時,系統會將查詢轉送至最近的廣播廣告位置 (即任何一個 Anycast 位址,例如 8.8.8.88.8.4.42001:4860:4860:: 中的其中一個 IPv6 位址)。這些網路位址傳遞的特定位置會因網路狀況和流量負載而改變,而且在 Google Edge 網路中包含幾乎所有核心資料中心和邊緣服務點 (PoP)。

Google Public DNS 會將查詢傳送至 Core 資料中心和 Google Cloud 區域位置的權威伺服器。Google 會發布清單,列出 Google 公用 DNS 用來查詢權威 DNS 伺服器 (不使用清單中的所有範圍) 的 IP 位址範圍。您可以將這個查詢用於不含 EDNS 用戶端子網路 (ECS) 資料的 DNS 查詢地理位置,並設定 ACL 以允許 Google 公用 DNS 的較高查詢費率。

除了本常見問題,Google 也會將清單視為 DNS「TXT」記錄。 Google 每週會更新、更新及移除這兩個來源。 每個 IP 位址範圍項目都包含最近機場的 IATA 代碼。GeoIP 資料或 ACL 的自動化作業應透過 DNS 取得這些資料,而不是抓取這個網頁 (請參考下方範例)。

Google 公用 DNS 用來傳送查詢的 IP 位址範圍位置

    

透過程式輔助方式取得位置資料

位址範圍可以擷取為 JSON 檔案

curl https://www.gstatic.com/ipranges/publicdns.json

您可以使用下列 Python 指令碼來建立 Google 公用 DNS 用來向權威 DNS 伺服器進行查詢的 IP 位址範圍清單。

這項資料也會做為 TXT 記錄在 locations.publicdns.goog. 提供。然而,資料大小代表 DNS TXT 記錄不再是適當的格式。我們將以上述 JSON 格式檔案取代 TXT 記錄。如果您使用的是 TXT 記錄,請改為改用 JSON 檔案,因為我們預計在日後移除 TXT 記錄。

指令列

您可以使用 curljq 工具,從指令列擷取 Google 公用 DNS IP 範圍。

curl https://www.gstatic.com/ipranges/publicdns.json | jq '.prefixes[]  | .ipv4Prefix // .ipv6Prefix '

這種做法需要下列項目:

Python

您可以使用下列 Python 指令碼來建立 Google 公用 DNS 使用的 IP 位址範圍清單。

#!/usr/bin/env python3
"""An example to fetch and print the Google Public DNS IP ranges."""

import ipaddress
import json
import urllib.request

publicdns_url = 'https://www.gstatic.com/ipranges/publicdns.json'


def read_url(url):
  try:
    s = urllib.request.urlopen(url).read()
    return json.loads(s)
  except urllib.error.HTTPError:
    print('Invalid HTTP response from %s' % url)
    return {}
  except json.decoder.JSONDecodeError:
    print('Could not parse HTTP response from %s' % url)
    return {}


def main():
  publicdns_json = read_url(publicdns_url)
  print('{} published: {}'.format(publicdns_url,
                                  publicdns_json.get('creationTime')))

  locations = dict()
  ipv4, ipv6 = set(), set()
  for e in publicdns_json['prefixes']:
    if e.get('ipv4Prefix'):
      ip = ipaddress.IPv4Network(e.get('ipv4Prefix'), strict=False)
      ipv4.add(ip)
    if e.get('ipv6Prefix'):
      ip = ipaddress.IPv6Network(e.get('ipv6Prefix'), strict=False)
      ipv6.add(ip)
    locations[ip] = e.get('scope')
  print('IP ranges used by Google Public DNS for contacting '
        'authoritative DNS servers:')
  for i in list(ipv4) + list(ipv6):
    print(i, locations[i])


if __name__ == '__main__':
  main()

對於 macOS,這個指令碼需要一個 Python 3 執行階段,如下所示:

  • 安裝目前的 macOS 版 Python 3 執行階段。
  • 從「Applications」資料夾的 Python 資料夾中執行內含的 Install Certificates.command,以安裝要使用的 Python 執行階段受信任的根憑證清單 (cert.pem)。將 VERSION 替換成您安裝的 Python 版本 (例如 3.8):
    sudo "/Applications/Python VERSION/Install Certificates.command"

Google 公用 DNS 是以 BIND 等開放原始碼軟體為基礎嗎?

Google 公用 DNS 是 Google 自行導入的 DNS 標準。

您計劃以開放原始碼軟體的形式發布 Google 公用 DNS 程式碼嗎?

目前並沒有開放原始碼 Google 公用 DNS。 然而,我們詳述了為提高速度、安全性和標準法規遵循方面採取的所有步驟。

Google 公用 DNS 是否支援 IPv6?

Google我們完全支援僅限 IPv6 的權威名稱伺服器。IPv6 解析器位址會以開始使用 Google 公用 DNS 的操作說明提供。

請注意,您可能不會看到 Google 網站的 IPv6 結果。 為了最佳化使用者體驗,Google 只會為具備良好 IPv6 連線的用戶端提供 AAAA 記錄。這項政策完全獨立於 Google 公用 DNS 中,並由 Google 的權威名稱伺服器強制執行。 詳情請參閱 Google over IPv6 頁面。

如果是僅限 IPv6 的網路和系統,您可以使用 Google Public DNS64 取得含有 A 記錄但不含 AAAA 記錄的網域名稱網域名稱綜合 AAAA 記錄。這些合成的 AAAA 會使用為 NAT64 服務保留的已知 IPv6 前置字串,將僅限 IPv6 的用戶端記錄至 NAT64 閘道。您只要按照入門指南的操作說明設定系統,並以 DNS64 IPv6 設定取代解析器位址即可。

Google 公用 DNS 是否支援 DNSSEC 通訊協定?

Google 公用 DNS 是可驗證安全性的驗證工具。除非 DNS 要求明確在 DNS 要求中設定 CD 旗標來停用驗證功能,否則 DNSSEC 簽署可用區的所有回應都會通過驗證。

如何知道我是否使用 DNSSEC?

如要通過簡易測試,請前往 http://www.dnssec-failed.org/。 由於驗證鏈故障,這個網站已明確傳回傳回 DNS 錯誤。如未收到錯誤,表示你目前未使用 DNSSEC。

Google 公用 DNS 如何處理 DNSSEC 驗證失敗的查詢?

如果 Google 公用 DNS 無法驗證回應 (因為設定錯誤、缺少 RRSIG 記錄或錯誤等),就會傳回錯誤回應 (SERVFAIL)。不過,如果重大影響 (例如非常熱門的網域驗證失敗),在問題解決之前,我們可能會暫時停用該區域的驗證功能。

如何找出特定網域無法進行 DNSSEC 驗證的原因?

Verisign Labs' DNS 分析工具和 Sandia National Laboratories' DNSViz 是兩種 DNSSEC 視覺化工具,可顯示任何網域的 DNSSEC 驗證鏈。這些圖表會顯示服務中斷的情況,同時有助於查詢 DNSSEC 失敗來源。

Google 公用 DNS 已開始提供舊資料。我可以強制重新整理資料嗎?

您可以使用「提取快取」工具,重新整理常見記錄類型的 Google 公用 DNS 快取和大多數網域名稱。不需要證明網域擁有權才能清除網域,但您必須解除限制服務自動濫用的 reCAPTCHA。

清除您註冊或登錄 NS 記錄的網域的任何記錄類型,不僅會清除該類型的快取回應,也會清除該名稱伺服器的委派資訊。如果您最近變更了名稱伺服器 (變更註冊商或 DNS 主機供應商),請務必在清除 www 等子網域「之前」執行此操作,這樣新伺服器就不會根據舊 DNS 伺服器的過時資料重新整理。

如果 Google 公用 DNS 傳回的是過時 CNAME 記錄的答案,您就必須清除每個 CNAME 網域的 CNAME 記錄類型,從鏈結中的最後一個 CNAME 開始,然後回到查詢到的名稱。清除所有 CNAME 之後,請將查詢名稱與任何回應過時 CNAME 的記錄類型清除。

系統可能會清除某些限制:

  • 如果網域使用 EDNS 用戶端子網路 (ECS) 做為地理位置,則無法清除;也就是說,針對使用 ECS 的網域,如要啟用 ECS 的記錄,請將存留時間設為短 (15 分鐘以內),完全不需要清除這些記錄。

  • 如要清除所有子網域 (或所有網域名稱的所有記錄類型),其中一種方式就是針對要清除的每個網域名稱進行清除。如果這並不實用,您隨時可以等待記錄存留時間到期 (即使實際存留時間較長,通常上限為六小時)。

  • 如要清除國際化的網域名稱 (例如 пример.example),請使用 Punycode 格式 (上述範例為 xn‑‑e1afmkfd.example)。如果網域含有 ASCII 字母、數字、連字號或底線以外的字元,則無法清除。

Google 公用 DNS 會將與客戶之間的通訊加密,藉此確保所謂的「最後躍點」嗎?

傳統的 DNS 流量則會透過 UDP 或 TCP 進行加密,而不加密。我們也提供 DNS over TLSDNS HTTPS,來加密用戶端和 Google 公用 DNS 之間的流量。您可以前往以下網址試用:https://dns.google

已經有 DNSSEC 時,為什麼需要透過 HTTPS 使用 DNS?

透過 HTTPS 使用 DNS 和 DNSSEC 相輔相成。Google Public DNS 會盡可能使用 DNSSEC 驗證名稱伺服器的回應。不過,為了安全驗證 Google 公用 DNS 中的傳統 UDP 或 TCP 回應,用戶端必須自行重複執行 DNSSEC 驗證,但目前很少使用用戶端解析器。透過 HTTPS 的 DNS 會將虛設常式解析器和 Google 公用 DNS 之間的流量加密,並補充 DNSSEC 來提供端對端已驗證的 DNS 查詢。

有什麼工具可以測試 Google 公用 DNS 與其他 DNS 服務的成效嗎?

有許多免費工具可用來評估 Google 公用 DNS 的回應時間。 建議使用 Namebench。無論使用何種工具,都應針對大量網域 (超過 5000 個) 執行這項工具,以確保具統計顯著性的結果。雖然測試執行時間較長,但至少使用 5000 個網域,以確保網路延遲 (封包遺失和重新傳輸) 的可變性會最小化,且 Google 公用 DNS 的大名稱快取已完全運動。

如要設定 Namebench 中的網域數量,請使用 Number of tests GUI 選項或 -t 指令列旗標;詳情請參閱 Namebench 說明文件

我對 Google 公用 DNS 解析器執行 pingtraceroute 時,回應延遲時間高於其他服務的回應時間。這是否意味著 Google 公用 DNS 一律不會變慢?

除了連線偵測 (ping) 時間以外,您也必須考量平均解析名稱的時間。舉例來說,假設網際網路服務供應商 (ISP) 的連線偵測 (ping) 時間為 20 毫秒,但平均名稱解析為 500 毫秒,則整體平均回應時間為 520 毫秒。如果 Google 公用 DNS 的連線偵測 (ping) 時間為 300 毫秒,但在 1 毫秒內解析許多名稱,則整體平均回應時間為 301 毫秒。 如要獲得更好的比較結果,建議您設定較大的測試解析度

Google 公用 DNS 如何與 CDN 地理位置搭配運作?

許多提供可下載或串流多媒體內容的網站,都使用以 Akamai 等 DNS 的第三方內容發布聯播網 (CDN) 代管。當 DNS 解析器查詢 CDN 的 IP 位址的權威名稱伺服器時,名稱伺服器會將最近的 (網路距離) 位址傳回解析器,而不是使用者。在某些情況下,網際網路服務供應商 (ISP) 和解析器 (例如 Google Public DNS) 的解析器可能無法接近使用者。在這類情況下,瀏覽體驗可能會稍微變慢。 在這個情況下,Google 公用 DNS 與其他 DNS 供應商不同。

為協助減少 DNS 伺服器和使用者之間的距離,Google 公用 DNS 已將伺服器部署於世界各地,具體而言,歐洲使用者應導向歐洲地區的 CDN 內容伺服器,而亞洲使用者應導向亞洲的 CDN 伺服器,而美國東部、中部和西部地的使用者則應導向這些國家/地區的 CDN 伺服器。我們也發布了這項資訊,協助 CDN 為多媒體使用者提供良好的 DNS 結果。

此外,Google 公用 DNS 會使用名為 EDNS 用戶端子網路的技術技術,如 RFC 中所述。這可讓解析器將部分用戶端 IP 位址 (IP4/IPv6 前 24/56 位元以下) 傳入 DNS 訊息中的來源 IP,以便名稱伺服器根據使用者的位置傳回最佳化結果,而非解析器的位置。

隱私權

當我使用 Google 公用 DNS 服務時,Google 會記錄哪些資訊?

Google 公用 DNS 隱私權頁面提供我們收集的完整資訊。Google 公用 DNS 符合 Google 的主要隱私權政策,詳情請參閱隱私權中心

系統只能記錄用戶端 IP 位址 (1 到 2 內清除),但網際網路服務供應商 (ISP) 和城市/都會區層級的相關資訊都會保留較長時間,以讓我們的服務更快速、更安全,也更安全。

我收集的資訊是否會儲存在我的 Google 帳戶中?

沒有儲存的資料與任何 Google 帳戶建立關聯。

Google 會將 Google 公開 DNS 服務收集到的資訊提供給 Google 以外的任何人嗎?

否。除了 Google #Google 隱私權政策所述的有限情況外,例如法律函狀和強制性政府要求。 (另請參閱 Google 的使用者資料要求資訊公開報告)。

Google 會將我臨時或永久記錄中的資訊與我提供給 Google 的任何個人資訊建立關聯,或予以結合嗎?

隱私權頁面所述,我們不會以這種方式合併或建立關聯記錄檔資料。