
Каждый экземпляр Microsoft SQL Server использует конкретный порт для сетевого взаимодействия. По умолчанию это TCP 1433, однако на практике администраторы часто изменяют его для безопасности или в корпоративной инфраструктуре с несколькими экземплярами. Точное определение порта критично для настройки подключения, резервного копирования и диагностики сетевых проблем.
Определить порт можно через SQL Server Configuration Manager: в разделе SQL Server Network Configuration → Protocols for [Имя_Экземпляра] необходимо открыть свойства TCP/IP и проверить значение в поле TCP Port для каждой активной сети. В случае динамических портов SQL Server использует TCP Dynamic Ports, где конкретный порт присваивается автоматически при запуске службы.
Альтернативный метод – использование PowerShell или командной строки. Команда netstat -an | findstr 1433 позволяет проверить прослушиваемые порты на локальной машине. Для динамических портов полезно выполнить SELECT local_net_address, local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID непосредственно в SQL Server, чтобы получить текущий активный порт подключения.
Кроме того, в корпоративных сетях стоит учитывать, что межсетевые экраны и маршрутизаторы могут перенаправлять порты. Проверка через утилиты типа tcping или PortQry помогает убедиться, что порт действительно доступен извне и соответствует настройкам SQL Server.
Проверка порта через SQL Server Configuration Manager

Откройте SQL Server Configuration Manager и в левой панели выберите SQL Server Network Configuration. Затем выберите Protocols for [имя_инстанса]. В списке протоколов убедитесь, что TCP/IP включен.
Щелкните правой кнопкой по TCP/IP и выберите Properties. В открывшемся окне перейдите на вкладку IP Addresses. Здесь отображаются все IP-адреса, на которых слушает SQL Server, и соответствующие им порты.
Прокрутите список до секции IPAll. В поле TCP Port указан порт, используемый по умолчанию для всех IP, если для конкретного адреса порт не задан. Если поле TCP Dynamic Ports содержит значение, SQL Server использует динамический порт, который может изменяться при каждом запуске службы.
Для фиксирования порта установите TCP Dynamic Ports в пустое значение и укажите желаемый номер в TCP Port. После изменений необходимо перезапустить службу SQL Server через SQL Server Services в Configuration Manager, чтобы новые настройки вступили в силу.
Проверка через Configuration Manager гарантирует точность информации о портах, в отличие от сторонних утилит, которые могут показывать устаревшие данные или только активные соединения.
Использование команды netstat для поиска активного порта SQL

Команда netstat позволяет выявить все активные сетевые соединения и порты на компьютере. Для поиска порта SQL сервера необходимо выполнить команду в командной строке с правами администратора:
netstat -ano | findstr :1433
После выполнения команды отобразятся строки вида:
TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING 1234
Число в последнем столбце – PID процесса, который можно проверить через Task Manager или команду:
tasklist /FI «PID eq 1234»
Если порт SQL сервера не стандартный, можно выполнить команду без фильтра:
netstat -ano | findstr LISTENING
и отфильтровать строки, соответствующие SQL Server, проверяя имя процесса через PID. Эта методика гарантирует точное определение активного порта, даже если конфигурация сервера изменена или используется динамический порт.
Определение порта через SQL Server Management Studio
Откройте SQL Server Management Studio (SSMS) и подключитесь к нужному экземпляру сервера. В панели «Объекты» выберите сервер, щелкните правой кнопкой мыши и выберите «Свойства».
В окне свойств перейдите в раздел «Соединения». Обратите внимание на параметр «Порт TCP», если он указан. Если поле пустое, SQL Server использует порт по умолчанию 1433.
Для динамически назначаемых портов откройте SQL Server Configuration Manager. Перейдите в «SQL Server Network Configuration» → «Protocols for [Имя экземпляра]». Выберите «TCP/IP», затем вкладку «IP Addresses». Прокрутите до секции «IPAll» и проверьте значение «TCP Port» для фиксированного порта или «TCP Dynamic Ports» для динамического.
Если требуется проверить текущие соединения через SSMS, выполните запрос:
SELECT local_net_address, local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID;
Этот запрос возвращает IP-адрес и порт, используемые текущим подключением к серверу. Для всех активных подключений используйте те же поля в sys.dm_exec_connections без фильтра по session_id.
Чтение порта из файла конфигурации SQL Server
SQL Server хранит настройки портов в конфигурационных файлах, доступ к которым позволяет определить используемый TCP-порт без запуска SQL Management Studio. Основной файл конфигурации для экземпляра SQL Server – sqlserver.exe.config и файлы реестра, но удобнее использовать файл sqlserver.ini или sqlserver.conf, расположенные в каталоге установки.
Алгоритм поиска порта в конфигурации:
- Перейдите в каталог установки SQL Server, например:
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\. - Найдите файл
sqlserver.iniилиsqlserver.conf. - Откройте файл любым текстовым редактором с правами администратора.
- Найдите секцию
[TCP/IP]или[Network]. - Ищите строки
TCPPort=1433илиListenOnAllIPs=0с указанием порта для конкретного IP-адреса.
Пример записи в sqlserver.ini:
[TCP/IP] Enabled=1 TCPPort=1433 IP1=192.168.0.100 IP1Port=1433 IP2=127.0.0.1 IP2Port=1433
Рекомендации при чтении:
- Если параметр
TCPDynamicPortsуказан, порт выделяется динамически. В этом случае смотреть значениеTCPPortдля фиксированного назначения. - Проверять все секции
IPnPort, чтобы убедиться, что сервер слушает на нужном IP. - Изменение конфигурации требует перезапуска службы SQL Server.
Используя конфигурационный файл, можно быстро определить порт без выполнения SQL-запросов или использования сторонних утилит, что особенно удобно для серверов без GUI.
Проверка порта через реестр Windows

Откройте редактор реестра, нажав Win+R и введя regedit. Перейдите к ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<номер_инстанса>\MSSQLServer\SuperSocketNetLib\Tcp. Здесь ключ TcpPort содержит номер порта, на котором слушает SQL Server. Если ключ отсутствует, сервер использует динамический порт, указанный в TcpDynamicPorts.
Для SQL Server Express путь отличается: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer\SuperSocketNetLib\Tcp. Значение TcpPort также определяет статический порт инстанса.
При наличии нескольких инстансов проверяйте ветки MSSQL.x для каждого. Динамический порт может изменяться после перезапуска службы; для его постоянного закрепления измените TcpDynamicPorts на пустое значение и задайте TcpPort.
После изменения параметров перезапустите службу SQL Server через services.msc, чтобы изменения вступили в силу. Проверка через реестр гарантирует точное определение текущего порта, минуя возможные переопределения в конфигурационных утилитах.
Использование PowerShell для получения информации о порте

PowerShell позволяет получить точный порт SQL Server без использования сторонних утилит. Основные подходы включают работу с WMI, реестром и командлетами SQL Server.
1. Через WMI и SQL Server Configuration Manager:
- Откройте PowerShell с правами администратора.
- Выполните команду для получения настроек TCP/IP:
Get-WmiObject -Namespace "root\Microsoft\SqlServer\ComputerManagement14" -Class ServerNetworkProtocolProperty | Where-Object { $_.PropertyName -eq "TcpPort" } - Результат покажет активные TCP-порты для каждого экземпляра SQL Server.
2. Через реестр:
- SQL Server хранит настройки портов в реестре:
HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\
\MSSQLServer\SuperSocketNetLib\Tcp\IPAll - PowerShell команда для извлечения порта:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Tcp\IPAll" | Select-Object TcpPort
- Если TcpPort пуст, используется динамический порт из TcpDynamicPorts.
3. Проверка через сетевые соединения:
- Можно определить порт текущего подключения SQL Server:
Get-NetTCPConnection -LocalPort 1433 | Where-Object { $_.State -eq "Listen" } - Если SQL Server использует нестандартный порт, замените 1433 на предполагаемый диапазон.
4. Рекомендации:
- Используйте PowerShell версии 5.1 или выше для корректной работы командлетов.
- Для удалённых серверов подключайтесь с правами администратора и убедитесь, что WMI и реестр доступны.
- Сохраняйте результаты в файл для аудита:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Tcp\IPAll" | Select-Object TcpPort | Export-Csv "C:\sql_ports.csv" -NoTypeInformation
Использование этих методов позволяет быстро получить точный номер порта любого экземпляра SQL Server на локальном или удалённом компьютере без стороннего ПО.
Диагностика проблем с подключением через порт SQL

Проверка доступности порта SQL сервера начинается с определения текущего используемого порта. По умолчанию для MSSQL это 1433, для MySQL – 3306. Если сервер использует динамический порт, его можно узнать через SQL Server Configuration Manager или команду:
SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID;
Для диагностики сетевого соединения используют команду telnet или Test-NetConnection в PowerShell:
| Команда | Описание |
|---|---|
| telnet [IP] [порт] | Проверяет доступность TCP-порта на сервере |
Если соединение не устанавливается, проверяют локальные и сетевые брандмауэры. Для MSSQL Service нужно разрешить входящие соединения на конкретный TCP-порт. Настройка брандмауэра Windows осуществляется через wf.msc с созданием правила для TCP-порта SQL.
Дополнительно проверяют конфигурацию SQL сервера:
| Проверка | Команда/Действие |
|---|---|
| Слушает ли порт | netstat -an | findstr [порт] |
| Протокол TCP включен | SQL Server Configuration Manager → SQL Server Network Configuration → Protocols for [Instance] |
| Разрешены ли удалённые подключения | SQL Server Management Studio → Properties → Connections → Allow remote connections |
Если порт открыт, но подключение всё равно не устанавливается, проверяют наличие NAT или VPN, блокирующих трафик, а также корректность имени инстанса и строки подключения. Для динамических портов рекомендуется фиксировать порт вручную и обновлять настройки брандмауэра.
Для детального логирования ошибок используют SQL Server Error Log и утилиту SQLDiag, фиксируя сообщения о невозможности подключения и отказах TCP-портов.
Вопрос-ответ:
Как узнать, какой порт использует SQL Server на моем компьютере?
Для этого можно воспользоваться SQL Server Configuration Manager. В нем нужно открыть раздел «Службы SQL Server», выбрать нужный экземпляр сервера, затем перейти в свойства протокола TCP/IP. На вкладке «IP-адреса» указаны все адреса и соответствующие им порты. Порт, используемый для подключения, обычно указан в поле TCP Port для конкретного IP-адреса или в поле TCP Dynamic Ports, если порт назначается автоматически.
Можно ли определить порт SQL сервера через командную строку?
Да, порт можно найти через командную строку с помощью утилиты `netstat`. Нужно выполнить команду `netstat -an | findstr LISTENING` и найти процесс, связанный с SQL Server (обычно это `sqlservr.exe`). В выводе будет указан локальный адрес и порт, на котором сервер принимает соединения. Такой способ позволяет быстро проверить активные подключения без открытия дополнительных инструментов.
Где в реестре Windows хранится информация о порте SQL Server?
Информация о портах SQL Server хранится в реестре по пути `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\
Что делать, если SQL Server использует динамический порт?
Если сервер назначает порт автоматически, его значение находится в поле `TCP Dynamic Ports` в свойствах TCP/IP через SQL Server Configuration Manager. При этом каждый запуск сервера может использовать другой порт. Для подключения к такому серверу с внешнего приложения лучше использовать имя экземпляра, а не порт, так как SQL Browser служба автоматически перенаправляет на текущий порт динамического экземпляра.
Можно ли определить порт SQL Server с помощью PowerShell?
Да, PowerShell позволяет получить порт SQL Server с помощью WMI-запросов. Например, команда `Get-WmiObject -namespace "root\Microsoft\SqlServer\ComputerManagement14" -class ServerNetworkProtocol` покажет настройки TCP/IP для всех экземпляров SQL Server на компьютере, включая используемые порты. Такой подход полезен для администраторов, которые управляют несколькими серверами и хотят автоматизировать проверку конфигурации.
