如何进行端口转发?

4
我试图通过端口转发来替换当前的UDP打洞,原因是我希望客户端可以在没有服务器干预的情况下开始彼此通信。在.net中,我们可以使用natupnplib,但它似乎不能正常工作(例如在我的家庭WiFi上无法正常工作)。Mono.Nat也不是解决方案。
我知道有一种方法可以做到这一点,因为uTorrent会在我检查的每台电脑上进行端口映射。(我知道它可能不兼容所有地方,但我希望它能在uTorrent可以工作的设备上运行)
我在互联网上寻找了用于端口转发的开源BitTorrent实现,但没有找到。一个在.NET环境中编写的解决方案将是很好的选择。
那么,我该怎么做呢? :)

我不需要,它会自动完成。 - liran63
根据这里的说明,这是由于PnP引起的:较新的路由器型号通常具有内置的UPnP(通用即插即用)或NAT-PMP。这允许自动转发端口... 我认为这将是搜索信息的好开始。希望对你有所帮助。 - default
1个回答

7

端口转发简介

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

常见问题

一些库在您的WiFi中无法正常工作的原因有几个。首先,请确保已在您的NAT设备中启用了UPNP。如果启用了,则您测试过的库可能仅支持IP路由(WANIPConnection),而不支持ADSL调制解调器(WANPPPConnection)。

Mono.Nat和家庭设备

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

建议

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

祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接