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
In Gestione configurazione SQL Server espandere SQL Server Configurazione di rete, Protocolli pernome 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 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>
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
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
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 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>
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.