2012-12-13 65 views
2

我有两台机器说A和B如何将ssh端口转发到我的机器上运行的虚拟机?

B我有一台虚拟机运行(可以说它的VB)。 不幸的是,VB有一个不能改变的静态本地IP地址(192.168.79.1)。

我能够成功通过以下方式

A到ssh登录 - >乙 乙 - > VB

我试图建立SSH端口转发B(7777端口)转发到VB(端口22)但不知怎的,它没有发生。

我应该使用-L还是-R?

我尝试过很多办法..

的ssh -R 7777:192.168.79.1:22 [email protected]

的ssh -L 7777:192.168.79.1:22 [email protected]

ssh -L 7777:192.168.79.1:22 -l root localhost

可能是我没有正确理解语法,或者我错过了一些愚蠢的东西?

我想连接到A-> VB(通过B上的一些xyz端口)。请指导我如何设置。

顺便说一句,所有的机器需要用户名和密码..我还没有添加密钥(所以请考虑这一点)。

谢谢!

回答

3

您指定了错误的主机来设置隧道。你试图做的事情实际上不是端口转发,通常是在防火墙级别完成的。相反,你尝试设置一个通道来暴露你的ssh服务器在系统B上的某个端口xyz上的VB。为此,你必须ssh到系统B,而不是VB。因此,像这样:

ssh -L7777:192.168.79.1:22 [email protected]<B> 

所以用户some_user“SSHS到主机B和没有别的那里(<B>必须符合BS IP地址或名称来代替),但他还创建了一个“SSH隧道”你现在可以使用连接通过:

ssh [email protected]<B>:7777 

试试,你也看到,你实际上是在登录到VB,因为你的请求以透明的方式通过隧道传送到端口22上的主机VB。所以B充当隧道中继。

但这对日常使用有点烦人。请考虑使用iptables来寻找防火墙级别的解决方案。这使您不必在使用它之前创建ssh隧道。另外还有像plasmoids之类的应用程序以更方便的方式设置ssh隧道。

+0

感谢您的快速回复! – k0n3ru

+0

那么,这是ssh“隧道”不一致吗?当我想连接时,我必须这样做吗? – k0n3ru

+0

对不起,刚才看到你最后的评论...我不知道'一致' - 它当然有效,但是,是的,每次你想建立一个隧道时你都必须采取这些步骤。您可以多次使用隧道,但一旦取下隧道,您必须重新设置IP。它不是持久的。这就是为什么我建议使用基于防火墙的解决方案,以持久的基础转发您的沟通。 – arkascha

相关问题