Konfigurera Microsoft Distributed Transaction Coordinator (DTC) för att arbeta genom en brandvägg

Den här artikeln beskriver hur du konfigurerar Microsoft Distributed Transaction Coordinator (DTC) för att arbeta via brandväggar.

Gäller för: Windows Server 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 2022
Ursprungligt KB-nummer: 250367

Mer information

Du kan konfigurera DTC för att kommunicera via brandväggar, inklusive brandväggar för nätverksadressöversättning.

DTC använder dynamisk portallokering (RPC) för fjärrproceduranrop som standard. Dynamisk RPC-portallokering väljer slumpmässigt portnummer i intervallet 49152-65535. Genom att ändra registret kan du styra vilka portar som RPC dynamiskt allokerar för inkommande kommunikation. Du kan sedan konfigurera brandväggen så att den begränsar inkommande extern kommunikation till endast dessa portar och port 135 (RPC-slutpunktsmappningsporten). Vi rekommenderar att du använder antingen fast port för DTC-tjänster eller standardintervallet 49152-65535 i brandväggar för att undvika portöverbelastning och endast ändra till anpassade RPC-portar om brandväggar inte kan filtrera på datorn eller IP-adresser.

Du kan ha en lokal DTC-instans och flera klustrade DTC-instanser. Du kan behöva tillhandahålla fler inkommande dynamiska portar för andra undersystem som förlitar sig på RPC, så vi rekommenderar att du behåller RPC-standardintervallet även om du använder en fast port för DTC-tjänster.

Registernycklarna och värdena som beskrivs i den här artikeln visas inte som standard i registret. du måste lägga till dem med hjälp av Registry Editor.

Viktigt

Det här avsnittet, metoden eller uppgiften innehåller steg som beskriver hur du ändrar registret. Det kan uppstå allvarliga problem om du gör detta felaktigt. Följ därför instruktionerna noga, och säkerhetskopiera registret innan du gör några ändringar i det. Då kan du återställa registret om det uppstår problem. Mer information om hur du säkerhetskopierar och återställer registret finns i Säkerhetskopiera och återställa registret i Fönstret.

Konfigurera DTC för att använda en enda fast port

Följ de här stegen på datorer som ingår i DTC-transaktioner för att ange en fast port för DTC. Brandväggen måste vara öppen i båda riktningarna för den fasta porten och port 135 (RPC-slutpunktsmappningsporten):

  1. Starta Registry Editor genom att välja Starta, välja Kör, skriva regedt32 och sedan välja OK.
  2. I Register Editor väljer du HKEY_LOCAL_MACHINE i fönstret Lokal dator.
  3. Expandera trädet genom att dubbelvälja mapparna med namnet i HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC sökvägen.
  4. Välj mappen MSDTC och välj sedan Nytt > DWORD-värde (32-bitars)redigera-menyn .
  5. Ändra namnet till ServerTcpPort.
  6. Högerklicka och välj Ändra för det nya värdet.
  7. I dialogrutan Värde Editor väljer du Decimal och anger sedan ditt fasta portnummer, t.ex. 40001, i fältet Värdedata och väljer sedan OK.

Om du vill konfigurera en fast port för klustrade DTC-instanser måste du hitta klusterresursens GUID och lägga till värdet ServerTcpPort under den här platsen. Använd olika portnummer för varje DTC-instans. Om din DTC-resurs-GUID till exempel är 012345678-9abc-def0-1234-56789abcdef0, skulle det vara i den här sökvägen: HKEY_LOCAL_MACHINE\Cluster\Resources\012345678-9abc-def0-1234-56789abcdef0\MSDTCPRIVATE\MSDTC. Upprepa stegen för ytterligare DTC-klustrade resurser.

Alternativt kan du använda reg add kommandona i skript med administratörsbehörighet för att utföra den här åtgärden. Justera följande exempel till ditt specifika kluster-GUID om klustrad DTC-instans används:

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

Konfigurera RPC för att använda kundens portintervall

Följ de här stegen på datorer som är involverade i DTC-transaktioner där brandväggar förhindrar fullständig kommunikation för att styra dynamisk RPC-portallokering. Brandväggen måste vara öppen i båda riktningarna för de angivna portarna och port 135 (RPC-slutpunktsmappningsporten):

  1. Starta Registry Editor genom att välja Starta, välja Kör, skriva regedt32 och sedan välja OK.

    Använd Regedt32.exe i stället för Regedit.exe. Regedit.exe stöder inte den REG_MULTI_SZ datatyp som krävs för värdet Portar.

  2. I Register Editor väljer du HKEY_LOCAL_MACHINE i fönstret Lokal dator.

  3. Expandera trädet genom att dubbelvälja mapparna med namnet i HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc sökvägen.

  4. Välj RPC-mappen och välj sedan Lägg till nyckel redigera-menyn.

  5. I dialogrutan Lägg till nyckel skriver du Internet i rutan Nyckelnamn och väljer sedan OK.

  6. Välj mappen Internet och välj sedan Lägg till värde redigera-menyn.

  7. I dialogrutan Lägg till värde skriver du Portar i rutan Värdenamn.

  8. I rutan Datatyp väljer du REG_MULTI_SZ och sedan OK.

  9. I dialogrutan Multi-String Editor i rutan Data anger du den port eller de portar som du vill att RPC ska använda för dynamisk portallokering och väljer sedan OK.

    Varje strängvärde som du skriver anger antingen en enskild port eller ett inklusivt portintervall. Om du till exempel vill öppna port 40000 anger du 40000 utan citattecken. Om du vill öppna portarna 40000 till 42000 inclusive anger du 40000-42000 utan citattecken. Du kan ange flera portar eller portintervall genom att ange en port eller ett portintervall per rad. Alla portar måste vara mellan 1024 och 65535. Om någon port ligger utanför det här intervallet eller om någon sträng är ogiltig behandlar RPC hela konfigurationen som ogiltig.

    Microsoft rekommenderar att du öppnar portar från 20000 och uppåt, eftersom lägre portar ofta används av andra program och att du öppnar minst 1 000 portar för att undvika portöverbelastning. I system med hög belastning kan du behöva fler portar. Standardintervallet 1024-5000 flyttades i Windows 2008 och senare till intervallet 49152-65535 för att undvika portöverbelastning.

  10. Följ steg 6 till 9 för att lägga till en annan nyckel för Internet med hjälp av följande värden:

    Värde: PortarInternetAvailable
    Datatyp: REG_SZ
    Data: Y

    Det här värdet betyder att portarna som anges under värdet Portar ska göras Tillgängliga på Internet.

  11. Följ steg 6 till 9 för att lägga till en annan nyckel för Internet med hjälp av följande värden:

    Värde: UseInternetPorts
    Datatyp: REG_SZ
    Data: Y

    Det här värdet betyder att RPC dynamiskt ska tilldela portar från listan över Internetportar.

  12. Konfigurera brandväggen så att den tillåter inkommande åtkomst till de angivna dynamiska portarna och till port 135 (RPC-slutpunktsmappningsporten).

  13. Starta om datorn. När RPC startas om tilldelas inkommande portar dynamiskt baserat på de registervärden som du har angett. Om du till exempel vill öppna portarna 40000 till och med 42000 skapar du följande namngivna värden:

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

DTC kräver också att du kan matcha datornamn via NetBIOS eller DNS. Kontrollera att NetBIOS är aktiverat i NIC-egenskaperna och testa om NetBIOS kan matcha namnen med hjälp av ping och servernamnet. Klientdatorn måste kunna matcha namnet på servern. Och servern måste kunna matcha namnet på klienten. Om NetBIOS inte kan matcha namnen lägger du till poster i LMHOSTS-filerna på datorerna.