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服务器是否部署成功

相关推荐
平行云6 天前
国产GPU云渲染适配实战:驱动兼容、编码调优与多路并发
unity·ue5·webrtc·webgl·实时云渲染·云桌面·像素流送
隐擎fox7 天前
网络传输安全剖析:WebRTC 本地真实 IP 泄漏机制(STUN/TURN)与 Python 防护检测实战
网络·网络协议·tcp/ip·安全·webrtc
福大大架构师每日一题9 天前
mediamtx v1.21.0 发布:Media-over-QUIC、RTSP、HLS、WebRTC 与安全能力全面升级
安全·webrtc
脏脏a10 天前
Neko 自托管实战:WebRTC 远程浏览器、多用户权限与公网访问
webrtc
cuijiecheng201811 天前
从 6.49 秒到约 1.9 秒:RK3588上的WebRTC 实时流启动速度优化记录
webrtc
SendTomo12 天前
SendTomo 与 send.wang 全景对比评测与实战指南
网络·网络协议·tcp/ip·webrtc·p2p
java_logo12 天前
Docker 部署 SRS:轻松搭建实时音视频流媒体平台
docker·容器·webrtc·实时音视频·rtmp·http-flv·轩辕镜像
wjcroom13 天前
一个可以在线多人玩的五子棋开发与布署方法-WebRTC和WebSocket的测试方法
websocket·网络协议·webrtc
cuijiecheng201816 天前
RK3588 WebRTC 实时流卡顿优化:从视频桥接到 H.264 PTS 回退
音视频·webrtc·h.264
SendTomo18 天前
send.wang:基于浏览器WebRTC实现无客户端文件互传
网络·python·网络协议·webrtc·p2p