设定:
我想通过中央服务器向前移动,这样我就可以使用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
答案 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/