Überprüfen, ob SQL Server an einem dynamischen oder statischen Port lauscht

In diesem Artikel wird erläutert, wie Sie ermitteln können, ob Ihr Microsoft-SQL Server mit dem Namen instance einen dynamischen Port im Vergleich zu einem statischen Port überwacht. Diese Informationen können hilfreich sein, wenn Sie verschiedene Verbindungsprobleme im Zusammenhang mit SQL Server beheben.

Standardmäßig ist ein SQL Server namens instance für das Lauschen an dynamischen Ports konfiguriert. Es erhält einen verfügbaren Port vom Betriebssystem. Sie können auch SQL Server benannten Instanzen so konfigurieren, dass sie an einem bestimmten Port beginnen. Dies wird als statischer Port bezeichnet. Weitere Informationen zu statischen und dynamischen Ports im Kontext von SQL Server finden Sie unter Statische und dynamische Ports.

Verwenden Sie das folgende Verfahren, um zu bestimmen, ob der SQL Server namens instance an einem dynamischen Port im Vergleich zu einem statischen Port lauscht.

Option 1: Verwenden von SQL Server-Konfigurations-Manager

  1. Erweitern Sie SQL Server-Konfigurations-ManagerSQL Server Netzwerkkonfiguration, erweitern Sie Protokolle für instance Namen, und doppelklicken Sie dann auf TCP/IP.

  2. Wählen Sie unter TCP/IP-Eigenschaften die Option Protokoll aus.

  3. Überprüfen Sie den Wert in der Einstellung Alle lauschen . Wenn sie auf Ja festgelegt ist, fahren Sie mit Schritt 4 fort. Wenn sie auf Nein festgelegt ist, fahren Sie mit Schritt 6 fort.

  4. Wechseln Sie zu IP-Adressen, und scrollen Sie zum Ende der Seite TCP/IP-Eigenschaften .

  5. Überprüfen Sie die Werte in IP All, und verwenden Sie die folgende Tabelle, um zu ermitteln, ob der benannte instance an einem dynamischen oder statischen Port lauscht.

    Dynamische TCP-Ports TCP-Port SQL Server instance dynamische oder statische Ports verwenden?
    Leer Leer Dynamische Ports
    <Number> Leer Dynamische Ports: <Number> Der dynamische Port, an dem SQL Server derzeit lauscht
    <Number1> <Number2> Gleichzeitiges Lauschen an einem dynamischen und <Number1> einem statischen Port <Number2>
  6. Wechseln Sie zu IP-Adressen. Beachten Sie, dass mehrere IP-Adressen im Format IP1, IP2 bis IP All angezeigt werden. Eine dieser IP-Adressen ist für den Loopbackadapter 127.0.0.1 vorgesehen. Für jede IP-Adresse auf dem Computer werden weitere IP-Adressen angezeigt. (Wahrscheinlich werden sowohl IP4- als auch IP6-Adressen angezeigt.) Verwenden Sie die folgende Tabelle, um zu überprüfen, ob eine bestimmte IP-Adresse für einen dynamischen und statischen Port konfiguriert ist.

    Dynamische TCP-Ports TCP-Port SQL Server instance dynamische oder statische Ports verwenden?
    Leer Leer Dynamische Ports
    <Number> Leer Dynamische Ports: <Number> Der dynamische Port, an dem SQL Server derzeit lauscht.
    <Number1> <Number2> Gleichzeitiges Lauschen an einem dynamischen und <Number1> einem statischen Port <Number2>

Hinweis

Der Wert 0 in dynamischen TCP-Ports gibt an, dass der benannte instance derzeit nicht ausgeführt wird und für dynamische Ports konfiguriert ist. Nachdem Sie die instance gestartet haben, spiegelt das Wertfeld den dynamischen Port wider, den der instance derzeit verwendet.

Option 2: Verwenden von PowerShell

  1. Führen Sie das folgende Skript in der PowerShell ISE aus. Im Konsolenfenster werden alle relevanten TCP/IP-Adressen für alle Ihre SQL Server-Instanzen (SQL Server 2014 bis SQL Server 2019) angezeigt, die derzeit auf dem System installiert sind.

    clear
    Write-Host "SQL Server 2019"
    Write-Host "====================="
    Get-ItemProperty  -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.*\MSSQLServer\SuperSocketNetLib\Tcp" | Select-Object -Property Enabled, KeepAlive, ListenOnAllIps,@{label='ServerInstance';expression={$_.PSPath.Substring(74)}} |Format-Table -AutoSize
    Get-ItemProperty  -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.*\MSSQLServer\SuperSocketNetLib\Tcp\IP*\" | Select-Object -Property TcpDynamicPorts,TcpPort,DisplayName, @{label='ServerInstance_and_IP';expression={$_.PSPath.Substring(74)}}, IpAddress |Format-Table -AutoSize
    
    Write-Host "SQL Server 2017"
    Write-Host "====================="
    Get-ItemProperty  -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.*\MSSQLServer\SuperSocketNetLib\Tcp" | Select-Object -Property Enabled, KeepAlive, ListenOnAllIps,@{label='ServerInstance';expression={$_.PSPath.Substring(74)}} |Format-Table -AutoSize
    Get-ItemProperty  -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.*\MSSQLServer\SuperSocketNetLib\Tcp\IP*\" | Select-Object -Property  TcpDynamicPorts,TcpPort, DisplayName, @{label='ServerInstance_and_IP';expression={$_.PSPath.Substring(74)}}, IpAddress |Format-Table -AutoSize
    
    Write-Host "SQL Server 2016"
    Write-Host "====================="
    Get-ItemProperty  -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.*\MSSQLServer\SuperSocketNetLib\Tcp" | Select-Object -Property Enabled, KeepAlive, ListenOnAllIps,@{label='ServerInstance';expression={$_.PSPath.Substring(74)}} |Format-Table -AutoSize
    Get-ItemProperty  -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.*\MSSQLServer\SuperSocketNetLib\Tcp\IP*\" | Select-Object -Property  TcpDynamicPorts,TcpPort, DisplayName, @{label='ServerInstance_and_IP';expression={$_.PSPath.Substring(74)}}, IpAddress |Format-Table -AutoSize
    
    Write-Host "SQL Server 2014"
    Write-Host "====================="
    Get-ItemProperty  -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.*\MSSQLServer\SuperSocketNetLib\Tcp" | Select-Object -Property Enabled, KeepAlive, ListenOnAllIps,@{label='ServerInstance';expression={$_.PSPath.Substring(74)}} |Format-Table -AutoSize
    Get-ItemProperty  -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.*\MSSQLServer\SuperSocketNetLib\Tcp\IP*\" | Select-Object -Property  TcpDynamicPorts,TcpPort, DisplayName, @{label='ServerInstance_and_IP';expression={$_.PSPath.Substring(74)}}, IpAddress |Format-Table -AutoSize
    
  2. Überprüfen Sie in der Ausgabe den Wert in der Spalte ListenOnAllIPs für Ihre SQL Server instance (siehe den entsprechenden Wert in ServerInstance für diese Zeile). Wenn der Wert auf 1 festgelegt ist, fahren Sie mit Schritt 3 fort. Wenn sie auf 0 festgelegt ist, fahren Sie mit Schritt 4 fort.

  3. Überprüfen Sie die Ausgabe nach einer Zeile mit dem Eintrag Any IP Address in der Spalte DisplayName für Ihre instance, oder überprüfen Sie die Werte von TcpDynamicPorts und TcpPort für die Zeile. Verwenden Sie dann die folgende Tabelle, um zu bestimmen, ob der benannte instance an einem dynamischen oder statischen Port lauscht.

    Dynamische TCP-Ports TCP-Port SQL Server instance dynamische oder statische Ports verwenden?
    Leer Leer Dynamische Ports
    <Number> Leer Dynamische Ports: <Number> Ist der dynamische Port, an dem SQL derzeit lauscht?
    <Number1> <Number2> Gleichzeitiges Lauschen an einem dynamischen und <Number1> einem statischen Port <Number2>
  4. Beachten Sie, dass mehrere IP-Adressen im Format IP1, IP2 bis IP All angezeigt werden. Eine dieser IP-Adressen ist für den Loopbackadapter 127.0.0.1 vorgesehen. Für jede IP-Adresse auf dem Computer werden weitere IP-Adressen angezeigt. (Wahrscheinlich werden sowohl IP4- als auch IP6-Adressen angezeigt.) Verwenden Sie die folgende Tabelle, um zu überprüfen, ob eine bestimmte IP-Adresse für einen dynamischen und statischen Port konfiguriert ist.

    Dynamische TCP-Ports TCP-Port SQL Server instance dynamische oder statische Ports verwenden?
    Leer Leer Dynamische Ports
    <Number> Leer Dynamische Ports: <Number> Der dynamische Port, an dem SQL Server derzeit lauscht.
    <Number1> <Number2> Gleichzeitiges Lauschen an einem dynamischen und <Number1> einem statischen Port <Number2>

Hinweis

Der Wert 0 in dynamischen TCP-Ports gibt an, dass der benannte instance derzeit nicht ausgeführt wird und für dynamische Ports konfiguriert ist. Nachdem Sie die instance gestartet haben, spiegelt das Wertfeld den dynamischen Port wider, den der instance derzeit verwendet.

Siehe auch