在本文中,让我们详细了解如何为WebRTC通信设置STUN / TURN服务器。在深入探讨它之前,让我们详细讨论什么是WebRTC,STUN,TURN,以及它们如何相互链接。
什么是WebRTC?
WebRTC(Web实时通信)是一项技术,允许Web浏览器流式传输音频或视频媒体,以及在不需要中介的情况下在浏览器,移动平台和IoT设备之间交换随机数据。
WebRTC允许Web应用程序运行以下功能:
视频会议
文件共享
屏幕共享
广播等
在实时通信中,必须在Internet上部署视频网关,因此任何用户都必须通过RTP(实时传输协议)端口连接并发送媒体片段,而不会出现特定问题。
但是有时这还不够,因为有些用户可能会因为不同的IP网络而面临连接问题,其中防火墙和NAT(网络地址转换器)可能包含不允许RTC通信的特定网络策略。
为了解决这种网络连接情况,我们需要使用ICE(交互式连接建立)协议,它定义了一种系统的方式来查找对等方和视频网关(WebRTC)之间的可能的通信选项。
ICE(交互式连接建立)是用于生成可在WebRTC应用程序中使用的媒体遍历候选者的协议,并且可以使用STUN和TURN通过网络地址转换(NAT)成功发送和接收它。
什么是STUN?
STUN(用于NAT的会话遍历实用程序)通过UDP协议通过NAT对ICE进行补充。STUN允许应用程序发现它们之间以及公共Internet上NAT和防火墙的存在和类型。任何设备都可以使用它来确定NAT分配给它的IP地址和端口。
通常,STUN客户端可以将消息发送到STUN服务器以获得公共IP和端口信息,然后STUN服务器检索该信息。使用此公共IP和端口信息,客户端将通过Internet进行对等通信。
什么是TURN?
TURN(使用围绕NAT的中继进行遍历)是一种协议,可帮助遍历网络地址转换器(NAT)或webRTC应用程序的防火墙。TURN服务器允许客户端通过中间服务器发送和接收数据。TURN协议是STUN的扩展。
在某些情况下,客户端通信终结点卡在不同类型的NAT后面,或者在使用对称NAT时,通过中继服务器及其称为TURN服务器发送媒体可能会更容易。
通常,TURN客户端首先将消息发送到TURN服务器,以在TURN服务器上分配IP地址和端口。分配成功后,客户端将使用IP地址和端口号与对等方进行通信。TURN数据包包含对等方的目标地址,然后将这些数据包转换为UDP协议数据包并将其发送给对等方。
TURN对于对称NAT设备伪装的网络上的Web,移动和IoT客户端最有用。但是在建立更多客户端连接的情况下,由于服务器利用率和巨大的带宽利用率,TURN服务器成本很高。
使用Coturn设置STUN / TURN服务器
在这里,您可以找到以下步骤来安装和配置Coturn服务器。
步骤1:开放端口的防火墙规则:
首先,请确保在防火墙或云安全组中打开以下端口。
3478 TCP & UDP
49152–65535 UDP
步骤2:Coturn安装
Coturn可以直接从Ubuntu软件包存储库中安装,因此请使用以下命令进行安装。
$ sudo apt-get update
$ sudo apt-get install coturn
步骤3:在启动时启动Coturn守护程序
要使其在系统引导时自动启动,请修改/ etc / default / coturn文件。
sudo nano /etc/default/coturn
查找以下行,并通过删除#取消注释以将Coturn作为自动系统服务守护程序运行。
#TURNSERVER_ENABLED=1
保存并关闭文件。然后您可以通过运行启动Coturn服务
$ systemctl start coturn
步骤4:创建TURN用户,然后单击下一步,编辑主配置文件。
然后打开或创建/etc/turnserver.conf文件并粘贴以下内容。将,和值替换为您各自的值。
fingerprint
user=:
lt-cred-mech
realm=kurento.org
log-file=/var/log/turnserver/turnserver.log
simple-log
external-ip=
在这里,您可以找到以下我自己的示例详细信息示例,以供参考。
fingerprint
user=kavirajan:123456
lt-cred-mech
realm=flickin.io
log-file=/var/log/turnserver/turnserver.log
simple-log
external-ip=98.112.65.70
步骤5:重新启动Coturn服务
您可以使用以下命令重新启动服务。
$ sudo service coturn restart
步骤6:测试时间
转到Trickle ICE页面,然后输入您自己的TURN服务器详细信息。
STUN or TURN URI: turn::3478
TURN username:
TURN password:
然后单击添加服务器,然后单击“收集候选者”按钮。如果正确配置了所有内容,则最终结果应为“完成”。