具有中继和动态 IP 的 SSH 隧道

具有中继和动态 IP 的 SSH 隧道

我正在尝试通过 ssh 隧道从私有网络上的一台计算机实现 vnc 连接,并使用公共服务器作为中继,连接到另一个私有网络上的另一台计算机。可以用以下模式以图形方式描述:

|--------------|    |----------|    |--------------|
|locale machine|    |  server  |    |remote machine|
| ip:  x.x.x.x |===>|ip:1.2.3.4|===>| ip:  x.x.x.x |
|         out:A|    |in:B out:C|    |in:D          |
|--------------|    |----------|    |--------------|

让我解释一下:

  • 本地计算机是我想要运行 VNC 客户端的计算机。它位于私有网络上,因此无法直接访问。
  • 通过端口 A(我不太关心这个),它必须创建一个到服务器端口 B 的 SSH 隧道
  • 服务器将传入消息从端口 B 重定向到端口 C(也不重要)
  • 端口 C 由远程机器通过隧道将消息重定向到自身,以 VNC 服务器为目标。此机器也在私有网络上,因此我无法从本地机器或服务器直接通过 IP 定位它

困难在于,我们不知道源 IP 和目标 IP。唯一可以配置的是服务器,我可以按照自己想要的方式配置它。我们假设我无法编辑我的私有网络防火墙配置中的任何内容

我读了很多关于 SSH 隧道或带代理的 VNC 的教程和文章,但我不明白它是否能满足我的需求。所以,我真正想问的问题不是“怎么做?”而是“为什么以及如何解决你的解决方案?”。

此外,如果可能的话,我想用最简单的工具来实现它,例如,随时随地从我的 Android 检查我的计算机状态。

谢谢您的关注,并提前感谢您的帮助和解释。


编辑:如果这有帮助:

  • 本地机器:OSx 10.10.5
  • 服务器:具有非标准 ssh 端口的 Ubuntu 15.04 服务器
  • 远程机器:Ubuntu 16.04 / Fedora 23

答案1

根据场景,Alexandre 需要一个位于公共互联网上的 VPN 设备/服务器。

区域机器建立隧道<==> VPN 服务器<==> 远程机器建立隧道|

一旦两台机器都通过隧道接入 VPN 设备,它们就可以看到对方,他就可以做他想要的工作了。

另一个解决方案是,Alexandre 使用防火墙/路由器打开隧道,然后通过防火墙/路由器的真实 IP 地址直接通过 VPN 连接到他的网络。这样可以省去中间人,达到同样的目的。

机器建立隧道<==>路由器/防火墙,然后他就可以访问他的服务器。

相关内容