Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将ssh端口转发到我的机器上运行的虚拟机?_Ssh_Portforwarding - Fatal编程技术网

如何将ssh端口转发到我的机器上运行的虚拟机?

如何将ssh端口转发到我的机器上运行的虚拟机?,ssh,portforwarding,Ssh,Portforwarding,我有两台机器,A和B 在B上,我有一个正在运行的虚拟机(比如说它的VB)。 不幸的是,VB有一个无法更改的静态本地IP地址(192.168.79.1) 我可以通过以下方式成功地使用ssh A->B B->VB 我试图将B(端口7777)上的ssh端口转发设置为转发到VB(端口22)。但不知怎么的,它没有发生 我应该使用-L还是-R 我试过很多方法 ssh-R 7777:192.168.79.1:22root@192.168.79.1 ssh-L7777:192.168.79.1:22root@1

我有两台机器,A和B

在B上,我有一个正在运行的虚拟机(比如说它的VB)。 不幸的是,VB有一个无法更改的静态本地IP地址(192.168.79.1)

我可以通过以下方式成功地使用ssh

A->B B->VB

我试图将B(端口7777)上的ssh端口转发设置为转发到VB(端口22)。但不知怎么的,它没有发生

我应该使用-L还是-R

我试过很多方法

ssh-R 7777:192.168.79.1:22root@192.168.79.1

ssh-L7777:192.168.79.1:22root@192.168.79.1

ssh-L 7777:192.168.79.1:22-L根本地主机

可能是我没有正确理解语法,还是我遗漏了一些愚蠢的东西

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

谢谢

设置隧道的主机地址错误。您试图做的实际上不是端口转发,这通常是在防火墙级别上完成的。相反,您尝试设置一个隧道,在系统B的某个端口xyz下的VB上公开您的ssh服务器。为此,您必须ssh到该系统B,而不是VB。比如说:

ssh -L7777:192.168.79.1:22 some_user@<B>
ssh-L7777:192.168.79.1:22一些用户@
因此,用户“some_user”sshs进入主机B,在那里不做任何其他事情(
必须替换为Bs ip地址或名称),除了他还创建了一个“ssh隧道”,您现在可以使用它通过以下方式连接:

ssh root@<B>:7777
ssh root@:7777
试一试,您会发现您实际上登录到了VB,因为您的请求以透明的方式通过隧道传输到主机VB上的端口22。所以B充当隧道继电器


但这对于日常使用来说有点烦人。考虑使用iptables在防火墙级别找到解决方案。这样就不必在使用ssh隧道之前创建它。或者,还有一些实用程序,如plasmoids等,可以更方便地设置ssh隧道

谢谢你的快速回复!!那么,这是ssh“隧道”不一致吗?当我想连接时,我必须这样做吗?对不起,刚才看到你最后的评论。。。我不知道“始终如一”是什么意思——它确实有效,但是是的,每次你想建立一个隧道时,你都必须采取这些步骤。您可以多次使用隧道,但一旦隧道关闭,您必须重新设置ip。它不是持久的。这就是为什么我建议使用基于防火墙的解决方案,在持久的基础上转发您的通信。