Condividi tramite


Come verificare se SQL Server è in ascolto su una porta dinamica o statica

Questo articolo illustra come determinare se l'istanza denominata di Microsoft SQL Server è in ascolto su una porta dinamica rispetto a una porta statica. Queste informazioni possono essere utili quando si risolveno problemi di connessione diversi correlati a SQL Server.

Per impostazione predefinita, un'istanza denominata SQL Server è configurata per l'ascolto sulle porte dinamiche. Ottiene una porta disponibile dal sistema operativo. È anche possibile configurare SQL Server istanze denominate per l'avvio da una porta specifica. Questa porta è nota come porta statica. Per altre informazioni sulle porte statiche e dinamiche nel contesto di SQL Server, vedere Porte statiche e dinamiche.

Utilizzare la procedura seguente per determinare se l'istanza denominata SQL Server è in ascolto su una porta dinamica rispetto a una porta statica.

Opzione 1: Usare Gestione configurazione SQL Server

  1. In Gestione configurazione SQL Server espandere SQL Server Configurazione di rete, Protocolli pernome istanza e quindi fare doppio clic su TCP/IP.

  2. In Proprietà TCP/IP selezionare Protocollo.

  3. Controllare il valore nell'impostazione Ascolta tutto . Se è impostato su , andare al passaggio 4. Se è impostato su No, andare al passaggio 6.

  4. Passare a Indirizzi IP e scorrere fino alla fine della pagina Proprietà TCP/IP .

  5. Controllare i valori in IP All e usare la tabella seguente per determinare se l'istanza denominata è in ascolto su una porta dinamica o statica.

    Porte dinamiche TCP Porta TCP SQL Server'istanza che usa porte dinamiche o statiche?
    Zero Zero Porte dinamiche
    <Number> Zero Porte dinamiche: <Number> è la porta dinamica su cui SQL Server è attualmente in ascolto
    <Number1> <Number2> Ascolto simultaneo su una porta <Number1> dinamica e una porta statica <Number2>
  6. Passare a Indirizzi IP. Si noti che diversi indirizzi IP vengono visualizzati nel formato IP1, IP2, fino a IP All. Uno di questi indirizzi IP è destinato all'adattatore loopback 127.0.0.1. Vengono visualizzati altri indirizzi IP per ogni indirizzo IP nel computer. È probabile che vengano visualizzati sia gli indirizzi IP4 che ip6. Per verificare se un indirizzo IP specifico è configurato per una porta dinamica o statica, usare la tabella seguente.

    Porte dinamiche TCP Porta TCP SQL Server'istanza che usa porte dinamiche o statiche?
    Zero Zero Porte dinamiche
    <Number> Zero Porte dinamiche: <Number> è la porta dinamica su cui SQL Server è attualmente in ascolto.
    <Number1> <Number2> Ascolto simultaneo su una porta <Number1> dinamica e una porta statica <Number2>

Nota

Il valore 0 nelle porte dinamiche TCP indica che l'istanza denominata non è attualmente in esecuzione ed è configurata per le porte dinamiche. Dopo aver avviato l'istanza, il campo valore rifletterà la porta dinamica attualmente in uso.

Opzione 2: Usare PowerShell

  1. Eseguire lo script seguente in PowerShell ISE. Nella finestra Console vengono visualizzate tutte le istanze TCP/IP pertinenti per tutte le istanze di SQL Server (SQL Server 2014 fino a SQL Server 2019) attualmente installate nel sistema.

    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. Nell'output controllare il valore nella colonna ListenOnAllIPs per l'istanza di SQL Server (fare riferimento al valore corrispondente in ServerInstance per tale riga). Se il valore è impostato su 1, andare al passaggio 3. Se è impostato su 0, andare al passaggio 4.

  3. Analizzare l'output per individuare una riga con una voce Any IP Address nella colonna DisplayName per l'istanza oppure controllare i valori di TcpDynamicPorts e TcpPort per la riga. Usare quindi la tabella seguente per determinare se l'istanza denominata è in ascolto su una porta dinamica o statica.

    Porte dinamiche TCP Porta TCP SQL Server'istanza che usa porte dinamiche o statiche?
    Zero Zero Porte dinamiche
    <Number> Zero Porte dinamiche: <Number> la porta dinamica su cui SQL è attualmente in ascolto
    <Number1> <Number2> Ascolto simultaneo su una porta <Number1> dinamica e una porta statica <Number2>
  4. Si noti che diversi indirizzi IP vengono visualizzati nel formato IP1, IP2, fino a IP All. Uno di questi indirizzi IP è destinato all'adattatore loopback 127.0.0.1. Vengono visualizzati altri indirizzi IP per ogni indirizzo IP nel computer. È probabile che vengano visualizzati sia gli indirizzi IP4 che ip6. Per verificare se un indirizzo IP specifico è configurato per una porta dinamica o statica, usare la tabella seguente.

    Porte dinamiche TCP Porta TCP SQL Server'istanza che usa porte dinamiche o statiche?
    Zero Zero Porte dinamiche
    <Number> Zero Porte dinamiche: <Number> è la porta dinamica su cui SQL Server è attualmente in ascolto.
    <Number1> <Number2> Ascolto simultaneo su una porta <Number1> dinamica e una porta statica <Number2>

Nota

Il valore 0 nelle porte dinamiche TCP indica che l'istanza denominata non è attualmente in esecuzione ed è configurata per le porte dinamiche. Dopo aver avviato l'istanza, il campo valore rifletterà la porta dinamica attualmente in uso.

Vedere anche