Как проверить, прослушивает ли SQL Server динамический порт или статический порт.
В этой статье описывается, как определить, прослушивает ли именованный экземпляр Microsoft SQL Server на динамическом порту и статический порт. Эти сведения могут быть полезны при устранении различных проблем с подключением, связанных с SQL Server.
По умолчанию именованный экземпляр SQL Server настроен для прослушивания динамических портов. Он получает доступный порт из операционной системы. Можно также настроить именованные экземпляры SQL Server для запуска с определенного порта. Это называется статическим портом. Дополнительные сведения о статических и динамических портах в контексте SQL Server см. в разделе "Статические и динамические порты".
Используйте следующую процедуру, чтобы определить, прослушивает ли именованный экземпляр SQL Server динамический порт и статический порт.
Вариант 1. Использование диспетчер конфигурации SQL Server
В диспетчер конфигурации SQL Server разверните конфигурацию сети SQL Server, разверните протоколы для имени экземпляра и дважды щелкните TCP/IP.
В свойствах TCP/IP выберите протокол.
Проверьте значение в параметре "Прослушивание всех ". Если задано значение "Да", перейдите к шагу 4. Если для него задано значение "Нет", перейдите к шагу 6.
Перейдите к IP-адресам и прокрутите внизу страницы свойств TCP/IP.
Проверьте значения в IP All и используйте следующую таблицу, чтобы определить, прослушивает ли именованный экземпляр динамический или статический порт.
Динамические порты TCP TCP-порт Экземпляр SQL Server с использованием динамических или статических портов? Чистого листа Чистого листа Динамические порты <Number>
Пробел Динамические порты — <Number>
это динамический порт, в который в настоящее время прослушивается SQL Server.<Number1>
<Number2>
Параллельное прослушивание динамического порта <Number1>
и статического порта<Number2>
Переключитесь на IP-адреса. Обратите внимание, что несколько IP-адресов отображаются в формате IP1, IP2 до IP All. Один из этих IP-адресов предназначен для адаптера обратного цикла 127.0.0.1. Дополнительные IP-адреса отображаются для каждого IP-адреса на компьютере. (Вероятно, вы увидите IP4 и IP6-адреса.) Чтобы проверить, настроен ли конкретный IP-адрес для динамического и статического порта, используйте следующую таблицу.
Динамические порты TCP TCP-порт Экземпляр SQL Server с использованием динамических или статических портов? Чистого листа Чистого листа Динамические порты <Number>
Пробел Динамические порты — <Number>
это динамический порт, в который в настоящее время прослушивается SQL Server.<Number1>
<Number2>
Параллельное прослушивание динамического порта <Number1>
и статического порта<Number2>
Примечание.
Значение 0 в динамических портах TCP указывает, что именованный экземпляр в настоящее время не запущен и настроен для динамических портов. После запуска экземпляра поле значения будет отражать динамический порт, используемый экземпляром.
Вариант 2. Использование PowerShell
Выполните следующий сценарий в среде сценариев PowerShell. В окне консоли отображаются все соответствующие TCP/IP-адреса для всех экземпляров SQL Server (SQL Server 2014 по SQL Server 2019), которые в настоящее время установлены в системе.
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
В выходных данных проверьте значение в столбце ListenOnAllIPs для экземпляра SQL Server (см. соответствующее значение в ServerInstance для этой строки). Если для значения задано значение 1, перейдите к шагу 3. Если для него задано значение 0, перейдите к шагу 4.
Проверьте выходные данные строки с записью "Любой IP-адрес " в столбце DisplayName для экземпляра или проверьте значения TcpDynamicPorts и TcpPort для строки. Затем используйте следующую таблицу, чтобы определить, прослушивает ли именованный экземпляр динамический или статический порт.
Динамические порты TCP TCP-порт Экземпляр SQL Server с использованием динамических или статических портов? Чистого листа Чистого листа Динамические порты <Number>
Пробел Динамические порты — <Number>
это динамический порт SQL, в настоящее время прослушивается<Number1>
<Number2>
Параллельное прослушивание динамического порта <Number1>
и статического порта<Number2>
Обратите внимание, что несколько IP-адресов отображаются в формате IP1, IP2 до IP All. Один из этих IP-адресов предназначен для адаптера обратного цикла 127.0.0.1. Дополнительные IP-адреса отображаются для каждого IP-адреса на компьютере. (Вероятно, вы увидите IP4 и IP6-адреса.) Чтобы проверить, настроен ли конкретный IP-адрес для динамического и статического порта, используйте следующую таблицу.
Динамические порты TCP TCP-порт Экземпляр SQL Server с использованием динамических или статических портов? Чистого листа Чистого листа Динамические порты <Number>
Пробел Динамические порты — <Number>
это динамический порт, в который в настоящее время прослушивается SQL Server.<Number1>
<Number2>
Параллельное прослушивание динамического порта <Number1>
и статического порта<Number2>
Примечание.
Значение 0 в динамических портах TCP указывает, что именованный экземпляр в настоящее время не запущен и настроен для динамических портов. После запуска экземпляра поле значения будет отражать динамический порт, используемый экземпляром.
См. также
Проблема с согласованной проверкой подлинности 0400.