默认情况下,coturn使用49152-65535 UDP作为中继端口。有什么理由使用全量程吗?一个udp不能处理无限的连接吗?开放所有这些有什么意义?是否存在安全风险?使用较少的udp端口是否有任何折衷方案?
Coturn默认使用49152-65535范围,因为这是RFC 5766第6.2节中指定的范围,该节描述了TURN服务器在收到分配请求时应该如何反应。这段话对你的问题特别感兴趣:
在任何情况下,服务器都应该只分配49152-65535(动态和/或专用端口范围[Port Numbers](范围内的端口,除非TURN服务器应用程序通过此处未指定的某些方式知道,与TURN服务器应用程序在同一主机上运行的其他应用程序不会受到此范围外端口分配的影响。该条件通常可以通过在专用机器上运行TURN服务器应用程序和/或通过安排机器上的任何其他应用程序在TURN服务器应用程序启动之前分配端口来满足。在任何情况下,TURN服务器都不应该分配0-1023(众所周知的端口范围(范围内的端口,以阻止客户端使用TURN运行标准服务。
RFC 6335第6节:中描述了动态和/或专用端口范围
- 动态端口,也称为专用或临时端口,从49152-65535(从未分配(
因此,尝试回答您的问题:
-
有理由使用全量程吗
是,如果默认范围适用于您和您的应用程序。 -
一个udp不能处理无限的连接吗
是的,当然,在系统资源允许的情况下,您可以将coturn配置为只使用一个端口。 -
打开所有这些有什么意义
它是IANA定义的动态分配端口号的默认范围。 -
是否存在任何安全风险
运行像coturn这样的服务不会带来任何其他正常的安全风险。 -
使用较少的udp端口是否有任何折衷方案
据我所知,没有任何技术上的权衡。我在动态范围之外用一个小得多的范围运行了coturn,它运行得很好。
当面临防火墙或网络上试图访问TURN服务器的端口号限制时,较小的范围可能会被视为对一些网络管理员的好处,但与此同时,其他管理员可能会质疑是否使用IANA分配的动态范围之外的端口范围。我遇到了这两种心态,不可能宣称一种方法明显优于另一种(在默认端口范围或较小范围之间进行选择时(。您只需要找到适合您的应用程序和用法的方法。
@bradley-t-hughes提供了一个很好的答案;添加一个观点:
- 定义默认范围是一种策略,可以确保在没有自定义配置(因此使用默认设置(的情况下运行的应用程序不会相互冲突
- 对于为实时通信动态分配UDP端口的其他应用程序,配置的端口范围表示并发会话的上限。范围越小,可以建立的并发会话就越少
- 在某些情况下,主机专用于TURN服务器等应用程序,并且使用宽范围可以确保最大容量受到其他因素的限制,如带宽或CPU使用率
- 如果您事先知道并发会话的数量会很小,例如,因为它只是用于测试功能,而不是提供实时服务,那么您可以限制该范围,并将其他端口留给其他应用程序