Accéder à SQL Server via un tunnel SSH
Dans mon développement de la boutique, nous déployer le code sur les serveurs virtuels qui sont assis sur un réseau distant.
Nous avons accès aux machines de ce réseau par la première ouverture d'une connexion SSH à un serveur de passerelle, puis SSH tunneling RDP sur un port local.
J'aimerais beaucoup être en mesure d'accéder localement les instances de SQL Server en cours d'exécution sur ces serveurs de la même manière.
J'ai mis en place un port local (3398) pour rediriger le port du Serveur SQL sur l'instance distante (L3398 -> distance.de la machine.com:1433).
Je peux alors tester la connexion par telnet localhost 3398, et je reçois une connexion: efface l'écran et je peux taper des caractères de certains processus d'écoute.
Mais quand j'essaie de me connecter SSMS à localhost:3398, qu'il arrive et affirme alors qu'il n'y a pas de SQL Server écoute sur ce port:
Cannot connect to localhost:3398
Additional information:
A network-related or instance-specific error occurred while establishing a connection
to SQL Server. The server was not found or was not accessible. Verify that the
instance name is correct and that SQL Server is configured to allow remote
connections. (...)
Je suis sûr que le serveur accepte les connexions à distance, parce que j'ai connecté à distance tout en étant connecté via RDP à une autre machine dans le réseau distant.
J'ai Googlé autour de savoir que cela est possible; quelqu'un aurait-il une idée de pourquoi cela ne fonctionne pas, ou ce que je pourrais faire pour diagnostiquer et nous espérons résoudre le problème?
Merci!
Mis à jour tous les 3393s à 3398s.
OriginalL'auteur Jim Burnell | 2011-08-02
Vous devez vous connecter pour publier un commentaire.
Au lieu de se connecter à localhost:3398
Utiliser 127.0.0.1,3398
localhost,3398
fonctionnera également. L'important, c'est que le port de l'hôte et sont séparés par des virgules, pas par les deux points.localhost
ne fonctionne pas pour moi, mais127.0.0.1
est tout simplement parfait. Ce doit être la accepté de répondre.Juste pour ajouter à cela: localhost peut résoudre à IPv6 ::1, selon la configuration de votre réseau, etc. La valeur par défaut prise en charge d'IPv6 dépend de votre version de MySQL: à Partir de la base de données MySQL 5.6 docs ( dev.mysql.com/doc/refman/5.6/en/ipv6-support.html ): "MySQL 5.6.6, la valeur par défaut configuration du serveur MySQL permet des connexions IPv6 en plus des connexions IPv4. Avant 5.6.6, la valeur par défaut est pour autoriser uniquement les connexions IPv4."
OriginalL'auteur Dan
Le problème est probablement que le SSM est la tentative d'accès au Service SQL Server Browser, qui est le port UDP 1434. Jetez un oeil à http://technet.microsoft.com/en-us/library/cc646023.aspx pour une vue d'ensemble des ports supplémentaires vous devrez peut-être avant pour faire ce travail.
The SQL Server Browser service listens for incoming connections to a named instance and provides the client the TCP port number that corresponds to that named instance. Normally the SQL Server Browser service is started whenever named instances of the Database Engine are used. The SQL Server Browser service does not have to be started if the client is configured to connect to the specific port of the named instance.
Il semble que cela est une "recherche" de service dans le cas où il existe plusieurs instances en cours d'exécution sur plusieurs ports. Je n'ai qu'une instance qui s'exécute sur le port par défaut, 1433.Eh bien, c'est vrai, mais avez-vous configurer les SSMS pour se connecter au port spécifique de l'instance nommée? Par défaut SSMS allons essayer de parcourir: je ne suis pas certain si il y a une méthode propre pour désactiver ce comportement.
Dans le "nom du Serveur:" sur le terrain, je suis en précisant "localhost:3398". Depuis mon port local 3398 cartes pour le port 1433 sur la machine distante, que doit être constituent spécifiant le port de l'instance distante, droit? En tout cas, je ne pense pas que le Service explorateur SQL Server est en cours d'exécution sur la machine distante.
Pour spécifier un numéro de port, le format est le "nom d'hôte,numport". C'est, séparez-les par une virgule; vous avez utilisé un colon.
C'est très utile de connaître (idiot Microsoft!). Malheureusement, elle ne résout pas mon problème, cependant. Je suis sûr que c'est un problème de réseau.
OriginalL'auteur Femi
Je suis sûr que j'ai compris la réponse à cette question, en fait.
Sur le réseau distant (dont nous n'avons pas de contrôle), pour des raisons de sécurité, il semble que les serveurs de base de données sont mis en place pour ignorer les demandes de base de données provenant de l'ordinateur de la passerelle. Donc je suppose qu'il n'y a juste pas de bonne solution à court de le convaincre de nous donner plein accès VPN. Merci à tous pour votre aide.
OriginalL'auteur Jim Burnell