Accéder à l'Instance de SQL Server à travers un NAT
Que j'essaie d'accéder à un Serveur SQL qui est exposée à travers un NAT IP de la cartographie. Tous les ports sont ouverts. Je ne connais pas les détails de la NAT, si c'est pertinent, car c'est quelque part d'autre dans l'entreprise caché dans un tas de paperasse.
Voici ce que j'ai compris. Lorsque vous essayez d'accéder à une instance nommée de SQL Server, le client demande à ce port le nom d'instance est en cours d'exécution sur. Si je RDP dans le Serveur SQL, je peux utiliser netstat
pour trouver le port de cette instance et peut se connecter avec succès à travers le pare-feu. Cependant, la connexion via le nom de l'instance ne fonctionne pas. Ma conjecture est que le serveur est de répondre à un certain point avec l'adresse IP interne et le client est en les utilisant.
Personne ne sait si cela est vrai et si il y a un moyen de contourner cela?
Dans mon environnement, il a aidé à désactiver le Pare-feu Windows sur l'ordinateur SQL Server.
OriginalL'auteur bassburner | 2012-03-14
Vous devez vous connecter pour publier un commentaire.
L'instance de port d'écoute du protocole de découverte est soumis à la Le Service SQL Server Browser. Il utilise UDP sur 1434. Avec un NAT redirection de l'UDP 1434 vos clients doivent être en mesure d'interagir avec le Service SQL Server Browser (si SQL Server Browser du paquet de réponse UDP peut atteindre le client, un grand si), mais même une interaction réussie sera mis à votre client dans une situation délicate: maintenant qu'il sait le Serveur SQL dynamique le port d'écoute, comment fait-il l'atteindre? Le NAT aurait dynamiquement en avant le port choisi par SQL Server, ou il aurait à l'avant tous ports.
Ce que je recommande est d'avoir votre Serveur SQL server écoute sur un par-configuré, statique, port. Voir Comment configurer une instance de SQL Server pour écouter sur un port TCP spécifique ou de port dynamique. Votre NAT avant que port. Alors à votre client d'utiliser ce port explicitement dans la chaîne de connexion. Ne pas utiliser de 1433, le port standard, car je suppose que l'avance de la NAT est l'internet public et 1433 est soumis à de constantes et des analyses fréquentes à partir de toutes sortes de robots et vil amas.
OriginalL'auteur Remus Rusanu
Configurer l'instance nommée pour s'exécuter sur un port statique à l'aide de Gestionnaire de Configuration SQL Server. Dans le gestionnaire de configuration,
SQL Server Network Configuration -> Protocols for <named instance> -> TCP/IP -> Properties
.Fournir le nom d'hôte et le port de l'instance nommée dans la chaîne de connexion. Le nom d'hôte et le numéro de port spécifié dans le format suivant (en supposant que le nom d'hôte est
Test
et le port d'écoute est1492
):... Server='Test,1492'; ...
OriginalL'auteur Bryan