隧道 VNC 端口和端口转发

隧道 VNC 端口和端口转发

我有两台机器,分别叫做 A 和 B。机器 A 是公共网关。机器 B 在我的网络中并在端口 6000 上运行 VNC 服务器。我希望人们通过 VNC 端口 5900(不安全)连接到机器 A。此后,机器 A 应该从自身的 5900 端口到机器 B(安全)上的端口 6000 设置一条隧道。并且人们无需连接到实际主机就可以看到 vnc 输出。

如何做到这一点?有什么办法吗?如果我哪里错了,请告诉我。谢谢

答案1

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

vncviewer -via host-a host-b:6000

这将打开一个 SSH 会话host-a,转发host-b:6000到您的本地计算机,并将 VNC 查看器指向该转发端口,只需一个命令即可完成。从您的主机到 的流量将被加密,而从到 的host-a流量将不加密。host-ahost-b

编辑:重读你的问题后,我意识到这并不是你真正想问的。我认为你应该能够使用简单的 TCP 代理来实现你想要的,例如简单代理或者rinetd安装在主机 A 上。配置该代理将流量从端口 5900 转发到主机 B。示例rinetd.conf

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

然而,从安全角度来看,涉及 SSH 的解决方案会更可取……

答案2

它不会像那样自动工作。另外,在公共网关上使用不安全的 VNC 也不是一个明智的选择。

您确实应该尝试使用 VPN,您可以在 A 上拥有一个 OpenVPN 甚至 PPTP 服务器,然后客户端可以轻松连接到 VPN,然后连接到 B 上的 VNC 服务器。

另一个选择是 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 连接任何 VNC 客户端(例如:vncviewer localhost:6000)

相关内容