通过SSH将MySQL连接到另一台服务器

时间:2013-12-23 23:01:20

标签: ssh

设定:

  • 我的电脑(linux / unix)有一个任意的IP地址
  • 我可以连接到具有静态IP的中央linux服务器
  • 设置了远程linux系统,因此它们只响应端口22上的中央服务器IP地址

我想通过中央服务器向前移动,这样我就可以使用MySQLWorkbench并在端口3306上建立到远程系统的python脚本连接。

理想情况下,我希望ssh命令的语法使端口转发工作;

假设我想将本地端口3307转发到远程系统上的3306。假设我的IP为x.x.x.x,中央服务器IP为y.y.y.y,远程系统IP为z.z.z.z;

认为它与ssh -L有关但我到目前为止只能转发到中央服务器。也许我需要连接到中央服务器,在那里设置转发,然后在我的机器上设置转发?我认为功能可以通过使用ssh的单个命令来实现。

如果这是重复的,则不应将其标记为因为不知道要搜索的magic关键字,否则找不到副本;

澄清:端口3306未在远程服务器上打开。只有22

2 个答案:

答案 0 :(得分:1)

ssh -L :3307:z.z.z.z:3306 user@y.y.y.y -Nf

工作正常

ssh -L 3307:z.z.z.z:3306 user@y.y.y.y  -Nf

仅绑定到x.x.x.x的localhost

第一个示例绑定到所有接口

...编辑

刚看到z.z.z.z只打开端口22。

y.y.y.y上您还需要打开本地端口

在y.y.y.y上运行

ssh -L 3307:localhost:3306 user@z.z.z.z -Nf

然后在x.x.x.x

ssh -L 3307:localhost:3307 user@y.y.y.y -Nf

在屏幕上运行这些命令以获得最佳效果

您实际上可以将这两个命令压缩在一起

ssh -L 3307:localhost:3307 user@y.y.y.y -f 'ssh -L 3307:localhost:3306 user@z.z.z.z -Nf'

答案 1 :(得分:0)

ssh -L <local-port-to-listen>:<remote-host>:<remote-port>

The ‘L’ switch indicates that a local port forward is need to be created

最好的方法是使用putty(ssh客户端)创建隧道。所以你可以启动shell,它会为你创建ssh隧道。这是一个很好的参考

https://howto.ccs.neu.edu/howto/windows/ssh-port-tunneling-with-putty/

相关问题