我有一个MySQL服务器上运行的实例,我不能直接达到,但只能通过另一台服务器,所以我必须达到它,如:
[local] --> [server1] --> [server2]
我应该使用哪个命令来执行此操作? 我尝试了一切,但似乎停止在第一个..
这是我尝试过的命令之一:
ssh -N -p 22 -c 3des [email protected] -L 3306/1.1.1.1/3310 -R 3310/2.2.2.2/3306
1.1.1.1 – > server1
2.2.2.2 – > server2
提前致谢
我们来分解一下
-N
我假设你不想执行远程命令,否则你可以完成
ssh -t [email protected] "ssh [email protected]"
然后-p 22 -c 3des端口并明确select一个密码
本地绑定-L 3306/1.1.1.1/3310转换为local-port:remote-host:remote-port
在此之前,您正在将[email protected]和绑定端口3306连接到1.1.1.1上的3310。
-R与-L完全相反。 当您连接到本地连接的远程主机端口时,远程绑定端口。
至less有两种方法可以做到这一点。 无论是ssh -f -N [email protected] -L 3306:2.2.2.2:3310 ,然后ssh myUser@localhost -p 3306或检查ssh_config并添加像这样的东西
Host 1.1.1.1 HostName 1.1.1.1 User myUser LocalForward 3306 127.0.0.1:3310
如果你的MySQL在server2上运行,你可以尝试:
ssh -L 3306:2.2.2.2:3306 1.1.1.1
这将在您的本地3306端口和server2端口3306之间build立隧道。
然后,您在MySQL客户端连接到localhost 。