Cómo comprobar si SQL Server está escuchando en un puerto dinámico o en un puerto estático
En este artículo se describe cómo determinar si la instancia con nombre de Microsoft SQL Server escucha en un puerto dinámico frente a un puerto estático. Esta información puede resultar útil al solucionar problemas de conexión diferentes relacionados con SQL Server.
De forma predeterminada, una instancia con nombre de SQL Server está configurada para escuchar en puertos dinámicos. Obtiene un puerto disponible desde el sistema operativo. También puede configurar instancias con nombre de SQL Server para que se inicien en un puerto específico. Esto se conoce como un puerto estático. Para obtener más información sobre los puertos estáticos y dinámicos en el contexto de SQL Server, vea Puertos estáticos frente a dinámicos.
Use el procedimiento siguiente para determinar si la instancia con nombre de SQL Server escucha en un puerto dinámico frente a un puerto estático.
Opción 1: Usar Administrador de configuración de SQL Server
En Administrador de configuración de SQL Server, expanda Configuración de red de SQL Server, expanda Protocolos para el nombre de instancia y, a continuación, haga doble clic en TCP/IP.
En Propiedades de TCP/IP, seleccione Protocolo.
Compruebe el valor en la opción Escuchar todo . Si se establece en Sí, vaya al paso 4. Si se establece en No, vaya al paso 6.
Vaya a Direcciones IP y desplácese hasta la parte inferior de la página Propiedades de TCP/IP.
Compruebe los valores de IP All y use la tabla siguiente para determinar si la instancia con nombre escucha en un puerto dinámico o estático.
Puertos dinámicos TCP Puerto TCP ¿La instancia de SQL Server usa puertos dinámicos o estáticos? En blanco En blanco Puertos dinámicos <Number>
En blanco Puertos dinámicos <Number>
: es el puerto dinámico en el que SQL Server está escuchando actualmente.<Number1>
<Number2>
Escucha simultánea en un puerto <Number1>
dinámico y un puerto estático<Number2>
Cambie a Direcciones IP. Observe que varias direcciones IP aparecen en el formato IP1, IP2, hasta IP All. Una de estas direcciones IP está pensada para el adaptador de bucle invertido, 127.0.0.1. Aparecen más direcciones IP para cada dirección IP del equipo. (Probablemente verá direcciones IP4 e IP6). Para comprobar si una dirección IP específica está configurada para un puerto dinámico frente a estático, use la tabla siguiente.
Puertos dinámicos TCP Puerto TCP ¿La instancia de SQL Server usa puertos dinámicos o estáticos? En blanco En blanco Puertos dinámicos <Number>
En blanco Puertos dinámicos <Number>
: es el puerto dinámico en el que SQL Server está escuchando actualmente.<Number1>
<Number2>
Escucha simultánea en un puerto <Number1>
dinámico y un puerto estático<Number2>
Nota:
Un valor de 0 en puertos dinámicos TCP indica que la instancia con nombre no se está ejecutando actualmente y está configurada para puertos dinámicos. Después de iniciar la instancia, el campo de valor reflejará el puerto dinámico que la instancia está usando actualmente.
Opción 2: Uso de PowerShell
Ejecute el siguiente script en PowerShell ISE. En la ventana Consola se muestran todos los TCP/IP pertinentes para todas las instancias de SQL Server (SQL Server 2014 a SQL Server 2019) que están instaladas actualmente en el 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
En la salida, compruebe el valor de la columna ListenOnAllIPs de la instancia de SQL Server (consulte el valor correspondiente en ServerInstance para esa fila). Si el valor se establece en 1, vaya al paso 3. Si se establece en 0, vaya al paso 4.
Examine la salida de una fila que tenga una entrada Cualquier dirección IP en la columna DisplayName de la instancia, o compruebe los valores de TcpDynamicPorts y TcpPort para la fila. A continuación, use la tabla siguiente para determinar si la instancia con nombre está escuchando en un puerto dinámico o estático.
Puertos dinámicos TCP Puerto TCP ¿La instancia de SQL Server usa puertos dinámicos o estáticos? En blanco En blanco Puertos dinámicos <Number>
En blanco Puertos dinámicos <Number>
: es el puerto dinámico en el que está escuchando actualmente SQL.<Number1>
<Number2>
Escucha simultánea en un puerto <Number1>
dinámico y un puerto estático<Number2>
Observe que varias direcciones IP aparecen en el formato IP1, IP2, hasta IP All. Una de estas direcciones IP está pensada para el adaptador de bucle invertido, 127.0.0.1. Aparecen más direcciones IP para cada dirección IP del equipo. (Probablemente verá direcciones IP4 e IP6). Para comprobar si una dirección IP específica está configurada para un puerto dinámico frente a estático, use la tabla siguiente.
Puertos dinámicos TCP Puerto TCP ¿La instancia de SQL Server usa puertos dinámicos o estáticos? En blanco En blanco Puertos dinámicos <Number>
En blanco Puertos dinámicos <Number>
: es el puerto dinámico en el que SQL Server está escuchando actualmente.<Number1>
<Number2>
Escucha simultánea en un puerto <Number1>
dinámico y un puerto estático<Number2>
Nota:
Un valor de 0 en puertos dinámicos TCP indica que la instancia con nombre no se está ejecutando actualmente y está configurada para puertos dinámicos. Después de iniciar la instancia, el campo de valor reflejará el puerto dinámico que la instancia está usando actualmente.