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

StackOverflow https://stackoverflow.com/questions/3653788

Вопрос

У меня есть доступ к SSH для «Public» Server, который также является шлюзом к сети компании. В сети есть другой сервер, где местный Запускается сервер Oracle Database (нет доступа снаружи этого сервера, принимаются только соединения Localhost DB). И, конечно же, у меня есть еще один SSH-доступ к этому серверу.

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

РЕДАКТИРОВАТЬ: Вот изображение

alt textСпасибо

Это было полезно?

Решение

Да, это возможно. Например, на Linux, запустите

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

куда

  • Localport - это порт на вашей машине, который будет перенаправлен (может быть 1521, если нет локального экземпляра oracle Running)
  • DBServer - это имя или IP сервера базы данных
  • DBPort - это порт базы данных (обычно 1521)
  • Youname - это вход в систему на подключении
  • Connectionserver - это машина, где у вас есть SSH-доступ

То же самое можно сделать в Windows, используя PLUNC (которая поставляется с замазкой):

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

Сделайте это на обеих машинах (ваша локальная машина и сервер, к которому у вас есть доступ) для цепи SSH Tunnels. Пример:

Сервер подключения (при условии Linux):

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

Ваш компьютер:

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

Запись TNSNAMES.ORA должна выглядеть так, как будто вы используете локальную базу данных, например

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

Другие советы

Спасибо!

я звонил ssh -N -LXXXX:server:YYYY login@server дважды.

Во-первых, я позвонил

ssh -L 9998:127.0.0.1:9997 login@gate.company.cz

на моем компьютере.

Затем на этом сервере (во время сеанса SSH) я позвонил

ssh -L 9997:localhost:1521 root@192.168.105.111

Где 192.168.105.111 - это сервер, где работает Oracle.

Так что я сделал следующее перенаправление:

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

Поэтому я получил доступ Oracle в моем местном ПК в порту 9998!

Вы можете добавить также -f Опция, которая запускает команду ssh на заднем плане.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top