通过多个防火墙反向SSH隧道

时间:2015-01-19 20:03:18

标签: linux ssh firewall tunnel

我想从家用电脑访问防火墙后面的工作电脑。

当工作防火墙阻止意外的传入连接时,我必须打开从工作计算机到家用计算机的反向SSH隧道,如下所示:
ssh -R 12345:localhost:22 homeuser@homeip
从我的家用电脑,我可以使用端口12345访问工作计算机:
ssh -p 12345 workuser@localhost

问题是,这需要我在家庭防火墙上打开洞并将端口转发到我的家用电脑。

这是我的问题:

有没有办法可以让两台机器相遇一半?
假设我在家里的电脑上,同事在我的工作电脑上,我们都知道对方的本地IP(计算机从路由器获取)和互联网IP(路由器从ISP),我们每个人都可以通过某种方式与另一方建立传出连接吗?

1 个答案:

答案 0 :(得分:1)

没有。如果您不想在路由器中转发端口,那么两台计算机之间需要一些可相互访问的计算机才能连接。 (这可能是一个虚拟机,例如Digital Ocean提供的虚拟机,或提供shell登录的Web主机,或者您可以在家庭网络上使用Raspberry Pi,并将SSH转发给它,以便它始终可用。)

如果要访问远程计算机上的端口22:

ssh -R 12345:localhost:22 user@your.sshgateway.com

然后在家用电脑上:

ssh -L 2222:localhost:12345 user@your.sshgateway.com

然后您可以使用以下方式连接到远程计算机

ssh -p 2222 workuser@localhost