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


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.