Jak połączyć się z serwerem Oracle Database 11g poprzez łańcuch SSH tunnel (podwójny tunel, serwer w sieci firmowej)?

Mam dostęp SSH do' publicznego ' serwera, który jest również bramą do sieci firmowej. W sieci znajduje się inny serwer, na którym działa local Oracle Database server (nie ma dostępu spoza tego serwera, akceptowane są tylko połączenia localhost DB). I oczywiście mam inny dostęp SSH do tego serwera.

Czy Jest jakiś sposób, aby dołączyć do tego serwera Oracle Database 11g spoza sieci ? Pytam czy jest coś takiego jak łańcuch tunelu SSH i jak go skonfigurować. Może to być przydatne na przykład dla TOAD for Oracle (klient ORACLE).

EDIT: oto obraz

alt textDzięki

Author: Michal Drozd, 2010-09-06

4 answers

Tak, to możliwe. Np. na Linuksie Uruchom

ssh -N -Llocalport:dbserver:dbport yourname@connectionserver

Gdzie

    Jest to port na twoim komputerze, który zostanie przekazany (może być 1521, jeśli nie ma uruchomionej lokalnej instancji oracle)
  • dbserver jest nazwą lub IP serwera bazy danych
  • dbport jest portem bazy danych (Zwykle 1521)
  • Twoja nazwa to login na serwerze połączeń
  • Connectionserver jest maszyną, do której masz dostęp ssh]}

To samo może być na Windows za pomocą Plink (który jest dostarczany z Putty):

plink -N -L localport:dbserver:dbport yourname@connectionserver

Zrób to na obu komputerach (na komputerze lokalnym i na serwerze, do którego masz dostęp), aby połączyć tunele ssh. Przykład:

Serwer połączenia (zakładając Linuksa):

ssh -N -L1521:dbserver:1521 dblogin@dbserver

Twój komputer:

plink -N -L 1521:connectionserver:1521 connlogin@connectionserver

Tnsnames.wpis ora musi wyglądać tak, jakbyś uruchamiał lokalną bazę danych, np.

prodoverssh =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = prod)
    )
  )
 38
Author: Erich Kitzmueller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-06 19:29:44

Dzięki!

Dzwoniłam dwa razy.

Najpierw zadzwoniłem

ssh -L 9998:127.0.0.1:9997 [email protected]
Na moim komputerze.

Następnie, na tym serwerze (podczas sesji SSH), zadzwoniłem

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

Gdzie 192.168.105.111 to serwer na którym działał ORACLE.

Więc zrobiłem następujące przekierowanie:

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

Więc mam dostęp do ORACLE w moim lokalnym komputerze na porcie 9998 !

 4
Author: Michal Drozd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-12 04:44:36

Możesz również dodać opcję -f, która uruchamia polecenie ssh w tle.

 0
Author: loudstil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-22 14:52:48

Miałem ten sam problem co @j_maly tutaj w komentarzach można się połączyć za pomocą tylko jednego tunelu do" bramy " robiąc to w "moim zdalnym PC" (linux):

ssh -L 1521:DATABASE_URL_OR_IP:1521 USER@GATEWAY

Ale po otrzymaniu ORA-12170: TNS:Connect timeout occurred w kółko. Zrobiłem to:

  • W GATEWAY, podłącz coś do oracle, który działa, w moim przypadku sqldeveloper (sqlplus też powinien działać). Domyślajmy się, że działający adres URL oracle w sqldeveloper to database.company.ex

  • W GATEWAY run netstat -putan | grep 1521, a tutaj jest problemem:
    Odkryłem, że połączenie ma inny adres IP bazy danych i domenę niż poprzedni znany i rzekomo podłączony (database.company.ex).

  • Więc powinieneś umieścić adres ip lub url pokazany w wyniku netstat -putan | grep 1521 w "GATEWAY"

    Ssh-L 1521:DATABASE_URL_OR_IP_SHOWED_IN_NETSTAT: 1521 USER@GATEWAY

Nie wiem, dlaczego tak się dzieje, ale znalazłem kilka adresów IP do połączenia z tą samą bazą danych i nie mogę się połączyć z niektórych z nich, aby rozwiązać problem musi znaleźć poprawne ip.

Warto wspomnieć, że można również zmienić lokalny port (w tym przypadku 11000) i uruchomić to polecenie bez wyjścia (- fN)

ssh -fN -L 11000:DATABASE:1521 USER@GATEWAY
 0
Author: Emeeus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-13 17:48:56