隧道VNC端口和端口的转换

我有两台机器说A和B.机器A是公共网关。 机器B在我的networking中,并在端口6000上运行VNC服务器。我希望人们应该在机器A上连接VNC端口5900(不安全)。 此后,机器A应该在机器B(安全)上设置从自己的5900端口到端口6000的隧道,并且人们可以在不连接到实际主机的情况下看到vnc输出。

这可以怎么做? 有什么办法吗? 请让我知道,如果我错了某处。 谢谢

你应该看看vncviewer-via选项。 如果您设置了对host-a SSH访问权限,则可以按照以下方式打开访问VNC服务器的权限:

 vncviewer -via host-a host-b:6000 

这将打开一个到host-a -a的SSH会话,将host-b:6000转发到本地计算机,并将VNC查看器指向该转发的端口。 从主机到host-a的stream量将被encryption,而从host-ahost-b的stream量将被解密。

编辑:重新读你的问题后,我意识到,这不完全是你问。 我认为你应该能够使用普通的TCP代理(例如安装在主机A上的simpleproxy或rinetd)来实现你想要的function。configuration该代理将stream量从端口5900转发到主机B.示例rinetd.conf

 # bindadress bindport connectaddress connectport 0.0.0.0 5900 <ip-of-host-b> 6000 

从安全的angular度来看,涉及SSH的解决scheme将是可取的,虽然…

它不会像这样自动工作。 在你的公共网关上安装不安全的VNC也不是一个明智的select。

你应该真的尝试一个VPN,你可以有一个OpenVPN,甚至是一个PPTP服务器,然后客户端将连接到VPN,然后再连接到B上的VNC服务器。

另一个select是SSH转发,你可以在B(或者A但是B更容易)上设置SSH服务器,把SSH端口转发给B,然后通过putty或者任何支持转发的SSH客户端连接。

从cygwin上的Linux或SSH客户端:

 ssh [hostname] -l username -L 6000:localhost:6000 

腻子说明: http : //oldsite.precedence.co.uk/nc/putty.html

之后,您可以使用localhost:6000(例如:vncviewer localhost:6000)连接任何VNC客户端。