如何設定 RPC 動態埠配置以使用防火牆

本文可協助您修改登錄中的遠端過程調用 (RPC) 參數,以確保 RPC 動態埠配置可以與防火牆搭配使用。

適用:Windows Server 2012 R2
原始 KB 編號: 154596

摘要

伺服器應用程式和遠端管理應用程式會使用 RPC 動態埠配置,例如動態主機設定通訊協定 (DHCP) 管理員、Windows 因特網名稱服務 (WINS) Manager 等等。 RPC 動態埠配置會指示 RPC 程式根據所使用作業系統的實作,在針對 TCP 和 UDP 設定的範圍中使用特定隨機埠。 如需詳細資訊,請參閱下方的參考。

使用防火牆的客戶可能會想要控制 RPC 正在使用的埠,以便將其防火牆路由器設定為只轉送這些傳輸控制通訊協定 (UDP 和 TCP) 埠。

Windows 中的許多 RPC 伺服器可讓您在自訂設定專案中指定伺服器埠,例如登錄專案。 當您可以指定專用伺服器埠時,您會知道哪些流量會跨防火牆在主機之間流動。 此外,您也可以以更導向的方式定義允許的流量。

作為伺服器埠,請選擇您可能想要在下方指定之範圍以外的埠。 您可以在 Windows 的服務 概觀和網路埠需求中,找到用於 Windows 和主要 Microsoft 產品之伺服器埠的完整清單。

本文也會列出 RPC 伺服器,以及哪些 RPC 伺服器可以設定為使用 RPC 運行時間所提供之設施以外的自定義伺服器埠。

某些防火牆也允許 UUID 篩選,從 RPC 介面 UUID 的 RPC 端點對應程式要求中學習。 回應具有伺服器埠號碼,然後允許在此埠上傳遞後續的 RPC 系結。

重要事項

只有在 RPC 伺服器未提供定義伺服器埠的方法時,才使用本文所述的方法。

下列登錄專案適用於 Windows NT 4.0 和更新版本。 它們不適用於舊版的 Windows NT。 即使您可以設定用戶端用來與伺服器通訊的埠,客戶端必須能夠依其實際IP位址連線到伺服器。 您無法透過進行地址轉譯的防火牆使用DCOM。 例如,用戶端會聯機到虛擬位址 198.252.145.1,防火牆會以透明方式對應至伺服器的實際位址,例如 192.100.81.101。 DCOM 會將原始IP位址儲存在介面封包中。 如果客戶端無法連線到封包中指定的位址,則無法運作。

其他相關資訊

下面討論的 (和因特網密鑰) 值不會出現在登錄中。 您必須使用登錄 編輯器 手動新增它們。

重要事項

這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必謹慎地依照這些步驟執行。 為了有多一層保護,請先備份登錄再進行修改。 如此一來,您就可以在發生問題時還原登錄。 如需詳細資訊,請 參閱如何在 Windows 中備份和還原登錄

使用登錄 編輯器,您可以修改 RPC 的下列參數。 下面所討論的 RPC 連接埠金鑰值全都位於登錄中的下列機碼中:

HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\Internet\Entry name Data Type

  • 埠REG_MULTI_SZ

    指定一組IP埠範圍,其中包含因特網可用的所有埠,或因特網無法使用的所有埠。 每個字串都代表單一埠或一組內含埠。

    例如,單一埠可能以 5984 表示,而一組埠可能以 5000-5100 表示。 如果有任何專案超出 0 到 65535 的範圍,或無法解譯任何字串,則 RPC 運行時間會將整個設定視為無效。

  • PortsInternetAvailable REG_SZ Y 或 N (不區分大小寫)

    如果是 Y,則 [埠金鑰] 中所列的埠就是該電腦上所有因特網可用的埠。 如果是 N,則 [埠金鑰] 中所列的埠就是那些無法因特網使用的埠。

  • UseInternetPorts REG_SZ Y 或 N (不區分大小寫

    指定系統默認原則。

    如果為 Y,則使用預設值的進程會從一組因特網可用埠指派埠,如先前所定義。 如果為 N,則使用預設值的進程會從一組僅限內部網路的埠指派埠。

範例

在此範例中,已任意選取埠 5000 到 6000,以協助說明如何設定新的登錄機碼。 不建議任何特定系統所需的埠數目下限。

  1. 在下方新增因特網密鑰 HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc

  2. 在 [因特網密鑰] 底下,新增 [ (MULTI_SZ) ]、[ PortsInternetAvailable (REG_SZ) ] 和 [ UseInternetPorts (REG_SZ) ] 值。

    例如,新的登錄機碼會如下所示:

    埠:REG_MULTI_SZ:5000-6000
    PortsInternetAvailable:REG_SZ:Y
    UseInternetPorts:REG_SZ:Y

  3. 重新啟動伺服器。 所有使用 RPC 動態埠配置的應用程式都會使用埠 5000 到 6000,包含在內。

您應該開啟埠 5000 以上的埠範圍。 其他應用程式可能已使用低於 5000 的埠號碼,而且可能會與 DCOM 應用程式 () 發生衝突。 此外,先前的體驗顯示應該開啟至少100個埠,因為有數個系統服務依賴這些 RPC 埠彼此通訊。

注意事項

所需的埠數目下限可能會因計算機而異。 如果 RPC 動態埠受到限制,流量較高的電腦可能會遇到埠耗盡的情況。 限制埠範圍時,請將此考慮納入考慮。

警告

如果埠設定發生錯誤,或集區中的埠不足,端點對應程式服務將無法向動態端點註冊 RPC 伺服器。 發生設定錯誤時,錯誤碼會是87 (0x57) ERROR_INVALID_PARAMETER。 這也會影響 Windows RPC 伺服器,例如 Netlogon。 在此情況下,它會記錄事件 5820:

Log Name: System  
Source: NETLOGON  
Event ID: 5820  
Level: Error  
Keywords: Classic  
Description:  
The Netlogon service could not add the AuthZ RPC interface. The service was terminated. The following error occurred: The parameter is incorrect.

如需詳細資訊,請參閱: