共用方式為


設定Microsoft分散式交易協調器 (DTC) 以透過防火牆運作

本文說明如何設定Microsoft分散式交易協調器 (DTC) 以透過防火牆運作。

原始 KB 編號: 250367

其他相關資訊

您可以設定 DTC 透過防火牆進行通訊,包括網路位址轉譯防火牆。

DTC 預設會使用遠端過程調用 (RPC) 動態埠配置。 RPC 動態埠配置會隨機選取 49152-65535 範圍內的埠號碼。 藉由修改登錄,您可以控制 RPC 動態配置給傳入通訊的埠。 然後,您可以將防火牆設定為只將連入外部通訊限制為那些埠和埠 135(RPC 端點對應程式埠)。 建議您針對 DTC 服務使用固定埠,或在防火牆中使用預設的動態 49152-65535 範圍,以避免埠耗盡,而且只有在防火牆無法篩選計算機或 IP 時,才變更為自定義 RPC 埠。

您可以有一個本機 DTC 實例和多個叢集 DTC 實例。 您可能需要為依賴 RPC 的其他子系統提供更多傳入的動態埠,因此即使對 DTC 服務使用固定埠,還是建議保留預設 RPC 範圍。

本文所述的登錄機碼和值預設不會出現在登錄中;您必須使用註冊表編輯器來新增它們。

重要

這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必小心執行下列步驟。 為增加保護起見,請先備份登錄,再進行修改。 然後,如果發生問題,您就可以還原登錄。 如需如何備份和還原登錄的詳細資訊,請參閱 如何在 Window 中備份和還原登錄。

將 DTC 設定為使用單一固定埠

請遵循 DTC 交易相關電腦上的這些步驟來設定 DTC 的固定埠。 防火牆必須雙向開啟固定埠和埠 135(RPC 端點對應程式埠):

  1. 若要啟動註冊表編輯器,請選取 [開始],選取 [執行],輸入 regedt32,然後選取 [ 確定]。
  2. 在 [註冊表編輯器] 中,選取 [本機計算機] 視窗中的 [HKEY_LOCAL_MACHINE]。
  3. 按兩下路徑中名為的資料夾,以展開樹狀 HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC 結構。
  4. 選取 MSDTC 資料夾,然後選取 [編輯] 選單上的 [新增 > DWORD] [32 位] 值
  5. 將 [名稱] 變更為 ServerTcpPort
  6. 在新的值上按下滑鼠右鍵,然後選擇 [修改 ]。
  7. 在 [值編輯器] 對話框中,選取 [十進位],然後將固定埠號碼 40001 放在 [值數據] 字段中,然後選取 [確定]。

若要設定叢集 DTC 實例的固定埠,您需要尋找叢集資源 GUID,並在此位置下新增 ServerTcpPort 值。 針對每個 DTC 實例使用不同的埠號碼。 例如,如果您的 DTC 資源 GUID 是 012345678-9abc-def0-1234-56789abcdef0,則會在此路徑中: HKEY_LOCAL_MACHINE\Cluster\Resources\012345678-9abc-def0-1234-56789abcdef0\MSDTCPRIVATE\MSDTC。 針對其他 DTC 叢集資源重複這些步驟。

或者,您可以使用 reg add 文稿中的命令搭配系統管理員許可權來執行這項作業。 如果使用叢集 DTC 實例,請調整下列範例至您的特定叢集 GUID:

reg add HKLM\SOFTWARE\Microsoft\MSDTC /v ServerTcpPort /t REG_DWORD /d 40001 /f
reg add HKLM\Cluster\Resources\012345678-9abc-def0-1234-56789abcdef0\MSDTCPRIVATE\MSDTC /v ServerTcpPort /t REG_DWORD /d 40002 /f

設定 RPC 以使用用戶端口範圍

在 DTC 交易所涉及的計算機上遵循這些步驟,其中防火牆會防止完整通訊來控制 RPC 動態埠配置。 防火牆必須雙向開啟指定的埠和埠 135(RPC 端點對應程式埠):

  1. 若要啟動註冊表編輯器,請選取 [開始],選取 [執行],輸入 regedt32,然後選取 [ 確定]。

    使用 Regedt32.exe,而不是使用 Regedit.exe。 Regedit.exe不支援埠值所需的REG_MULTI_SZ數據類型。

  2. 在 [註冊表編輯器] 中,選取 [本機計算機] 視窗中的 [HKEY_LOCAL_MACHINE]。

  3. 按兩下路徑中名為的資料夾,以展開樹狀 HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc 結構。

  4. 選取 RPC 資料夾,然後選取 [編輯] 功能表上的 [新增金鑰]。

  5. 在 [新增金鑰] 對話方塊中,輸入因特網,然後選取 [確定]。

  6. 選取 [因特網] 資料夾,然後在 [編輯] 功能表上選取 [新增值]。

  7. 在 [新增值] 對話框的 [值名稱] 方塊中,輸入

  8. 在 [ 數據類型] 方塊中,選取 [REG_MULTI_SZ],然後選取 [ 確定]。

  9. 在 [ 多字串編輯器] 對話方塊的 [資料 ] 方塊中,指定您要 RPC 用於動態埠配置的埠或埠,然後選取 [ 確定]。

    您輸入的每個字串值都會指定單一埠或包含的埠範圍。 例如,若要開啟埠 40000,請指定 40000 ,不含引號。 若要開啟埠 40000 到 42000,請指定 40000-42000 ,不含引號。 您可以指定每行一個埠或埠範圍,以指定多個埠或埠範圍。 所有埠必須介於 1024 到 65535 的範圍內。 如果有任何埠超出此範圍,或有任何字串無效,RPC 會將整個設定視為無效。

    Microsoft建議您從 20000 和向上開啟埠,因為其他應用程式通常會使用較低的埠,而且您至少開啟 1000 個埠以避免埠耗盡。 在高負載系統上,您可能需要更多埠。 Windows 2008 和更新版本的預設範圍 1024-5000 已移至 49152-65535 範圍,以避免埠耗盡。

  10. 請遵循步驟 6 到 9 來新增另一個因特網密鑰,方法是使用這些值:

    值:PortsInternetAvailable
    數據類型:REG_SZ
    數據:Y

    這個值表示埠值下所列的埠可供因特網使用。

  11. 請遵循步驟 6 到 9 來新增另一個因特網密鑰,方法是使用這些值:

    值:UseInternetPorts
    數據類型:REG_SZ
    數據:Y

    這個值表示 RPC 應該從因特網埠清單中動態指派埠。

  12. 設定防火牆以允許連入存取指定的動態埠和埠 135(RPC 端點對應程式埠)。

  13. 重新啟動電腦。 當 RPC 重新啟動時,它會根據您指定的登錄值,以動態方式指派連入埠。 例如,若要開啟埠 40000 到 42000,請建立下列具名值:

    埠:REG_MULTI-SZ:40000-42000
    PortsInternetAvailable : REG_SZ : Y
    UseInternetPorts : REG_SZ : Y

DTC 也需要透過 NetBIOS 或 DNS 來解析計算機名稱。 檢查 NIC 屬性中是否已啟用 NetBIOS,並測試 NetBIOS 是否可以使用 ping 和伺服器名稱解析名稱。 用戶端電腦必須能夠解析伺服器的名稱。 伺服器必須能夠解析客戶端的名稱。 如果 NetBIOS 無法解析名稱,請將專案新增至電腦上的 LMHOSTS 檔案。