VNC over reverse SSH

玩网络隧道很有趣,而且几乎是神奇的。 SSH就是这样一个充满惊喜的工具箱,可以让你学到更多东西。

我过去经常使用SSH隧道来安全地通过VNC访问远程主机。 典型的情况是从工作连接到家用计算机并访问其桌面,我使用我的计费软件。 隧道在工作计算机上打开一个端口,该端口重定向远程主机上的所有活动,因为它是本地的。

 work$ ssh -L 5901:localhost:5900 homeuser@homepc 

然后在工作计算机上,端口5901成为我的homepc端口5900,实际上是它的VNC桌面。 只需在localhost:5901上打开VNC查看器即可显示homepc桌面。

但另一种方式呢? 由于大多数公司都设置阻止此类访问的防火墙,因此无法从家中访问工作计算机。

输入反向SSH。 它创建主机到远程主机的连接,但就好像连接是相反的。 这样,连接就会在防火墙后面向外界发起,并且对远程主机指定端口保持开放状态。

 work$ ssh -R 7000:localhost:22 homeuser@homepc 

这将创建一个反向SSH隧道,其中homepc端口7000充当工作端口22.现在在homepc上,我可以登录到工作:

 homepc$ ssh workuser@localhost -p 7000 

到目前为止,这很美。 但当然我应该可以通过VNC访问我的工作桌面了吗?

事实证明,反向端口在另一个方向是透明的,因此端口转发像往常一样工作。

 homepc$ ssh -L 5901:localhost:5900 workuser@localhost -p 7000 

这将在我的homepc上打开端口5901,通过端口7000上的反向SSH隧道返回到工作台。 当然,在这种情况下,workuser密码是远程工作PC,即使主机是localhost也是如此。 然后,只需打开端口localhost:5901上的VNC查看器即可显示我的工作PC桌面的所有荣耀。

现实案例

上面的案例假设homepc始终打开并可从Internet访问,尽管可能,但这并不是一种非常安全和推荐的方法。 在我的情况下,我有一个我一直在使用的Raspberry Pi ,功耗低于5W,并作为NAT家庭网络的网关。 Pi运行no-ip服务,保持其动态IP可查找。 在工作中,我的工作站运行Windows,虽然我可以使用Putty来设置反向SSH连接,但是从Linux服务器执行此操作会使其在无人值守的情况下更具弹性。 所以最终的配置最终是:

 workpc -- linuxhost || ooooooooo || pi -- homepc 

反向SSH源于Internet上的linuxhost到Pi:

 linuxhost$ ssh -fN -R 7000:localhost:22 piuser@homeip 

然后从我的homepc,打开到Pi转发VNC端口的SSH连接:

 homepc$ ssh -L 5901:localhost:5901 piuser@piip 

最后,Pi打开与Linux主机的SSH连接,将VNC端口转发到我的workpc,全部通过反向SSH隧道:

 pi$ ssh -L 5901:workpc:5900 workuser@localhost -p 7000 

然后从homepc,只需打开一个VNC查看器就可以获得工作桌面:

 

 homepc$ vncviewer localhost:1 

https://patocarr.com/blog/2016/02/06/VNC_over_reverse_SSH.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值