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

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

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

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

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

  1. SQL Server 構成マネージャーで、[ネットワーク構成SQL Server展開し、インスタンス名[プロトコル] を展開し、[TCP/IP] をダブルクリックします。

  2. [TCP/IP プロパティ] で、[プロトコル] を選択します

  3. [ すべてリッスン ] 設定の値を確認します。 [はい] に設定されている場合は、手順 4 に進みます。 [いいえ] に設定されている場合は、手順 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>

注:

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 インスタンスの ListenOnAllIP 列の値をチェックします (その行については、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>

注:

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

関連項目