透過 HTTPS 保護 DNS 用戶端 (DoH)

從 Windows Server 2022 開始,DNS 用戶端會支援 DNS-over-HTTPS (DoH)。 啟用 DoH 時,Windows Server DNS 用戶端與 DNS 伺服器之間的 DNS 查詢會透過安全的 HTTPS 連線傳遞,而不是以純文字形式傳遞。 透過加密連線來傳遞 DNS 查詢,以免遭到未信任的第三方攔截。

設定 DNS 用戶端以支援 DoH

只有在針對網路介面所選取的主要或次要 DNS 伺服器位於已知 DoH 伺服器清單的情況下,您才可以將 Windows Server 用戶端設定為使用 DoH。 您可以將 DNS 用戶端設定為需要 DoH、要求 DoH 或只使用傳統的純文字 DNS 查詢。 若要將 DNS 用戶端設定為在具備桌面體驗的 Windows Server 上支援 DoH,請執行下列步驟:

  1. 從 [Windows 設定] 控制面板中,選取 [網络與因特網]。

  2. 在 [網络與因特網] 頁面上,選取 [乙太網络]。

  3. 在 [乙太網路] 畫面上,選取您要為 DoH 設定的網路介面。

    screen shot of ethernet settings

  4. 在 [網路] 畫面上,向下捲動至 [DNS 設定],然後選取 [編輯] 按鈕。

  5. 在 [編輯 DNS 設定] 畫面上,從自動或手動 IP 設定下拉式清單中選取 [手動]。 該設定允許您設定 [慣用 DNS 伺服器] 和 [替代 DNS 伺服器]。 如果這些伺服器的位址出現在已知 DoH 伺服器清單中,則會啟用 [慣用 DNS 加密] 下拉式清單。 您可以從下列設定中選擇,以設定 [慣用 DNS 加密]:

    • 僅加密 DNS-over-HTTPS。 選擇此設定時,所有 DNS 查詢流量都會透過 HTTPS 傳遞。 此設定為 DNS 查詢流量提供最佳防護。 不過,這也表示如果目標 DNS 伺服器無法支援 DoH 查詢,則不會進行 DNS 解析。

    • 已加密的慣用、未加密的允許。 選擇此設定時,DNS 用戶端會嘗試使用 DoH,而在無法使用時則回復為未加密的 DNS 查詢。 此設定可為 DoH 功能的 DNS 伺服器提供最佳相容性,但如果 DNS 查詢從 DoH 切換到純文字,您並不會收到任何通知。

    • 僅未加密。 傳遞至指定 DNS 伺服器的所有 DNS 查詢流量皆未加密。 此設定會將 DNS 用戶端設定為使用傳統純文字 DNS 查詢。

      screen shot of dns settings

  6. 選取 [儲存],將 DoH 設定套用到 DNS 用戶端。

如果您使用 PowerShell 的 Set-DNSClientServerAddress Cmdlet 來設定用戶端的 DNS 伺服器位址,DoH 設定將取決於伺服器的後援設定是否位於已知 DoH 伺服器表格清單中。 目前,您無法使用 Windows Admin Center 或 sconfig.cmd 在 Windows Server 2022 上設定 DNS 用戶端的 DoH 設定。

透過群組原則設定 DoH

Windows Server 2022 本機和網域 [群組原則] 設定包括 [設定 DNS-over-HTTPS (DoH) 名稱解析] 原則。 您可以使用該原則將 DNS 用戶端設定為使用 DoH。 該原則位於 Computer Configuration\Policies\Administrative Templates\Network\DNS Client 節點中。 啟用後,便可使用下列設定來設定該原則:

  • 允許 DoH。 如果指定的 DNS 伺服器支援通訊協定,則會使用 DoH 來執行查詢。 如果這些伺服器不支援 DoH,則會發出未加密查詢。

  • 禁止 DoH。 阻止將 DoH 與 DNS 用戶端查詢搭配使用。

  • 需要 DoH。 需要使用 DoH 來執行查詢。 如果設定的 DNS 伺服器不支援 DoH,名稱解析將會失敗。

    screenshot of dns configuration.

請勿針對已加入網域的計算機啟用 [需要 DoH] 選項,因為 Active Directory 網域服務 嚴重依賴 DNS,因為 Windows Server DNS 伺服器服務不支援 DoH 查詢。 如果您需要加密 Active Directory Domain Services 網路上的 DNS 查詢流量,請考慮實作以 IPsec 為基礎的連線安全性規則來保護此流量。 如需詳細資訊,請參閱使用 IKEv2 保護端對端 IPsec 連線

判斷哪些 DoH 伺服器位於已知伺服器清單中

Windows Server 隨附一份可支援 DoH 的已知伺服器清單。 您可以使用 Get-DNSClientDohServerAddress PowerShell Cmdlet 來判斷哪些 DNS 伺服器位於此清單上。

screenshot of powershell command

已知 DoH 伺服器的預設清單如下所示:

伺服器擁有者 DNS 伺服器 IP 位址
Cloudflare 1.1.1.1
1.0.0.1
2606:4700:4700::1111
2606:4700:4700::1001
Google 8.8.8.8
8.8.4.4
2001:4860:4860::8888
2001:4860:4860::8844
Quad 9 9.9.9.9
149.112.112.112
2620:fe::fe
2620:fe::fe:9

將新的 DoH 伺服器新增到已知伺服器清單

您可以使用 Add-DnsClientDohServerAddress PowerShell Cmdlet,將新的 DoH 伺服器新增到已知伺服器清單中。 指定 DoH 範本的 URL,以及在安全查詢失敗時是否允許用戶端回復為未加密的查詢。 這個命令語法如下:

Add-DnsClientDohServerAddress -ServerAddress '<resolver-IP-address>' -DohTemplate '<resolver-DoH-template>' -AllowFallbackToUdp $False -AutoUpgrade $True

將名稱解析原則表格與 DoH 一併使用

您可以使用名稱解析原則表格 (NRPT) 來設定特定 DNS 命名空間的查詢,以使用特定 DNS 伺服器。 如果已知 DNS 伺服器可支援 DoH,則會使用 DoH 來執行與該網域相關的查詢,而不是以未加密方式執行。