Mobile NAT后到NAT后连接

Mobile NAT后到NAT后连接,mobile,udp,p2p,nat,nat-traversal,Mobile,Udp,P2p,Nat,Nat Traversal,我遇到了一个有趣的问题。基本上我有两部手机都支持NATs。我想使用UDP在两个设备之间直接通信 我知道,如果我启动了从手机到服务器的连接,那么我可以将数据从该连接推回到手机(即从接收消息的同一端口将数据发送回接收消息的同一ip和端口)。因此,通过将两部手机连接到服务器,我可以轻松地在两台设备之间进行通信。然后将数据发送到服务器并将其重新路由回手机。这绕过了我可能遇到的任何NAT遍历问题 然而,我宁愿使用服务器将这两个设备彼此指向对方,然后让它们直接通信。我该怎么做呢?不使用像uPnP这样的东西有

我遇到了一个有趣的问题。基本上我有两部手机都支持NATs。我想使用UDP在两个设备之间直接通信

我知道,如果我启动了从手机到服务器的连接,那么我可以将数据从该连接推回到手机(即从接收消息的同一端口将数据发送回接收消息的同一ip和端口)。因此,通过将两部手机连接到服务器,我可以轻松地在两台设备之间进行通信。然后将数据发送到服务器并将其重新路由回手机。这绕过了我可能遇到的任何NAT遍历问题

然而,我宁愿使用服务器将这两个设备彼此指向对方,然后让它们直接通信。我该怎么做呢?不使用像uPnP这样的东西有可能吗

任何帮助都将不胜感激


编辑:我发现了这篇文档,它看起来像是发夹翻译,但它似乎没有得到广泛支持。我想知道移动ISP对UPnP的支持有多好?

您需要一个中介服务器,这样客户端就可以知道它们在哪里。然后一个通过uPNP打开一个服务器,另一个连接到它。

您要查找的是UDP打孔,请参阅例如


基本思想很简单,您告诉每个端点要使用的端口,然后它们开始发送udp数据包。NAT'ing设备在看到第一个传出数据包时将设置一个遍历规则,然后另一端的下一次尝试将与此遍历规则匹配。

如果每个路由器都具有外部可见性,则穿孔是很好的,我不能确定这一点:(此文档对穿孔也有很好的解释。)“发夹翻译”看起来更像我所追求的,但是,唉,没有得到很好的支持:(是的,如果我能使用它,那将是理想的。不过UPnP在多NAT层网络拓扑上不起作用:(多NAT?两边都有?这是中国吗?你的问题是“我想知道移动ISP对UPnP的支持有多好?”?“。所有的问题都解释了打孔是什么,但没有一个能回答关于当前支持的问题。哦,多有趣啊:-)谢谢你链接到p2pnat论文。最近几年你找到了解决方案吗?我还有三个远程网络(都有LTE调制解调器,ISP NAT没有uPNP)我希望将其连接在一起。现在我使用的是Pritunl OpenVPN,但我希望中介服务器仅作为中介,如您所述,而不是通过它路由所有流量。找到了ZeroTier,它看起来正是作业的工具(无法编辑注释,因为>5分钟)。