通过 socks SSH 代理隧道的 VNC

通过 socks SSH 代理隧道的 VNC

我可以使用 Putty 通过以下设置连接到我的私人工作网络:

  • 主机名:login.example.com
  • 端口:502
  • SSH 转发端口:D8888

这将打开一个 SSH socks 代理,允许我访问内部服务器。我再次使用 Putty 通过上面的 socks 代理连接到内部 Ubuntu 服务器。

现在我想使用 VNC 获取服务器 GUI,但无法连接 socks 代理。我尝试转发端口,但由于我是新手,可能操作不正确。那么如何从我的 Windows 计算机运行 VNC 来访问远程 VNC 服务器?

本文没有帮助我使用 进行连接vncserver。RDP 也不起作用。VNC 会话位于不同的服务器上,只能从login.example.com作为袜子代理。

注意:我可以使用上面的配置通过 SSH 连接到内部服务器login.example.com作为 Putty 中的 socks 代理。

答案1

如果您使用 RealVNC 查看器,如您引用的文章中所示,那么您应该能够执行以下操作:

  1. 使用 PuTTY 连接login.abc.com并设置D8888转发(您说您已经这样做了)。
  2. 启动 RealVNC 查看器并单击Options...按钮。
  3. 选择Connection选项卡。
  4. 单击Use these proxy settings单选按钮。
  5. 设置。Proxy typeSOCKS 5
  6. 设置。Proxy address and portlocalhost:8888
  7. 现在尝试连接到实际的 VNC 服务器,例如vnc-server.abc.com:1。不要使用localhost:1,因为您应该通过 SOCKS 代理。

答案2

大多数 VNC 客户端不支持 SOCKS 代理,因此无法使用动态端口转发(D8888 中的 D)。您可以将本地端口转发到特定的机器+端口,但这意味着每个要通过 VNC 连接的远程系统都有一个这样的本地端口映射。(这是您链接到的文章中的内容 - 它显示了到 SSH 隧道另一端的本地主机的映射)。然后,您通过 VNC 连接到本地机器上的转发端口,并通过 SSH 隧道将其连接到特定的远程地址:端口。

转发端口:L8889 xxxx:5900(您想要通过 VNC 连接的机器的 xxxx 地址)

一些 VNC 客户端确实支持 SOCKS 代理,但它倾向于付费/专业版本。

相关内容