次の方法で共有


SQL Server が動的ポートまたは静的ポートでリッスンしているかどうかを確認する方法

この記事では、Microsoft SQL Server の名前付きインスタンスが動的ポートと静的ポートのどちらをリッスンしているかを判断する方法について説明します。 この情報は、SQL Server に関連するさまざまな接続の問題をトラブルシューティングする場合に役立ちます。

既定では、SQL Server の名前付きインスタンスは動的ポートをリッスンするように構成されます。 オペレーティング システムから使用可能なポートを取得します。 特定のポートから開始するように SQL Server の名前付きインスタンスを構成することもできます。 これは静的ポートと呼ばれます。 SQL Server のコンテキストでの静的ポートと動的ポートの詳細については、「 静的ポートと動的ポートを参照してください。

次の手順を使用して、SQL Server の名前付きインスタンスが動的ポートと静的ポートのどちらをリッスンしているかを判断します。

オプション 1: SQL Server 構成マネージャーを使用する

  1. SQL Server 構成マネージャーで、SQL Server Network Configuration を展開し、Protocols instance name を展開し、TCP/IP をダブルクリックします。

  2. TCP/IP プロパティで、[プロトコル選択

  3. Listen All 設定の値を確認します。 Yes に設定されている場合は、手順 4 に進みます。 No に設定されている場合は、手順 6 に進みます。

  4. IP アドレスに移動し、TCP/IP プロパティ ページの下部までスクロールします。

  5. IP All の値を確認し、次の表を使用して、名前付きインスタンスが動的ポートと静的ポートのどちらをリッスンしているかを確認します。

    TCP 動的ポート TCP ポート 動的ポートまたは静的ポートを使用する SQL Server インスタンス
    空白 空白 動的ポート
    <Number> 空白 動的ポート - <Number> は、SQL Server が現在リッスンしている動的ポートです
    <Number1> <Number2> 動的ポート <Number1> と静的ポートで同時にリッスンする <Number2>
  6. IP アドレスに切り替えます。 IP1IP2、最大 IP All の形式で複数の IP アドレスが表示されていることに注意してください。 これらの IP アドレスの 1 つは、ループバック アダプター ( 127.0.0.1 を対象としています。 コンピューター上の各 IP アドレスに対して、さらに多くの IP アドレスが表示されます。 (IP4 アドレスと IP6 アドレスの両方が表示される可能性があります)。特定の IP アドレスが動的ポートと静的ポートに対して構成されているかどうかを確認するには、次の表を使用します。

    TCP 動的ポート TCP ポート 動的ポートまたは静的ポートを使用する SQL Server インスタンス
    空白 空白 動的ポート
    <Number> 空白 動的ポート - <Number> は、SQL Server が現在リッスンしている動的ポートです。
    <Number1> <Number2> 動的ポート <Number1> と静的ポートで同時にリッスンする <Number2>

Note

TCP 動的ポートの値0名前付きインスタンスが現在実行されておらず、動的ポート用に構成されていることを示します。 インスタンスを開始すると、値フィールドには、インスタンスが現在使用している動的ポートが反映されます。

オプション 2: PowerShell を使用する

  1. PowerShell ISE で次のスクリプトを実行します。 コンソール ウィンドウには、システムに現在インストールされているすべての SQL Server インスタンス (SQL Server 2014 から SQL Server 2019) に関連するすべての TCP/IP が表示されます。

    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. 出力で、SQL Server インスタンスの ListenOnAllIPs 列の値を確認します (その行については、 ServerInstance の対応する値を参照してください)。 値が 1 に設定されている場合は、手順 3 に進みます。 0 に設定されている場合手順 4 に進みます。

  3. インスタンスの DisplayName 列に Any IP Address エントリがある行の出力をスキャンするか、行の TcpDynamicPortsTcpPort の値を確認します。 次の表を使用して、名前付きインスタンスが動的ポートと静的ポートのどちらをリッスンしているかを判断します。

    TCP 動的ポート TCP ポート 動的ポートまたは静的ポートを使用する SQL Server インスタンス
    空白 空白 動的ポート
    <Number> 空白 動的ポート - <Number> は、SQL が現在リッスンしている動的ポートです
    <Number1> <Number2> 動的ポート <Number1> と静的ポートで同時にリッスンする <Number2>
  4. IP1IP2、最大 IP All の形式で複数の IP アドレスが表示されていることに注意してください。 これらの IP アドレスの 1 つは、ループバック アダプター ( 127.0.0.1 を対象としています。 コンピューター上の各 IP アドレスに対して、さらに多くの IP アドレスが表示されます。 (IP4 アドレスと IP6 アドレスの両方が表示される可能性があります)。特定の IP アドレスが動的ポートと静的ポートに対して構成されているかどうかを確認するには、次の表を使用します。

    TCP 動的ポート TCP ポート 動的ポートまたは静的ポートを使用する SQL Server インスタンス
    空白 空白 動的ポート
    <Number> 空白 動的ポート - <Number> は、SQL Server が現在リッスンしている動的ポートです。
    <Number1> <Number2> 動的ポート <Number1> と静的ポートで同時にリッスンする <Number2>

Note

TCP 動的ポートの値0名前付きインスタンスが現在実行されておらず、動的ポート用に構成されていることを示します。 インスタンスを開始すると、値フィールドには、インスタンスが現在使用している動的ポートが反映されます。

関連項目