Números de porta TCP/IP necessários para comunicação com o SQL através de um firewall

Traduções deste artigo Traduções deste artigo
ID do artigo: 287932 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sumário

Este artigo descreve os números de porta TCP/IP necessários para o Microsoft SQL Server se comunicar através de um firewall. A porta padrão do SQL Server é 1433, e as portas do cliente recebem um valor aleatório entre 1024 e 5000.

Para obter informações detalhadas sobre os números de porta necessários para o SQL Server, consulte a seção "Mais informações" deste artigo. 

Mais Informações

O SQL Server é um aplicativo Winsock que se comunica via TCP/IP usando a biblioteca de rede de soquetes. O SQL Server escuta conexões de entrada em uma porta específica. A porta padrão do SQL Server é 1433. Ela não precisa ser 1433, mas este é o número de soquete oficial da IANA (Internet Assigned Number Authority) para o SQL Server.

Um aplicativo cliente se comunica com o SQL Server usando a biblioteca de rede no lado do cliente Dbmssocn.dll (ou Dbnetlib.dll para o SQL Server 2000) e com qualquer cliente usando o MDAC (Microsoft Data Access Components) 2.6.

Quando o cliente estabelece uma conexão TCP/IP, ocorre um handshake tridicioal. O cliente abre uma porta de origem e envia o tráfego para uma porta de destino, que é 1433 por padrão. A porta de origem do cliente em uso é aleatória, mas é maior que 1024. Por padrão, quando um aplicativo solicita um soquete do sistema para uma chamada de saída, é fornecido um número de porta entre os valores 1024 e 5000. Para obter mais informações, consulte o seguinte site da Microsoft:
Detalhes da Detalhes da implementação TCP/IP no Microsoft Windows 2000
O servidor (neste caso, o SQL Server) se comunica com o cliente enviando o tráfego de 1433 de volta para a porta estabelecida pelo cliente.

A melhor maneira de observar esse comportamento é rastrear uma comunicação entre cliente e servidor usando o Monitor de Rede Microsoft ou uma ferramenta de sniffer (farejador) de rede. Para configurar o firewall, você deve permitir o tráfego de *QUALQUER* para 1433 e de 1433 para *QUALQUER*, em que *QUALQUER* é uma porta superior a 1024. 

Além de usar o Monitor de Rede Microsoft, você também pode usar o utilitário TCP/IP Netstat para ilustrar esse comportamento. Emitir o comando netstat-an a partir de uma janela de comando do MS-DOS produz os seguintes resultados, mostrando três conexões estabelecidas com o SQL Server. Este exemplo usa 157.54.178.42 como endereço IP do SQL Server e 157.54.178.31 como endereço IP do cliente. As portas abertas pelo cliente são 1746, 1748, e 1750, respectivamente.
Proto   Endereço local         Endereço Externo       Estado  
 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
					
O software de firewall deve permitir que essa alocação dinâmica ocorrer por meio do uso de regras. Se esse for o caso, você poderá configurar a conexão a partir de 1433 para *QUALQUER* como "estabelecida". Isso abrirá dinamicamente a porta de resposta após uma sincronização seguida de um syn/ack por meio de uma inspeção de pacotes com estado definido.

Não há como limitar o número de portas TCP de origem usadas para conexão por um cliente SQL Server. Isso iria contra o propósito de fazer com que o cliente aloque uma nova porta dinâmica não utilizada. Este é um padrão TCP/IP definido para aplicativos Winsock, e não uma limitação de comunicação do cliente SQL Server.

Além disso, uma instância nomeada do SQL Server 2000 usará uma porta de destino dinâmica por padrão. Essa porta deve ser trocada por uma porta fixa antes da configuração do firewall. O Utilitário de Rede do SQL Server deve ser usado para configurar a porta de destino. Consulte os Manuais Online do SQL Server para obter informações sobre como usar o Utilitário de Rede do SQL Server.

Caso contrário, o computador cliente precisará abrir uma porta UDP aleatória, e a porta UDP 1434 do servidor será usada para enviar o nome da instância e, se a instância estiver clusterizada, a versão da instância SQL, o número da porta TCP na qual essa instância está escutando e o pipe nomeado que ela está usando. No entanto, se o objetivo é minimizar o número de portas abertas no firewall, um número de porta estático deve ser escolhido para a instância padrão e qualquer instância nomeada. Os computadores cliente precisariam ser configurados para se conectarem a um ServerName específico ou a uma instância de ServerName e um número de porta específico.

Para obter mais informações, clique nos números abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:
216415 TUTORIAL: Configurar o SQL Server com o servidor proxy
148942 Como capturar o tráfego da rede com o Monitor de Rede
169292 Noções básicas de leitura de rastreamentos TCP/IP
269882 TUTORIAL: Usar o ADO para se conectar a um SQL Server que está atrás de um firewall

Propriedades

ID do artigo: 287932 - Última revisão: terça-feira, 3 de dezembro de 2013 - Revisão: 8.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbsqlsetup kbinfo KB287932

Submeter comentários

 

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