NAT 端口转发的最佳选择是啥?

Posted

技术标签:

【中文标题】NAT 端口转发的最佳选择是啥?【英文标题】:What are the best options for NAT port forwarding?NAT 端口转发的最佳选择是什么? 【发布时间】:2010-09-14 21:17:23 【问题描述】:

我想让用户可以轻松地将其 NAT 上的端口转发到我的 C++ 应用程序的本地计算机。我想让这项工作在 OSX 和 Windows 上运行。 Linux 将是一个很大的好处,但 Linux 用户可能更愿意手动转发端口,所以这不是一个问题。 LGPL 类型代码是可以的,但我不能使用任何直接 GPL 的东西。

我很想听听任何人在这方面的任何想法或经验,但我想到了一些具体的问题:

是否有公认的最佳 UPNP 库? MiniUPNP 客户端看起来可以工作,但还有其他的吗? Bonjour 呢?我可以将它用于 OSX 计算机吗? 所有的大比特流应用程序都必须处理这个问题,那么是否有关于他们如何做到这一点的现有调查? Skype 呢?

【问题讨论】:

Skype 不需要在本地模式下转发端口 - 它使用中继(与许多 IM 一样):因此来自客户端的连接是传出的。 【参考方案1】:

MiniUPNP 被至少一个 bittorrent 客户端(传输)使用,应该可以正常工作。

【讨论】:

【参考方案2】:

OS X 和 Windows 上的 Bonjour 可用于与支持 uPNP 或 NAT-PMP 的路由器进行端口映射。我没有使用过API (DNSServiceNATPortMappingCreate),但我已经成功地在 NAT-PMP 路由器后面的 Windows 和 OS X 上发布了广域网服务。我不确定您的 Windows 用户是否想要安装 Bonjour(尽管如果他们使用 iTunes 或 Safari,他们可能已经安装了 Bonjour)来使用您的应用程序,但 OS X 支持应该不是问题。

【讨论】:

你能在这里提供来源吗?用于 ios 中的端口映射。我尝试使用 MiniUPNP,但没有运气。

以上是关于NAT 端口转发的最佳选择是啥?的主要内容,如果未能解决你的问题,请参考以下文章

VirtualBox 端口转发不适用于 NAT 适配器

linux上NAT转发问题,允许转发设置

如何以编程方式通过upnp实现双NAT端口转发

VMware虚拟机配置端口转发(端口映射),实现远程访问

VirtualBox 端口转发 SSH

iptables nat 技术转发