Я использую Ubuntu и пытаюсь подключиться к серверу базы данных, доступ к которому осуществляется через туннель на моем сервере, который находится внутри маршрутизатора, и у меня есть только ssh-соединение с моим сервером. Есть способ сделать это?

Чтобы было проще, я постараюсь изобразить это:

я -> подключиться через SSH (порт 22) к моему серверу в (serverip:12345)

myserver -> имеет туннель к серверу базы данных

сервер базы данных -> принимает только адрес myserverip

* serverip:12345 - это переадресация портов с моего маршрутизатора на myserver

заранее спасибо

ОБНОВИТЬ

Спасибо за помощь @Kondybas, я попробовал тебе предложение, но оно не сработало. Может быть, я не был достаточно ясен.

Я попробую еще раз = D.

Я на своем ноутбуке, и у меня есть доступ к моему серверу через SSH. Мой сервер находится за маршрутизатором (нет в той же сети, что и мой ноутбук), поэтому для доступа к моему серверу я использую:

ssh -p 12345 user@myserverip

Мой сервер уже имеет туннель к удаленной базе данных:

ssh -L 1521:localhost:1521 user@mydbserverip

потому что, когда я нахожусь в той же сети моего сервера, я могу получить доступ к базе данных с 192.168.0.X:1521

Поскольку я не могу подключиться к маршрутизатору (тому, кто перенаправляет порт 12345 на мой сервер), и я не могу создать прямой туннель к базе данных.

Есть ли способ получить доступ к базе данных с моего ноутбука через мой сервер?

Еще раз спасибо.

2 ответа2

1

Вы должны запустить ssh образом:

ssh -f user@server -p 12345 -L localhost:3306:dbserver.ip:3306 -N

Объяснение:

ssh -f user@myserver -p 12345 - подключиться к myserver через порт 12345

-L localhost:3306:dbserver.ip:3306 - все пакеты, предназначенные для localhost:3306 будут перенаправлены на dbserver.ip:3306 через myserver . Вы можете использовать FQDN или IP для dbserver.

-N - никакие явные или неявные команды не будут выдаваться в этом сеансе

0

То, что сказал Кондыбас, было правильно ...Буду только немного дополнять:D

После того, как вы много прочитали и поговорили с несколькими людьми, решение:

ssh -p 12345 user @ myserver -L 9999:127.0.0.1:3306

объясняя:

  • -p 12345 - это порт, который мы перенаправили в наш маршрутизатор для доступа к myserver
  • user @ myserver - это пользователь и IP-адрес myserver
  • -L 9999:127.0.0.1:3306 говорит, что все подключения в моем локальном хосте через порт 9999 будут перенаправлены на myserver (поэтому я использую 127.0.0.1, потому что туннель уже создан) в порту 3306

эта последняя часть позволяет мне использовать туннель, уже созданный для mydbserver

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .