首先我要声明我不是网络专家。我并不擅长这个项目,所以任何建议、意见或流行语我都非常感谢。
我想设计一个网络,让多个远程客户端可以使用蜂窝连接通过互联网相互连接。
在我的场景中,假设我有 3 台远程客户端 PC:、 Client001
和Client002
。Client003
每台客户端 PC 都位于自己的 3G 蜂窝路由器后面,并配有 SIM 卡。我希望 PC 能够通过互联网互相看到,并且至少能够通过 IP 地址相互 ping 通。
开箱即用,我认为每个蜂窝路由器的 IP 地址在蜂窝网络中都是“私有”的。换句话说,我不能简单地Client001
从后面的 PC ping 路由器的蜂窝 IP 地址Client002
并期待回复。更复杂的是,每个路由器的蜂窝 IP 地址都是动态分配的 - 每次路由器重新启动时它似乎都会改变。所以即使我可以 ping 它,它也不是静态的。
我相信我可以从移动运营商那里以优惠的价格购买一个公共/静态 IP 地址,但我想知道是否可以通过在所有客户端之间建立 VPN 来解决这个问题……
此特定品牌/型号的路由器支持充当 OpenVPN 客户端。
从高层次上讲,如果我建立一个 OpenVPN 服务器(例如 Untangle、Access 等),将我的蜂窝路由器配置为 OpenVPN 客户端并将它们指向服务器(从而建立 VPN),这应该可以解决我的连接问题,对吗?
只要客户端 PC 连接到与 VPN 相连的蜂窝路由器,我的所有客户端都应该能够使用 VPN 建立的某种内部/本地 IP 地址相互通信,对吗?
如果所有这些都属实,那么客户端 PC(VPN 上的路由器后面)的 IP 地址是如何确定的?它们是静态的还是动态的?如果可能的话,我希望能够通过 IP 地址可靠地访问特定的客户端 PC,即使路由器/客户端 PC 重新启动也是如此。这能实现吗?
以下是根据我的示例绘制的初步草图:
答案1
我不知道如何解决,但如果你运行自己的 OpenVPN 服务器,你当然可以做到这一点。
当您启用时client-to-client
,不同的 openvpn 客户端将能够使用 VPN 提供的 IP 相互通信。
默认情况下,这些 IP 是动态分配的,但您可以启用client-config-dir
设置一个目录,其中每个客户端可以有一个配置文件(由证书中的 CN 标识),可以为该客户端分配一个特定的 IP(ipconfig-push 10.8.0.5 10.8.0.6
将分配10.8.0.5
给特定的客户端)。