Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Networking 如何将NAT后面的IP连接重定向到源位置的NATT(公共)IP?_Networking_Tcp_Ip_Nat - Fatal编程技术网

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

Networking 如何将NAT后面的IP连接重定向到源位置的NATT(公共)IP?,networking,tcp,ip,nat,Networking,Tcp,Ip,Nat,我有一个依赖IP地址进行通信的应用程序(域名根本不起作用。:(…) 它的功能是在建立信任后连接到另一台机器上的对等计算机并发送数据。在“建立信任”过程中阶段他们都交换IP以用于未来通信。他们都在两个不同的防火墙后面,并且都是NATED。一个在我们的NATED办公网络中,另一个在云上,NATED在他们的防火墙后面。应用程序知道各自的专用IP并交换(10.x.xxx.xxx范围),当他们试图互相连接(使用范围为10.x.xxx.xxx的专用IP)传输数据时,他们失败了。连接是TCP,端口范围非常不同

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

它的功能是在建立信任后连接到另一台机器上的对等计算机并发送数据。在“建立信任”过程中阶段他们都交换IP以用于未来通信。他们都在两个不同的防火墙后面,并且都是NATED。一个在我们的NATED办公网络中,另一个在云上,NATED在他们的防火墙后面。应用程序知道各自的专用IP并交换(10.x.xxx.xxx范围),当他们试图互相连接(使用范围为10.x.xxx.xxx的专用IP)传输数据时,他们失败了。连接是TCP,端口范围非常不同


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

这听起来很像您希望从VPN中获得的。您是否可以设置一个?基本上,您和云之间的站点到站点VPN会说‘哦,嘿,这是一个位于远程网络上的IP,请继续并通过链接进行连接。这种解决方案在您的情况下有效吗


类似这样的东西:

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

翻译很棘手,您将使用的所有主要工具都适合静态翻译(端口转发,例如,将特定端口转发到特定IP)。这是一种方法,但这是一种黑客方法(它需要您打开大量端口,按程序更新路由器,并且可能有某种代理服务器来维护映射)

或者,您可以通过VPN运行隔离网络,这将为您的端点提供相互专用的IP,您可以使用这些IP相互连接。这只是绑定到此新地址并通过VPN进行通信的一种情况。这还可能会加密您在internet上的通信

其他的可能性是使用NAT/TCP穿透技术,这可以允许遍历,但这些技术实际上是一个修补程序,可以修复损坏的网络拓扑(阅读IPv6,了解如何缓解这种情况)

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


要回答关于硬编码规则的问题,这里的解决方案是端口转发。这显然取决于接受连接的对等方的路由器配置,但此客户端应该将端口目标端口转发到计算机。这显然不能很好地扩展,实际上正在向服务器/客户端架构转变重新连接一次

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

有关端口转发的信息,请访问