2010-09-06 4 views
22

Ich habe SSH Zugang zu "öffentlichen" Server, der auch das Gateway zum Firmennetzwerk ist. Es gibt einen anderen Server im Netzwerk, in dem lokal Oracle Database Server ausgeführt wird (es gibt keinen Zugriff von außerhalb dieses Servers, nur lokale Host-DB-Verbindungen werden akzeptiert). Und natürlich habe ich noch einen SSH-Zugang zu diesem Server.Wie kann ich eine Verbindung zum Oracle Database 11g-Server über eine ssh-Tunnelkette herstellen (Doppeltunnel, Server im Unternehmensnetzwerk)?

Gibt es eine Möglichkeit, diesen Oracle Database 11g Server von außerhalb des Netzwerks beizutreten? Ich frage, ob es so etwas wie ssh Tunnel-Kette gibt, und wie ich es konfiguriere. Dies kann z. B. für TOAD for Oracle (ORACLE-Client) nützlich sein.

EDIT: Hier Bild

alt text Dank

Antwort

30

Ja, es ist möglich. Z.B. laufen auf Linux,

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

wo

  • LokalerAnschluss der Port auf Ihrem Rechner ist, die weitergeleitet wird (1521 sein kann, wenn es keine lokale Instanz von Oracle Laufen ist)
  • dbserver ist der Name oder IP des Datenbank-Servers
  • DBPort ist der Hafen von der Datenbank (in der Regel 1521)
  • ihrName die Anmeldung auf dem Verbindungsserver ist
  • Verbindungsserver ist die Maschine, wo Sie den SSH-Zugriff haben

Das gleiche unter Windows mit Plink getan werden kann (die mit Kitt kommt):

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

Tun Sie dies auf beiden Maschinen (dem lokalen Computer und das Server, zu dem Sie Zugang haben), um die SSH-Tunnel zu verketten. Beispiel:

Connection Server (vorausgesetzt, Linux):

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

Ihr PC:

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

Der tnsnames.ora Eintrag aussehen muss, wie Sie eine lokale Datenbank ausgeführt werden, beispielsweise

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

danke, ich habe so etwas gemacht –

+0

Ich bin sehr ähnliche Setup, aber jetzt das Gateway auf "meiner Seite" (im grünen Kreis). Ich möchte auch die Kommunikation zu Oracle Server tunneln. Allerdings kann ich yoursuggestion nicht verwenden, da ich nicht "ORACLE SERVER", sondern nur den "GATEWAY" im Netzwerkschema in der ursprünglichen Frage verwalte. Ich kann nur mit dem Oracle-Server auf der "ORACLE SERVER" -Maschine (abhören auf 1521) von "GATEWAY" kommunizieren, Clients werden sowohl auf "GATEWAY" als auch auf "MY PC" installiert. Gibt es eine Lösung für mich? –

+1

j_maly: Wenn der DB-Server Verbindungen vom Gateway akzeptiert, ist es noch einfacher. Führen Sie einfach 'plink -N -L 1521: dbserver: 1521 gwuser @ gateway 'von Ihrem PC aus. –

4

Vielen Dank!

Ich rief ssh -N -LXXXX:server:YYYY [email protected] zweimal.

Zuerst rief ich

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

auf meinem PC.

Dann auf diesem Server (während der SSH-Sitzung), rief ich

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

wo 192.168.105.111 Server, auf den ORACLE ausgeführt wurde.

Also, was ich tat, wird folgende Umleitung:

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

Also habe ich ORACLE Zugang in meinem lokalen PC an Port 9998!

0

Sie können auch die -f Option hinzufügen, die den Befehl ssh im Hintergrund ausführen.

Verwandte Themen