通过具有公网 IP 的服务器通过 VPN 接入另一个没有公网 IP 的 LAN

通过具有公网 IP 的服务器通过 VPN 接入另一个没有公网 IP 的 LAN

我需要能够在不亲自到场的情况下访问某个 LAN 中的设备。我以为 VPN 可以帮助我,但我找不到适合我情况的任何工具。所以,如果您能给我指明正确的方向,或者告诉我应该使用什么,请告诉我。

我想要的是: 我有一个小型局域网(由基本的 TP-LINK 家庭 wifi 路由器组成),里面有许多 RPi 在工作。如果我想通过 SSH 连接到它们,我必须去那里并将我的 PC 连接到这个网络。我想要的是,无论我在哪里,都能通过 SSH 连接到它们。我的梦想(如果可能的话)是拥有虚拟 NIC,通过隧道连接到这个网络,从这个网络获得 IP,这样我就可以通过与我在这里相同的 IP 访问这个局域网中的设备。一旦一切设置完毕,两种情况下的用户体验将相同,您将无法分辨您是物理连接到这个局域网,还是在其他地方。这可能吗?

一个大问题是我无法在这个网络上使用公共 IPv4(ISP 拒绝了)。我应该获得 IPv6,但这要等到明年才会实现。但我有几个 VPS,都使用公共 IPv4,可以用来桥接这一点。

主要任务是让它在我的 Windows 10 PC 上运行。让它在 Linux 和 Android 上运行是件好事,但不是必须的。

我已经尝试过的: 拥有一个到我的 VPS 的 SSH 隧道。但这需要设置每个 RPi。此外,默认情况下,我无法访问所有端口,我必须为每个端口打开另一个隧道。最大的缺点是我必须记住哪个端口通向哪里。

我以为 VPN 可能是完成这项任务的合适工具,但根据我找到的信息,VPN 服务器用于访问“外部互联网”(绕过地理位置、建立安全连接等)。但我不想访问 LAN。

您能告诉我要查找/谷歌什么或应该使用什么吗?谢谢。

答案1

VPN 确实是完成这项工作的工具。有很多技巧和方法可以做到这一点。

我会获取一个低规格的虚拟服务器(例如最小的 AWS EC2 实例)并将其设置为 OpenVPN 服务器,并在其上启用路由/数据包转发。如果 IOT/家庭网络位于 192.168.1.0/24,我可能会将 OpenVPN 设置为从 172.16.0.0/24 分配 IP 地址。

我会用 DD-WRT 替换 TPG 路由器上的固件,或者如果那不可能(例如因为它有一个 VDSL 接口)则在它和 LAN 之间放置第二个 DD-WRT 路由器。

然后,我将设置从我的 dd-wrt ​​路由器到 VPN 服务器的 OpenVPN 连接,以及另一个到我的漫游笔记本电脑的连接。最后,我将让 VPN 向所有客户端通告 IOT/home 路由,并确保将其路由到家庭网络。

通过这种方式,所有东西都可以看到网络上的其他东西,而不会受到 NAT 的干扰。

另外,OpenVPN 有两种模式 - Tun 模式,这是我比较喜欢的模式,上面已经介绍过了;TAP 模式,我还没有尝试过,但如果它能工作的话,会提供更无缝的体验 - 通过将两个远程 LAN 桥接在一起。虽然后者看起来更接近您的理想,但它速度较慢,调试起来也更困难。

相关内容