Cómo comprobar si SQL Server está escuchando en un puerto dinámico o un puerto estático
En este artículo se describe cómo determinar si la instancia con nombre de Microsoft SQL Server está escuchando en un puerto dinámico frente a un puerto estático. Esta información puede ser útil cuando se solucionan diferentes problemas de conexión relacionados con SQL Server.
De forma predeterminada, una SQL Server instancia con nombre está configurada para escuchar en puertos dinámicos. Obtiene un puerto disponible del sistema operativo. También puede configurar SQL Server instancias con nombre para que se inicien en un puerto específico. Esto se conoce como 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 y dinámicos.
Use el procedimiento siguiente para determinar si el SQL Server instancia con nombre está escuchando 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 SQL Server Configuración de red, expanda Protocolos por 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 configuración Escuchar todo . Si está establecido en Sí, vaya al paso 4. Si está establecido 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 en IP All y 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 SQL Server instancia mediante 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<Number1>
<Number2>
Escucha simultánea en un puerto <Number1>
dinámico y un puerto estático<Number2>
Cambie a Direcciones IP. Observe que aparecen varias direcciones IP con 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 y 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 SQL Server instancia mediante 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: Usar PowerShell
Ejecute el siguiente script en el ISE de PowerShell. La ventana Consola muestra 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 está establecido en 1, vaya al paso 3. Si está establecido en 0, vaya al paso 4.
Examine la salida en busca 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 SQL Server instancia mediante 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 está escuchando<Number1>
<Number2>
Escucha simultánea en un puerto <Number1>
dinámico y un puerto estático<Number2>
Observe que aparecen varias direcciones IP con 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 y 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 SQL Server instancia mediante 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.