Networking 没有专用服务器或要求玩家手动转发端口(无UPnP)的简单多人游戏网络

Networking 没有专用服务器或要求玩家手动转发端口(无UPnP)的简单多人游戏网络,networking,udp,upnp,hole-punching,Networking,Udp,Upnp,Hole Punching,我正试图弄明白如何制作一个简单的多人游戏,玩家不必担心端口转发,并且可以直接连接到彼此,而不需要中间有一个专用服务器。手动端口转发对于不太懂技术的玩家来说是一件麻烦事,而服务器则需要花钱 我看过UDP打孔,但这需要客户端之间的中间人,据我所知,UPnP存在安全问题,并非所有设备都支持 除了我提到的,还有其他方法吗?可能是TCP或UDP以外的其他方法,我可能忽略了?我希望玩家的体验尽可能简单,我自己也不必担心服务器成本 提前感谢您实施的任何解决方案都可能具有与UPnP相同的安全含义。一般家庭路由器

我正试图弄明白如何制作一个简单的多人游戏,玩家不必担心端口转发,并且可以直接连接到彼此,而不需要中间有一个专用服务器。手动端口转发对于不太懂技术的玩家来说是一件麻烦事,而服务器则需要花钱

我看过UDP打孔,但这需要客户端之间的中间人,据我所知,UPnP存在安全问题,并非所有设备都支持

除了我提到的,还有其他方法吗?可能是TCP或UDP以外的其他方法,我可能忽略了?我希望玩家的体验尽可能简单,我自己也不必担心服务器成本


提前感谢

您实施的任何解决方案都可能具有与UPnP相同的安全含义。一般家庭路由器使用的NAT基本上是绕过ISP的黑客攻击,ISP为多个IP地址收费。由于大多数家庭用户都没有运行服务器,所以这种方式运行得相当好。但是,正如你所发现的,它不允许在没有跳转的情况下举办一场比赛。我的建议是实施UPnP,并记录您为路由器不受支持的用户使用的端口。

搜索UPnP(通用即插即用),尽管不是每个人的路由器上都启用了它,但它允许您根据需要为拥有它的用户进行端口转发。UPnP不完全受支持,并且已知存在安全问题。这将是一个理想的解决方案,如果不是为这些点。我目前不知道有任何其他方法来做,但UPnP是相当普遍的任何方式。很多人在不知道的情况下默认启用了路由器上的UPnP。更精通技术的人可能会禁用它,但如果他们知道如何做到这一点,那么他们显然知道如何手动转发端口。UPnP的安全问题在于路由器,而不是你的应用程序——这意味着你使用它,它不会使安全性变得更差。如果用户使用UPnP,这不是你的问题,但是如果它可用,那么就继续使用它。大多数现代路由器都支持UPnP吗?如果只有一小部分玩家,比如1-5%的人缺乏支持,我会考虑使用这种方法,并为那些没有支持的人详细说明一个解决办法。此外,如果现在越来越多的路由器支持UPnP,那么将来可能会完全支持UPnP。老实说,我不确定现在大多数家庭路由器是否支持UPnP。我很久没有使用家庭路由器了。然而,当我这么做的时候,它逐渐变得越来越普遍。你不能相信用户的路由器上有UPnP IGD@Drgnkght在安全性方面是正确的:当您想要做的正是UPnP IGD所做的事情时,关心UPnP安全问题是愚蠢的:使其他计算机能够连接到受NAT“保护”的计算机。