Come verificare se SQL Server è in ascolto su una porta dinamica o su una porta 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 risolvono diversi problemi di connessione correlati a SQL Server.
Per impostazione predefinita, un'istanza denominata di SQL Server è configurata per l'ascolto sulle porte dinamiche. Ottiene una porta disponibile dal sistema operativo. È anche possibile configurare istanze denominate di SQL Server per l'avvio in una porta specifica. Questa operazione è 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 di SQL Server è in ascolto su una porta dinamica rispetto a una porta statica.
Opzione 1: Usare Gestione configurazione SQL Server
In Gestione configurazione SQL Server espandere Configurazione di rete di SQL Server, espandere Protocolli per il nome dell'istanza e quindi fare doppio clic su TCP/IP.
In Proprietà TCP/IP selezionare Protocollo.
Controllare il valore nell'impostazione Ascolta tutto . Se è impostato su Sì, andare al passaggio 4. Se è impostato su No, andare al passaggio 6.
Passare a Indirizzi IP e scorrere fino alla fine della pagina Proprietà TCP/IP.
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 Istanza di SQL Server che usa porte dinamiche o statiche? Vuoto Vuoto Porte dinamiche <Number>
Spazio vuoto Porte dinamiche: <Number>
è la porta dinamica in cui SQL Server è attualmente in ascolto<Number1>
<Number2>
Ascolto simultaneo su una porta dinamica e una porta <Number1>
statica<Number2>
Passare agli 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 più indirizzi IP per ogni indirizzo IP nel computer. Probabilmente verranno visualizzati sia gli indirizzi IP4 che IP6. Per verificare se un indirizzo IP specifico è configurato per una porta dinamica e statica, usare la tabella seguente.
Porte dinamiche TCP Porta TCP Istanza di SQL Server che usa porte dinamiche o statiche? Vuoto Vuoto Porte dinamiche <Number>
Spazio vuoto Porte dinamiche: <Number>
è la porta dinamica su cui SQL Server è attualmente in ascolto.<Number1>
<Number2>
Ascolto simultaneo su una porta dinamica e una porta <Number1>
statica<Number2>
Note
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 usata dall'istanza.
Opzione 2: Usare PowerShell
Eseguire lo script seguente in PowerShell ISE. La finestra Console visualizza tutte le istanze TCP/IP pertinenti per tutte le istanze di SQL Server (da SQL Server 2014 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
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.
Analizzare l'output per una riga con una voce Qualsiasi indirizzo IP 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 Istanza di SQL Server che usa porte dinamiche o statiche? Vuoto Vuoto Porte dinamiche <Number>
Spazio vuoto Porte dinamiche: <Number>
è la porta dinamica in cui SQL è attualmente in ascolto<Number1>
<Number2>
Ascolto simultaneo su una porta dinamica e una porta <Number1>
statica<Number2>
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 più indirizzi IP per ogni indirizzo IP nel computer. Probabilmente verranno visualizzati sia gli indirizzi IP4 che IP6. Per verificare se un indirizzo IP specifico è configurato per una porta dinamica e statica, usare la tabella seguente.
Porte dinamiche TCP Porta TCP Istanza di SQL Server che usa porte dinamiche o statiche? Vuoto Vuoto Porte dinamiche <Number>
Spazio vuoto Porte dinamiche: <Number>
è la porta dinamica su cui SQL Server è attualmente in ascolto.<Number1>
<Number2>
Ascolto simultaneo su una porta dinamica e una porta <Number1>
statica<Number2>
Note
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 usata dall'istanza.
Vedi anche
0400 Problema di autenticazione coerente.
Configurare un server per l'ascolto su una porta TCP specifica