Estoy tratando de configurar mi VM con SQL Server 2008 R2 Express para que solo pueda acceder de forma remota a SQL usando SQL Server Management Studio desde la máquina host.
Configuración de VM
- ejecutando Windows Web Servidor 2008 R2
- Hay dos NIC:
- Puente para que se conecte a internet.
- Host solo para que pueda comunicarme más rápido a través de la red virtual
- Los servicios del motor SQL y del navegador se están ejecutando
- He habilitado el protocolo TCP / IP para SQL Express pero no he configurado ninguna dirección IP (pestaña separada)
- He añadido reglas de firewall entrantes para:
- 1433 puerto TCP
- 1434 puerto UDP
- Si veo conexiones de red, veo que mis dos NIC están conectadas a las redes. Puedo configurar la red puenteada para Lugar de trabajo pero no puedo cambiar el tipo de red de la red de solo host. Así que está listo para Público por defecto. No estoy seguro de si esto tiene algo que ver con eso, pero así es como es.
Configuración de host
Lo único que hice en mi host es que le puse un nombre a mi VM IP. Y lo he hecho con la dirección IP de sólo host. He añadido una entrada en mi archivo HOSTS.
Problema
Luego abro SSMS en mi máquina host y si selecciono Buscar más en el Conectar al servidor ventana de diálogo realmente puedo ver la instancia de SQL de mi máquina virtual. Pero cuando intento conectarme a esto, esto es lo que obtengo cuando intento conectarme de las siguientes tres maneras:
nombre de la máquina (mi archivo HOSTS hará la reasignación de IP)
dirección IP de la red puenteada
dirección IP solo para el host
Pregunta 1: ¿Qué más puedo configurar para poder acceder a la instancia de SQL de mi VM? Si es posible, también me gustaría configurarlo, de modo que solo pueda acceder a él a través de la red de solo Hots y no a través de la red puente. Pero eso solo sería una ventaja adicional si pudiera configurarlo de esa manera.
Pregunta 2: ¿Realmente necesito el navegador SQL para ejecutarse porque, por lo que sé, solo se ocupa de que la instancia de SQL sea detectable? Si sé que la instancia de SQL es ahí y sé que usa el puerto 1433, ¿no puedo simplemente conectarme usando este Nombre del servidor :
DATAVM\SQLEXPRESS,1433
Editar
Este es el resultado de netstat:
Yo tambien corri portqry en el host para comprobar mi instancia de SQL en mi máquina virtual. Si intento la dirección IP puenteada, en realidad obtengo la respuesta del navegador SQL:
Starting portqry.exe -n 192.168.1.143 -e 1434 -p UDP ...
Querying target system called:
192.168.1.143
Attempting to resolve IP address to a name...
IP address resolved to Datavm
querying...
UDP port 1434 (ms-sql-m service): LISTENING or FILTERED
Sending SQL Server query to UDP port 1434...
Server's response:
ServerName DATAVM
InstanceName SQLEXPRESS
IsClustered No
Version 10.50.1600.1
tcp 49159
Como puedo ver en este resultado, mi instancia de SQL realmente está escuchando en el puerto TCP 49159.
Así que fui a la configuración SQL y cambié este puerto a 1433.
Pregunta 3: ¿Es normal que el puerto no esté configurado en 1433 por defecto? ¿Debo cambiarlo de nuevo a 49159 y cambiar la regla de mi firewall entrante para pasar por este puerto o debería dejarlo en 1433?
Cambiando de puerto a 1433 Puedo conectarme a la VM desde mi máquina host SSMS . Pero solo puedo hacer esto usando una dirección IP puenteada.
Como entiendo la configuración de TCP / IP en el protocolo de SQL el Direcciones IP debe enumerar todas las direcciones IP de la máquina. Puedo ver 5 de ellos:
- dirección NIC V6 puenteada
- dirección NIC V4 puenteada
- localhost V6 (:: 1)
- localhost V4 (127.0.0.1)
- algunos ? Dirección V6 que no está relacionada con la red con puente ni con la del host (fe80 :: 100: 7f: fffe% 12)
Supongo que esta es también la razón por la que no puedo conectarme utilizando una red solo de host ... ¿Pero cómo configuro mi VM para que pueda (y posiblemente deshabilite la red puente)?
netstat -a
y es posible que también desee configurar las direcciones IP (paso cuatro) para ver si eso mejora algo.