连接到路由器内部隧道内的数据库服务器


0

我正在使用Ubuntu并尝试连接到我的服务器中的隧道访问的数据库服务器,它位于路由器内部,我只有ssh连接到我的服务器。有没有办法做到这一点?

为了方便起见,我将尝试绘制它:

我 - >通过ssh(端口22)连接到我的服务器(serverip:12345)

myserver - >有一个到数据库服务器的隧道

数据库服务器 - >只接受myserverip地址

* serverip:12345是从我的路由器转发到myserver的端口

提前致谢

UPDATE

感谢@Kondybas的帮助,我尝试了你的建议,但它没有用。也许我不够清楚。

我会再试一次= D.

我在我的笔记本电脑中,我可以通过ssh访问我的服务器。 我的服务器在路由器后面(不在我的笔记本电脑的同一网络中),所以为了访问我的服务器,我使用:

ssh -p 12345 user@myserverip

我的服务器已经有一个到远程数据库的隧道:

ssh -L 1521:localhost:1521 user@mydbserverip

因为当我在我的服务器的同一网络中时,我可以使用192.168.0.X:1521访问数据库

由于我无法触及路由器(将端口12345转发到我的服务器的那个)并且我无法创建到数据库的直接隧道。

有没有办法从我的笔记本电脑通过我的服务器访问数据库?

再次感谢。

Answers:


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

Kondybas说的是正确的......我只会补充一点:D

经过阅读并与少数人交谈后,解决方案是:

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

解释:

  • -p 12345是我们在路由器中转发的端口,用于访问myserver
  • user @ myserver是myserver的用户和ip地址
  • -L 9999:127.0.0.1:3306表示我的localhost在端口9999上的所有连接都将重定向到myserver(这就是为什么我使用的是127.0.0.1,因为已经创建了隧道)在端口3306中

最后一部分允许我将已创建的隧道用于mydbserver


这并不明显,因为你只提到了这一点 myserver 可以连接到 dbserver。如果你可以的话 ssh 从任何地方到dbserver,确实比事情更简单。
Kondybas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.