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
Dzięki
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)
)
)
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 !
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.
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
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