如何使用软件方法连接两台机器的网络?

如何使用软件方法连接两台机器的网络?

更新:假设位置是分开的,因此 WAN 横向是必须的,并且无法进行物理联网。


我希望能够使用软件方法将两台机器的网络连接在一起,而不是使用网络路由器 VPN 方法。我不需要每个网络的其余部分能够看到另一个网络。我需要的是客户端 A 能够看到客户端 B 的网络,反之亦然。

我发现图片很有帮助。我有一些图表可以尝试进一步解释。假设我们有两个网络。每个网络中都有三台服务器、一台路由器和一台客户端机器。

图A

现在,我不需要任何左侧服务器能够与任何右侧服务器通信。我只需要客户端 1 能够通过 IP 访问正确的服务器,如下所示:

图B

同样,我需要客户端 2 能够通过 IP 访问左边的服务器,如下所示:

图C

现在,考虑到它们可能具有相同的子网,有没有什么办法可以解决这个问题?比如给 VPN 隧道一个像 172.XXX 这样的 IP,然后在另一端将其转换为 172.0.0.1 -> 192.168.1.1?

另一方面,如果 IP 子网没有发生冲突,例如右侧网络使用 192.168.2.X,是否可以将两个客户端连接起来并能够按原样访问 IP?即客户端 1(192.168.1.100)连接到服务器 F(192.168.2.4)?

图D

如果这两种情况都可能发生,你会如何实现它们?我考虑的是 X 平台,也就是 windows、linux、osx。我认为最好的方案是使用具有众多客户端的开放协议。

我希望这个问题能被理解。我是一名开发人员,所以我确信我的网络知识中有很多漏洞,真的真的我没有想到一些显而易见的东西。如果我遗漏了什么,请告诉我,如果您还有什么要补充的,请告诉我!我感谢所有反馈!

非常感谢您的阅读!

答案1

任何数量的 VPN 产品都可以满足您的需求。(就我个人而言,我会使用 OpenVPN。)

一端作为 VPN 服务器运行,另一端作为客户端运行。您需要在服务器端的防火墙上打开相应的端口以接收传入连接。

如果这不可行,您可以随时引入第三台机器,托管在互联网上的某个地方,作为流量的“枢纽”。然后,您可以在两台“客户端”机器上运行 VPN 客户端,让互联网托管的服务器充当 VPN 服务器。这是否可行取决于您的延迟需求和带宽/托管成本。

在没有通过防火墙转发端口并且没有 Internet 端服务器来协调通信的情况下获得直接的“客户端到客户端”通信确实非常困难。

相关内容