Поделиться через


Как проверка, если SQL Server прослушивает динамический или статический порт

В этой статье описывается, как определить, прослушивает ли именованный экземпляр Microsoft SQL Server динамический и статический порт. Эти сведения могут быть полезны при устранении различных проблем с подключением, связанных с SQL Server.

По умолчанию экземпляр SQL Server с именем настроен для прослушивания динамических портов. Он получает доступный порт из операционной системы. Вы также можете настроить SQL Server именованные экземпляры для запуска с определенного порта. Это называется статическим портом. Дополнительные сведения о статических и динамических портах в контексте SQL Server см. в разделе Статические и динамические порты.

Используйте следующую процедуру, чтобы определить, прослушивает ли SQL Server именованный экземпляр динамический и статический порт.

Вариант 1. Использование диспетчер конфигурации SQL Server

  1. В диспетчер конфигурации SQL Server разверните узел SQL Server Конфигурация сети, разверните узел Протоколы для имени экземпляра, а затем дважды щелкните TCP/IP.

  2. В разделе Свойства TCP/IP выберите Протокол.

  3. Проверьте значение в параметре Прослушивание всех . Если задано значение Да, перейдите к шагу 4. Если для него задано значение Нет, перейдите к шагу 6.

  4. Перейдите в раздел IP-адреса и прокрутите страницу свойств TCP/IP вниз.

  5. Проверьте значения в разделе ВСЕ IP-адреса и используйте следующую таблицу, чтобы определить, прослушивает ли именованный экземпляр динамический или статический порт.

    Динамические порты TCP TCP-порт SQL Server экземпляр, использующий динамические или статические порты?
    "Пустой". "Пустой". Динамические порты
    <Number> "Пустой". Динамические порты — <Number> динамический порт, который SQL Server в настоящее время прослушивает.
    <Number1> <Number2> Одновременный прослушивание динамического и <Number1> статического портов <Number2>
  6. Переключитесь на 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

  1. Выполните следующий скрипт в интегрированной среде сценариев 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
    
  2. В выходных данных проверка значение в столбце ListenOnAllIPs для экземпляра SQL Server (см. соответствующее значение в serverInstance для этой строки). Если для параметра задано значение 1, перейдите к шагу 3. Если для него задано значение 0, перейдите к шагу 4.

  3. Проверьте выходные данные на наличие строки с записью Любой IP-адрес в столбце DisplayName для вашего экземпляра или проверка значения TcpDynamicPorts и TcpPort для строки. Затем используйте следующую таблицу, чтобы определить, прослушивает ли именованный экземпляр динамический или статический порт.

    Динамические порты TCP TCP-порт SQL Server экземпляр, использующий динамические или статические порты?
    "Пустой". "Пустой". Динамические порты
    <Number> "Пустой". Динамические порты — <Number> это динамический порт, прослушиваемый SQL в настоящее время.
    <Number1> <Number2> Одновременный прослушивание динамического и <Number1> статического портов <Number2>
  4. Обратите внимание, что несколько 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 указывает, что именованный экземпляр в настоящее время не запущен и настроен для динамических портов. После запуска экземпляра поле значения будет отражать динамический порт, используемый экземпляром в данный момент.

См. также