Как я могу подключиться к серверу Oracle Database 11g через туннельную сеть ssh (двойной туннель, сервер в сети компании)?
У меня есть SSH доступ к "общедоступному" серверу, который также является шлюзом для сети компании. В сети есть еще один сервер, в котором работает сервер Oracle Database local (доступ к нему недоступен за пределами этого сервера, принимаются только соединения с локальным БД). И, конечно же, у меня есть другой SSH-доступ к этому серверу.
Есть ли способ присоединиться к этому серверу Oracle Database 11g за пределами сети?
Я спрашиваю, есть ли что-то вроде туннельной сети ssh и как ее настроить.
Это может быть полезно, например, для TOAD для Oracle (клиент ORACLE).
EDIT: Вот изображение
Благодаря
Ответы
Ответ 1
Да, это возможно. Например. на Linux, запустите
ssh -N -Llocalport:dbserver:dbport [email protected]
где
- localport - это порт на вашем компьютере, который будет перенаправлен (может быть 1521, если локальный экземпляр оракула отсутствует)
- dbserver - это имя или IP-адрес сервера базы данных.
- dbport - это порт базы данных (обычно 1521).
- Ваше имя - это логин на сервере соединений
- connectionserver - это машина, на которой у вас есть доступ к ssh
То же самое можно сделать в Windows с помощью Plink (который поставляется с Putty):
plink -N -L localport:dbserver:dbport [email protected]
Сделайте это на обеих машинах (на вашем локальном компьютере и на сервере, к которому у вас есть доступ), чтобы связать туннели ssh. Пример:
Сервер подключений (при условии Linux):
ssh -N -L1521:dbserver:1521 [email protected]
Ваш ПК:
plink -N -L 1521:connectionserver:1521 [email protected]
Запись tnsnames.ora должна выглядеть так, будто вы используете локальную базу данных, например
prodoverssh =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = prod)
)
)
Ответ 2
Спасибо!
Я дважды вызывал ssh -N -LXXXX:server:YYYY [email protected]
.
Сначала я позвонил
ssh -L 9998:127.0.0.1:9997 [email protected]
на моем ПК.
Затем на этом сервере (во время сеанса SSH) я вызывал
ssh -L 9997:localhost:1521 [email protected]
где 192.168.105.111 - сервер, на котором запущен ORACLE.
Итак, я сделал следующее перенаправление:
1521 (COMPANY ORACLE SERVER)
-> 9997 (COMPANY GATEWAY SERVER)
-> 9998 (LOCAL PC)
Итак, я получил доступ к ORACLE на своем локальном ПК в порту 9998!
Ответ 3
вы также можете добавить опцию -f
, которая запускает команду ssh в фоновом режиме.