Подтвердить что ты не робот

Как я могу подключиться к серверу Oracle Database 11g через туннельную сеть ssh (двойной туннель, сервер в сети компании)?

У меня есть SSH доступ к "общедоступному" серверу, который также является шлюзом для сети компании. В сети есть еще один сервер, в котором работает сервер Oracle Database local (доступ к нему недоступен за пределами этого сервера, принимаются только соединения с локальным БД). И, конечно же, у меня есть другой SSH-доступ к этому серверу.

Есть ли способ присоединиться к этому серверу Oracle Database 11g за пределами сети? Я спрашиваю, есть ли что-то вроде туннельной сети ssh и как ее настроить. Это может быть полезно, например, для TOAD для Oracle (клиент ORACLE).

EDIT: Вот изображение

alt text Благодаря

4b9b3361

Ответ 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 в фоновом режиме.