【问题标题】:P2P connection over all NAT types所有 NAT 类型的 P2P 连接
【发布时间】:2021-01-19 11:25:52
【问题描述】:

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

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

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

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

提前致谢。

【问题讨论】:

    标签: p2p portforwarding nat upnp hole-punching


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗨,谢谢您的回复。有没有使用端口转发?当我转发两个路由器的端口(也是全锥不对称)时,它没有连接,我有问题。没有其他方式而不是对称 NAT 的中继?谢谢。
    • @Amirmohammad Farhang 您可以查看开源库 libtorrent 作为示例。对于对称 NAT,我不知道任何 100% 成功的算法。
    猜你喜欢
    • 2012-12-31
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 2011-07-02
    • 2013-01-16
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    相关资源
    最近更新 更多