【问题标题】:if I have a local ipv4 address can I use it from outside a network to talk across a NAT如果我有本地 ipv4 地址,我可以从网络外部使用它来跨 NAT 通话吗
【发布时间】:2012-06-30 14:38:36
【问题描述】:

我有一个应用程序,我希望 NAT 后面的网络内的设备调用公共网络,为服务器提供其本地地址,稍后,比如说 10 或 20 分钟后,我希望服务器成为能够联系网络内的设备。

如果我提供其实际当前本地地址,是否有防火墙/路由器等普遍支持的协议将我定向到本地节点?

谢谢

【问题讨论】:

  • 您最好花费相同(或更少)的时间和精力来开发和实施基于 IPv6 的解决方案,这样您就可以完成上述工作。
  • 是的,忘记 ipv4 会更好,但我还没有弄清楚如何做到这一点。设备大部分都启用了 ipv6,但不是所有网络。我看到 T-Mobile 完全启用了 ipv6。 extremetech.com/mobile/…
  • 我最好还是等 ipv6。无论如何,在新的应用程序中领先一点是件好事。谢谢。
  • @JeremyVisser 使用 IPv6,讨厌和麻烦的 NAT 的优势应该减少,但人们很可能仍会使用防火墙,所以在这个问题上你没有进一步的优势:那些防火墙将阻止任意入站连接从互联网到 SOHO 网关设备后面的主机,就像现在一样。
  • 实际上,我的应用程序主要对公共移动网络感兴趣,尤其是能够对移动设备上的 Mongoose 服务器进行 Web 服务调用。所以我希望一旦主要提供商放弃在边缘分配公共 ipv4 地址的 NAT,我应该没问题。

标签: networking ipv6 nat ipv4


【解决方案1】:

不,没有这样的协议。而且,在多个NAT的情况下,本地节点只能知道最内层NAT后面的地址,而服务器只能知道最外层NAT之外的公共地址,所以你没有办法通过多个NAT映射,甚至不知道路径中有多少个。

如果本地节点想从服务器接收任何东西,它必须启动并保持与服务器的开放连接。

【讨论】:

    【解决方案2】:

    没有用于映射 IP 地址的协议,尽管您可以使用 portmapping/port forwarding 将特定端口映射到 IP 地址

    【讨论】:

      【解决方案3】:

      这就是UPNP 旨在解决的问题。请注意,仍然存在挑战——网络设备需要支持它并且需要启用该功能。许多网络管理员出于充分的理由不会启用它。

      【讨论】:

        猜你喜欢
        • 2020-04-08
        • 2012-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多