访问处于 NAT 下且没有公网 IP 的本地网络

访问处于 NAT 下且没有公网 IP 的本地网络

我有一个地方叫做(假设)REMOTE。REMOTE 使用 3G/4G 调制解调器 + 路由器连接到互联网。不幸的是,我的移动互联网提供商没有给我公共 IP 地址。在 REMOTE 中,我有几个设备想从家里访问。它们并非全部都是个人电脑(有打印服务器、录像机等),所以我无法在所有这些电脑上安装软件。我至少有一台电脑可以用作网关。

我还有一台运行 Linux 的服务器,具有公共 IP 和相当快的互联网连接。

我在家里遇到的情况与在远程遇到的情况相同。

我希望能够以某种方式从家里访问远程设备。我该怎么做?

答案1

如果您确实有一个公共服务器,那么有很多方法可以实现您的目标。

  1. 最简单的解决方案是使用SSH tunnels。但您需要从 REMOTE 进行一次性访问才能设置隧道。使用以下命令:

    远程控制[电子邮件保护]-N -o TCPKeepAlive -R 12321:远程 ip:22

    然后,每次您从 HOME 连接到端口 12321 上的 your-public-server.org 时,您实际上都会看到来自 REMOTE 上的 linux 网关的登录信息。

    通过稍后的 ssh 连接(在 HOME 和 REMOTE 之间),您可以使用ssh -L标志转发任何内容。例如,打印服务器的网页、获取远程桌面会话等。

  2. 作为一种更持久的解决方案,您可以考虑使用 VPN 解决方案,其中 VPN 服务器仍将设置在公共服务器中,远程服务器(也许还有家庭服务器)将连接到该服务器。然后,所有 VPN 客户端都可以被视为公共内部网的一部分,它们可以直接相互通信。

答案2

我读到任何一方(远程和家庭)都没有公共 IP 的机会,是吗?如果是这样,去买一个便宜的 VPS(约 4-5 美元/月),128 MB RAM 应该足够了。确保 VPS 运营商允许 VPN 连接。然后在 VPS(服务器角色)和您的位置(客户端)上设置 OpenVPN。

相关内容