Номера порта TCP/IP, необходимые для связи с сервером SQL через брандмауэр

Переводы статьи Переводы статьи
Код статьи: 287932 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Аннотация

В этой статье рассказывается о номерах порта TCP/IP, необходимых для связи с сервером Microsoft SQL Server через брандмауэр. Порт сервера SQL Server по умолчанию — 1433, и портам клиента назначаются произвольные значения между 1024 и 5000.

Дополнительные сведения о номерах порта, необходимых для сервера SQL Server, см. в разделе "Дополнительные сведения" этой статьи. 

Дополнительная информация

Сервер SQL Server — это приложение Winsock, которое устанавливает связь через протокол TCP/IP, используя сетевую библиотеку Sockets. Сервер SQL Server ведет прослушивание входящих подключений на определенном порте. Порт по умолчанию для SQL Server — 1433. Номер порта не обязательно должен быть 1433; 1433 — это официальный номер сокета для SQL Server, назначаемый агентством Internet Assigned Number Authority (IANA).

Клиентское приложение взаимодействует с сервером SQL Server, используя клиентскую сетевую библиотеку Dbmssocn.dll (или Dbnetlib.dll для сервера SQL Server 2000), а также любой клиент, использующий компоненты доступа к данным MDAC 2.6.

Когда клиент устанавливает соединение по протоколу TCP/IP, происходит трехстороннее подтверждение. Клиент открывает порт источника и отправляет трафик к порту назначения, номер которого по умолчанию — 1433. Номер используемого клиентского порта источника произволен, но не может быть меньше 1024. По умолчанию, когда приложение запрашивает сокет у системы для исходящего звонка, предоставляется номер порта, значение которого — от 1024 до 5000. Дополнительные сведения см. на этом веб-сайте Майкрософт: Сервер (в данном случае SQL Server) затем взаимодействует с клиентом, отправляя трафик с порта 1433 обратно на порт, установленный клиентом.

Лучший способ наблюдать за этим поведением — выполнить трассировку соединения клиент-сервер с помощью сетевого монитора Microsoft или средства анализа сетевых пакетов. Чтобы настроить брандмауэр, разрешите отправку трафика с *ЛЮБОГО* порта на порт 1433 и обратно (*ЛЮБОЙ* порт — это порт с номером больше, чем 1024). 

Кроме сетевого монитора Microsoft вы также можете использовать служебную программу TCP/IP Netstat, чтобы проиллюстрировать это поведение. Вот какой результат дает запуск команды netstat -an с командного окна MS-DOS: отображаются три установленных подключения к серверу SQL Server. В этом примере IP-адрес сервера SQL Server — 157.54.178.42, а IP-адрес клиента — 157.54.178.31. Порты, которые открывает клиент, — это, соответственно, 1746, 1748 и 1750. 
Имя   Локальный адрес          Внешний адрес        Состояние
 TCP    157.54.178.42:1433     0.0.0.0:0              LISTENING
 TCP    157.54.178.42:1433     157.54.178.31:1746     ESTABLISHED
 TCP    157.54.178.42:1433     157.54.178.31:1748     ESTABLISHED
 TCP    157.54.178.42:1433     157.54.178.31:1750     ESTABLISHED
					
Брандмауэр должен позволить это динамическое распределение с использованием правил. В таком случае вы сможете настроить подключение между портом 1433 и *ЛЮБЫМ* портом как "установленное". В результате, с помощью проверки пакетов с отслеживанием состояния, произойдет динамическое открытие порта откликов после отправки пакета syn и, после него, syn/ack.

Невозможно ограничить количество TCP-портов источника, используемых для клиента SQL Server, так как клиент должен выделить новый, неиспользованный динамический порт. Это стандарт TCP/IP, определенный для приложений Winsock, а не ограничение связи с клиентом SQL Server.

Кроме того, именованный экземпляр сервера SQL Server 2000 использует динамический порт назначения по умолчанию. Перед настройкой брандмауэра этот порт следует заменить на фиксированный. Для настройки порта назначения следует использовать программу SQL Server Network Utility. Дополнительные сведения об использовании SQL Server Network Utility см. в электронной документации для Microsoft SQL Server.

В противном случае клиентскому компьютеру потребовалось бы открыть случайный порт UDP, а UDP-порт 1434 сервера понадобился бы для того, чтобы отправить имя экземпляра и (если экземпляр кластеризирован) версию экземпляра SQL, номер TCP-порта, прослушиваемого экземпляром, и именованный канал, используемый экземпляром. Однако, если нужно свести к минимуму число портов, открытых в брандмауэре, следует выбрать номер статического порта для экземпляра по умолчанию и любого именованного экземпляра. Потребовалось бы настроить клиентские компьютеры, чтобы подключиться к определенному имени сервера или экземпляру имени сервера и порту с определенным номером.

Дополнительные сведения см. в этих статьях базы знаний Майкрософт:
216415 Инструкции Настройка сервера SQL Server с прокси-сервером
148942 Запись сетевого трафика с помощью сетевого монитора
169292 Основные принципы интерпретации результатов трассировки протокола TCP/IP
269882 Инструкции Использование объектов ADO для подключения к серверу SQL Server, который расположен под защитой брандмауэра

Свойства

Код статьи: 287932 - Последний отзыв: 29 ноября 2013 г. - Revision: 13.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Ключевые слова: 
kbsqlsetup kbinfo KB287932

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com