WebRTC服务器Coturn服务器部署

1、概述

作为WebRTC服务器,只需要部署开源的coturn即可,coturn同时实现了STUN和TURN的协议

2、Coturn具体部署

2.1 Coturn简介

coturn是一个开源的STUN/TURN服务器,把STUN服务器跟TURN服务器都整合为一个服务器,主要提供一下几个功能

2.1.1 网络地址转换(NAT)穿越

可以让通话的双方处于不同的NAT网络下,协助实现两者之间的连接

2.1.2 STUN功能

响应客户端的STUN请求,返回客户端的公网地址和端口、映射端口等,使客户端了解自身在网络中的地址映射情况。

2.1.3 中继(TURN)功能

当STUN无法实现NAT穿越时候,作用中继服务器,在通信的两端无法直接建立连接时,充当数据中转的角色

2.2 Coturn的部署

2.2.1 源码仓库信息

开源github仓库: https://github.com/coturn/coturn

2.2.2 部署要求

coturn版本: 无具体要求

服务器硬件要求: 带宽要求较大,当P2P打洞不成功,都会通过这个服务器进行中转数据。

流量估计:在测试两两通话时候,640 X 480P的分辨率,VP8编码, 平均每秒发送和接收流量为74164×2 = 148328(bytes)=144.86KB,可以对这进行预估所需要的带宽

2.2.3 部署方法

2.2.3.1 安装coturn

centos: yum install coturn

ubutu: apt-get install coturn

2.2.3.2 修改配置文件(/etc/coturn/turnserver.conf或者/etc/turnserver.conf)

listening-port=3478 (监听的端口)

tls-listening-port=5349 (TLS监听端口)

cert=/home/webrtc/server.cert (TLS证书路径)

pkey=/home/webrtc/server.key(TLS证书密钥)

external-ip=117.72.111.221/172.16.0.3(根据实际设置外网IP/内网IP)

user=test:123456 (根据实际配置用户名和密码)

min-port=49152 (要求coturn分配的中继端口范围最小值,可以不配置,默认最小是49152)

max-port=65535 (要求coturn分配的中继端口范围最大值,可以不配置,默认最大是65535)

cli-password=test (开启telnet服务器访问,开启telnet功能,必须设置这个密码,方便后续查看)

cli-max-output-sessions=10000(telnet客户端连接上后通过ps查看会话最大显示个数,配置默认值为256个会话,也就是默认配置最多返回256个会话给telnet客户端,这个应根据coturn服务器资源的负载进行设置)

realm=nort.gov (coturn服务器的默认的域)

2.2.3.3 启动coturn服务器

service coturn start 或者利用命令行启动coturn -c -f /etc/coturn/turnserver.conf

coturn的具体参数用法可以看 coturn -h 或者turnserver -h

备注1: coturn会监听上面配置文件打开的端口 ,tcp和udp同时都监听(比如配置文件配置了3478,则udp和tcp的3478端口都会被监听),客户端和coturn服务器会根据情况选择tcp/udp进行通信,需要让udp/tcp的端口3478/5349(TLS加密)都要开放。

备注2: coturn启动时会提供备用端口,比如上面3478,同时也打开3479作为备用端口,上面5349加密端口,同时也打开5350作为加密的备用端口

备注3: 备用端口也可用于支持NAT行为发现和提供备用通信地址的重要属性

备注4:其实我发现无论3478/5349还是3479/5350都是可以正常通信的,也可以加密

2.2.4 测试验证

通过开源测试网站Trickle ICE,进行测试,可以验证coturn服务器是否部署成功

相关推荐
Stupid小池2 天前
webrtc建立连接的过程
webrtc
Paraverse平行云5 天前
如何使用UE Cesium插件实现网页端无算力负担访问?
云原生·webrtc
NodeMedia8 天前
如何用WHIP协议WebRTC推流到NodeMediaServer
webrtc·音视频开发
TSINGSEE8 天前
跨平台嵌入式音视频开发指南:EasyRTC音视频通话的多场景适配与AI扩展能力
人工智能·音视频·webrtc·智能家居
唯独失去了从容10 天前
MacOS下下载和编译webrtc步骤
webrtc
appcanLiYunLong11 天前
Webrtc让浏览器实现无服务器中转的安全私密聊天
安全·serverless·webrtc
Tiger_Hu11 天前
通过WebRTC源码入门OpenGL ES
android·webrtc·opengl
feiyangqingyun12 天前
推流265视频,网页如何支持显示265的webrtc
音视频·webrtc
半兽先生14 天前
WebRtc 视频流卡顿黑屏解决方案
java·前端·webrtc