Cambiar el número de puerto predeterminado (TCP/1433) para una instancia de MS SQL Server
En este artículo, le mostraremos cómo comprobar el puerto TCP actual en el que está escuchando una instancia de MS SQL Server con nombre o predeterminada (esperando conexión), cómo cambiar un puerto de conexión de SQL Server a uno estático/dinámico, y cómo los clientes utilizan el servicio SQL Server Browser para conectarse a MSSQL.
La instancia predeterminada de SQL Server (MSSQLSERVER) utiliza el puerto TCP 1433 estático. Es el puerto al que se conectan los clientes o la consola de SQL Server Management Studio (SSMS);
Las instancias con nombre de MSSQL y SQL Server Compact están configuradas para usar un puerto TCP dinámico del rango RPC (49152 - 65535).
Un puerto dinámico significa que el número de puerto de la instancia de MSSQL acepta conexiones después de que se inicia el servicio de SQL Server. En la mayoría de los casos, incluso después de reiniciar el servidor, SQL Server escuchará el mismo puerto TCP dinámico asignado antes del reinicio. Pero si el número de puerto está ocupado, SQL Server se ejecutará en un nuevo puerto TCP. Una aplicación que se conecta a MSSQL generalmente obtiene el nuevo número de puerto del servicio SQL Server Browser sin ningún problema (lo contaremos más adelante). Los puertos dinámicos de SQL Server son convenientes cuando administra varias instancias de SQL en un solo host, pero causan muchos problemas cuando se implementan firewalls en su red.
Configuración de la instancia de MS SQL Server para escuchar en un puerto específico
Puede reconfigurar su servidor SQL para escuchar en un puerto TCP estático o dinámico. Por lo general, es posible que lo necesite cuando se ejecutan varias instancias de SQL Server en un solo host o se utilizan firewalls en su red.
Para administrar los puertos de escucha, necesitará el Administrador de configuración de SQL Server. Por lo general, este complemento se instala junto con una instancia de MSSQL.
Abra el Administrador de configuración de SQL Server y expanda la sección Configuración de red de SQL Server.
En mi caso, solo hay 1 instancia de MSSQL ejecutándose en el servidor, por lo que configuraré puertos de escucha para ella. La lista de protocolos disponibles para una instancia contiene lo siguiente:
El protocolo Memoria compartida se utiliza para conectarse desde una computadora local (la que tiene instalada una instancia de MSSQL). No se recomienda desactivarlo;
Las canalizaciones con nombre se pueden usar sobre el protocolo TCP/IP. Pero su uso no nos reporta mucho beneficio, por lo que lo dejaremos habilitado.
TCP/IP es donde se configuran las opciones de red de MSSQL.
Haga doble clic en TCP/IP.
Solo hay 3 parámetros en la pestaña Protocolo:
-
Habilitado: para asegurarse de que el protocolo TCP/IP esté habilitado;
Keep Alive con qué frecuencia enviar paquetes de mantenimiento para asegurarse de que la conexión aún esté disponible (en milisegundos). No cambie el parámetro sin necesidad;
Escuchar todo es una configuración no obvia responsable del contenido de la sección IPAll en la pestaña Direcciones IP. Si el valor de Listen All es No, la sección IPAll se ignora
En la pestaña Direcciones IP, puede ver la lista de todas las direcciones IP de la computadora (incluidas las direcciones IPv6 y locales) y su configuración. Aquí puede configurar diferentes puertos TCP para una dirección de conexión local y externa, o diferentes puertos para diferentes direcciones externas (si su servidor tiene múltiples interfaces de red en diferentes segmentos, por ejemplo, usando VLAN o múltiples alias de IP).
Es probable que desee cambiar los puertos para todas las direcciones IP a la vez, así que cambie su sección IPAll.
La opción Puertos dinámicos TCP está relacionada con el uso de puertos dinámicos.
Un valor de puertos dinámicos TCP vacío deshabilita el uso de puertos dinámicos de SQL Server;
0 permite usar puertos TCP dinámicos del rango RPC 49152 - 65535;
-
No tiene ningún sentido establecer ningún valor de puerto fijo aquí; cambia cada vez que se reinicia la instancia de MSSQL.
Para configurar un puerto TCP estático para una instancia de SQL Server, deshabilite los puertos dinámicos TCP y especifique un nuevo número de puerto estático en el parámetro Puerto TCP.
Para aplicar los cambios, reinicie el servicio de SQL Server. Tenga en cuenta que el servicio Explorador de SQL Server está detenido.
Asegúrese de poder conectarse a su instancia de SQL mediante SSMS a través del nuevo puerto TCP fijo. El formato de la cadena de conexión es el siguiente:
hostname\lab-sql, PortNumberNo podrá conectarse sin especificar el puerto de escucha porque el servicio SQL Browser está deshabilitado.
Servicio de navegador de SQL Server: puertos TCP y UDP
Antes de MSSQL 2000, no podía instalar más de una instancia de SQL en un host. Esta función apareció en las versiones más recientes de MSSQL. SQL Server Browser apareció en SQL Server 2005 y se usó como un servicio intermediario para distribuir conexiones entre varias instancias de MSSQL instaladas en la misma computadora.
Además, SQL Server Browser es responsable de la conexión a MSSQL (por ejemplo, desde SQL Server Management Studio) sin especificar un número de puerto (
hostname\lab-sql). SQL Server Browser obtiene el número de puerto dinámico actual de una instancia del registro y lo envía a un cliente.
Si deshabilita el servicio SQL Server Browser, deberá especificar el puerto TCP manualmente. Por ejemplo,
hostname\lab-sql, 1440Si se detiene el servicio SQL Server Browser y se usan puertos dinámicos, las aplicaciones no podrán obtener números de puerto para conectarse.
Puertos estándar de SQL Server:
TCP 1433 es el puerto estándar de SQL Server;
UDP 1434 es un puerto utilizado por SQL Server Browser.
Otros puertos se configuran cuando instala/configura un servicio específico.
Si está utilizando una configuración de firewall estricta o si desea restringir SQL Server tanto como sea posible, se recomienda deshabilitar los puertos dinámicos (establecer un valor vacío) y deshabilitar el navegador de SQL Server.
Si sus servidores SQL tienen acceso público, vale la pena cambiar el número de puerto predeterminado. No lo protegerá completamente de los ataques de piratas informáticos, pero su frecuencia se reducirá.






