2010-09-06 4 views
22

J'ai un accès SSH au serveur 'public', qui est également la passerelle vers le réseau de l'entreprise. Il y a un autre serveur dans le réseau, où local Le serveur de base de données Oracle est en cours d'exécution (il n'y a pas d'accès depuis l'extérieur de ce serveur, seules les connexions DB locales sont acceptées). Et bien sûr, j'ai un autre accès SSH à ce serveur.Comment puis-je me connecter au serveur Oracle Database 11g via la chaîne de tunnel ssh (double tunnel, serveur dans le réseau d'entreprise)?

Y a-t-il un moyen de rejoindre ce serveur Oracle Database 11g depuis l'extérieur du réseau? Je demande s'il y a quelque chose comme chaîne de tunnel ssh, et comment je le configure. Cela peut être utile, par exemple, pour TOAD for Oracle (client ORACLE).

EDIT: Voici l'image

alt text Merci

Répondre

30

Oui, il est possible. Par exemple. sur Linux, exécutez

ssh -N -Llocalport:dbserver:dbport [email protected] 

  • localport est le port sur votre machine qui sera transmis (peut être 1521 s'il n'y a pas d'instance locale de fonctionnement oracle)
  • dbserver est le nom ou IP du serveur de base de données
  • de dbport est le port de la base de données (généralement 1521)
  • votrenom est la connexion sur le connectionserver
  • connectionserver est la machine sur laquelle vous avez accès ssh

La même chose peut être fait sur Windows en utilisant Plink (qui est livré avec Putty):

plink -N -L localport:dbserver:dbport [email protected] 

faire sur les deux machines (votre machine locale et la serveur auquel vous avez accès) pour enchaîner les tunnels SSH. Exemple:

serveur de connexion (en supposant Linux):

ssh -N -L1521:dbserver:1521 [email protected] 

Votre PC:

plink -N -L 1521:connectionserver:1521 [email protected] 

L'entrée tnsnames.ora doit ressembler à vous utilisez une base de données locale, par exemple

prodoverssh = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVICE_NAME = prod) 
    ) 
) 
+0

merci, j'ai fait quelque chose comme ça –

+0

Je suis confronté à une configuration très similaire, mais maintenant la passerelle sur "mon côté" (dans le cercle vert). Je voudrais également communiquer par tunnel au serveur Oracle. Cependant, je ne peux pas utiliser yoursuggestion, car je n'administre pas "ORACLE SERVER", juste "GATEWAY" sur le schéma de réseau dans la question originale. Je ne peux communiquer qu'avec le serveur Oracle sur la machine "ORACLE SERVER" (écoute 1521) depuis "GATEWAY", les clients sont installés sur "GATEWAY" et "MY PC". Y a-t-il une solution pour moi? –

+1

j_maly: Si le serveur DB accepte les connexions de la passerelle, c'est encore plus simple. Exécutez simplement 'plink -N -L 1521: dbserver: 1521 gwuser @ gateway' depuis votre PC. –

4

Merci! J'ai appelé 2 fois ssh -N -LXXXX:server:YYYY [email protected] deux fois.

D'abord, j'ai appelé

ssh -L 9998:127.0.0.1:9997 [email protected] 

sur mon PC.

Ensuite, sur ce serveur (au cours de la session SSH), j'ai appelé

ssh -L 9997:localhost:1521 [email protected] 

où 192.168.105.111 est serveur où ORACLE est en cours d'exécution.

Alors ce que je faisais suit la redirection:

1521 (COMPANY ORACLE SERVER) 
    -> 9997 (COMPANY GATEWAY SERVER) 
    -> 9998 (LOCAL PC) 

alors je suis accès dans mon PC ORACLE locale sur le port 9998!

0

Vous pouvez également ajouter l'option -f qui exécute la commande ssh en arrière-plan.

Questions connexes