如何进行端口转发?

lir*_*n63 2 .net c# port forwarding nat

我正在尝试将端口转发到我的项目,作为当前udp打孔的替代品.原因是因为我希望客户在没有服务器干预的情况下开始彼此通信.在.net中我们可以使用natupnplib,但它似乎不能正常工作(例如,它在我家的wifi上不起作用).Mono.Nat似乎也不是解决方案.

我知道有一种方法可以做到这一点,因为uTorrent在我检查的每台电脑上进行端口映射.(我知道它可能在任何地方都不兼容,但我希望它可以在uTorrent工作的设备中工作)

我已经浏览了互联网上的开源bittorents实现端口转发,但还没有找到.用.net环境编写的解决方案会很棒.那么,我该怎么做?:)

lon*_*ero 5

关于端口转发

您可以使用UPNP和/或PMP(或其更新版本,PCP - 端口控制协议)在.NET项目中进行端口转发.目前,大多数可用设备都支持UPNP,即使在许多设备中默认禁用UPNP也是如此.

通常的问题

有些库在你的wifi上无法正常工作有几个原因.首先,请确保已在NAT设备中启用upnp.如果它已启用,那么您测试的库可能仅支持IP路由(WANIPConnection),并且不支持ADSL调制解调器(WANPPPConnection).

Mono.Nat和家用设备

官方Mono.Nat仅适用于支持WANIPConnection(IP路由器)的设备,但是有许多设备(家庭设备)只允许WANPPPConnection(ADSL调制解调器 - 这可能是你的情况).但是,您可以使用已经支持WANPPPConnection的其中一个更好的mantained fork.

建议

如果你使用.NET 4.5,我推荐Open.NAT(是的,它是由我开发的),它适用于家用设备,比Mono.Nat更快更新.

祝好运!