首页 文章

如何将连接到NAT后面的IP重定向到源端的NAT(公共)IP?

提问于
浏览
0

我有一个依赖IP地址进行通信的应用程序(域名根本不起作用 . :( ...)

它的功能是连接到其他机器上的对等体,并在 Build 信任后发送数据 . 在“ Build 信任”阶段,他们都会交换他们的IP以供将来通信 . 他们都在两个不同的防火墙后面并且是NATted . 一个是在我们的NATted办公网络中,另一个是在防火墙后面的NAT中 . 应用程序知道它们各自的私有IP并交换它们(10.x.xxx.xxx范围),当它们尝试相互连接(使用范围为10.x.xxx.xxx的私有IP)来传输数据时失败 . 连接是TCP,端口范围很多 .

我很好奇,无论如何我可以硬编码(这一次)一个规则(可能是防火墙级别或我的应用程序之外的某个地方),说明是否有为IP地址10.x.xxx启动的连接 . xxx然后将其重定向到205.x.xxx.xxx?

2 回答

  • 0

    像10.x.y.z这样的私有IP地址范围本质上是私有的 . 除非 endpoints 之间的每个节点都具有转换这些节点的规则,否则您无法执行任何有意义的解决方案 .

    翻译很棘手,您将使用的所有主要工具都可以满足静态转换(端口转发,例如将特定端口转发到特定IP的位置) . 这是一个途径,但它是一个hacky(它需要你打开许多端口,程序上更新你的路由器,可能有某种代理服务器来维护映射) .

    或者,您可以通过VPN运行隔离网络,这将为您的 endpoints 提供相互私有IP,您可以使用它们互相连接 . 它只是绑定到这个新地址并通过VPN进行通信的情况 . 这也可能会加密您通过互联网进行的通信 .

    其他可能性是使用可以允许遍历的NAT / TCP穿通技术,但这些技术实际上是对破坏的网络拓扑的补丁(阅读IPv6以了解如何减轻这种情况) .

    或者,您可以通过代理路由所有连接,但与VPN相比,这会使问题复杂化 .


    要回答有关硬编码规则的问题,端口转发是此处的解决方案 . 显然,这取决于接受连接的对等方的路由器配置,但此客户端应将端口目标端口转发到计算机 . 这显然不会很好地扩展,并且实际上转移到一个连接的服务器/客户端架构!

    根据您的硬件,您可以转发一系列端口(如果无法 Build 单个端口)并将端口转发限制为某些传入连接(外部IP) .

    有关端口转发的信息,请访问http://portforward.com/

  • 1

    这听起来很像你想要的VPN . 无论如何你可以设置一个吗?基本上,你和 Cloud 之间的站点到站点VPN会说'哦,嘿,这是一个位于远程网络的IP,继续通过链接连接' . 这种解决方案能否适用于您的情况?

    这些方面的东西:http://i.msdn.microsoft.com/dynimg/IC589512.jpg

相关问题