首页 > 解决方案 > 所有 NAT 类型的 P2P 连接

问题描述

最近我正在开发一个 p2p 应用程序,我发现了如何使用 ICE 和 STUN 协议使用 c# 对 UDP 打孔进行编程。

它很好,但对称 NAT 和使用对称 NAT 的路由器有一些限制。\

我正在寻找一种通过任何 NAT 类型连接两个系统的方法。

无论如何,我也尝试过 UPNP 和端口转发,但由于防火墙和路由器黑名单,这个选项不在我的脑海中,如果你的回答是,请描述我应该如何正确使用这个方法。

提前致谢。

标签: p2pportforwardingnatupnphole-punching

解决方案


Upnp 和 NAT-PMP 对于那些支持这些协议的路由器来说非常有用,我还没有遇到像“防火墙和路由器黑名单”这样的问题。

在路由器不支持这些协议的情况下,我使用的是 ICE。如您所说,对称NAT是一种保持最高安全性的类型,如果端口随机增加,则很难打孔。使用服务器作为中继(ICE 可以做到)比克服随机算法容易得多。

如果您对对称 NAT 的源代码感兴趣,它位于 nf_nat_core.c 之类的文件中,很容易跟踪和了解它的工作原理。


推荐阅读