1. 写在前面
- coturn服务器的搭建文章已经非常多,但是对于对linux不熟悉的人来说排查错误的文章不多,此篇文章把我这次搭建过程以及如何排查问题做一个梳理
- 我这里是在oracle vm虚拟机中搭建安装的ubuntu,通过H3C路由器映射到外网
- 以下介绍我只做了ubuntu版本的安装,其他安装方法未做验证
2. 前期准备
2.1. 安装oracle vm虚拟机(略)
2.2. 在oracle vm虚拟机中安装ubuntu并设置网络为桥接
有空再写
2.3. 配置外网映射
- 由于公司是用的H3C防火墙,以下介绍H3C防火墙配置
- 在NAT配置TCP+UDP 3478-3479端口映射到内网虚拟机中ubuntu电脑的ip地址
- 在NAT配置TCP+UDP 49152-65535端口映射到内网虚拟机中ubuntu电脑的ip地址
3. 安装coturn
3.1. 安装依赖
- ubuntu系统
sudo apt‐get install libssl‐devsudo apt‐get install libevent‐dev
- centos系统
sudo yum install openssl‐develsudo yum install libevent‐devel
3.2. 编译安装coturn
git clone https://github.com/coturn/coturncd coturn./configuremakesudo make install
3.3. 启动coturn服务(命令行方式)
# nohup是重定向命令,输出都将附加到当前目录的 nohup.out 文件中; 命令后加 & ,后台执行起来后按 ctr+c,不会停止sudo nohup turnserver ‐L 0.0.0.0 ‐a ‐u lqf:123456 ‐v ‐f ‐r nort.gov &
3.4 启动coturn服务(服务方式)
以服务形式启动(具体如何形成的服务,不清楚、不知道,同事之前搞的)
- 修改turnserver.conf文件
我的该文件在目录/etc/turnserver.conf下 - 如何设置ssl中的key
请点击:Nginx/Tomcat/SpringBoot配置自生成SSL证书查询,此处不再介绍
listening-post=3478tls-listening-port=5349min-port=49152max-port=65535fingerprintlt-cred-mechuser=lqf:123456realm=shandongcli-password=123456cert=/etc/turn_server_cert.pempkey=/etc/turn_server_pkey.pem
- 启动服务
# 启动服务sudo systemctl start coturn.service# 查看启动是否成功,状态为Active: active (running)代表已启动sudo systemctl status coturn.service
3.4. 查看是否安装成功
#然后查看相应的端口号3478是否存在进程sudo lsof ‐i:3478
以下进程为服务方式启动,这种进程数有点多,以命令行启动只有4条,这不重要
3.5. 测试地址,请分别测试stun和turn
Coturn集成了stun+turn协议。
测试网址:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice
- 在Strun or turn uri中输入“turn:公网ip:端口”或“stun:公网ip:端口”。
测试stun时不需要设置用户名密码,且iceTransports value设置为all
测试turn时需要输入用户名密码, 且iceTransports value设置为relay - 什么算通过呢
- 测试stun模式:出现srflx、并且最后以Done结尾代表成功
- 测试turn模式:出现relay、并且最后以Done结尾代表成功
3.6 使用relay模式通话时(不是用上面网址测试),会看到网络带宽增加
# 用下面命令检测sudo sar -n DEV 1
3.7 查看coturn日志
其实就是查看linux中服务的日志,coturn访问时报错要用到
sudo journalctl -f -u coturn.service