1. 写在前面

  1. coturn服务器的搭建文章已经非常多,但是对于对linux不熟悉的人来说排查错误的文章不多,此篇文章把我这次搭建过程以及如何排查问题做一个梳理
  2. 我这里是在oracle vm虚拟机中搭建安装的ubuntu,通过H3C路由器映射到外网
  3. 以下介绍我只做了ubuntu版本的安装,其他安装方法未做验证

2. 前期准备

2.1. 安装oracle vm虚拟机(略)

2.2. 在oracle vm虚拟机中安装ubuntu并设置网络为桥接

有空再写

2.3. 配置外网映射

  1. 由于公司是用的H3C防火墙,以下介绍H3C防火墙配置
    • 在NAT配置TCP+UDP 3478-3479端口映射到内网虚拟机中ubuntu电脑的ip地址
    • 在NAT配置TCP+UDP 49152-65535端口映射到内网虚拟机中ubuntu电脑的ip地址
      在这里插入图片描述

3. 安装coturn

3.1. 安装依赖

  1. ubuntu系统
sudo apt‐get install libssl‐dev
sudo apt‐get install libevent‐dev
  1. centos系统
sudo yum install openssl‐devel
sudo yum install libevent‐devel

3.2. 编译安装coturn

git clone https://github.com/coturn/coturn
cd coturn
./configure
make
sudo 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服务(服务方式)

以服务形式启动(具体如何形成的服务,不清楚、不知道,同事之前搞的)

  1. 修改turnserver.conf文件
    我的该文件在目录/etc/turnserver.conf下
  2. 如何设置ssl中的key
    请点击:Nginx/Tomcat/SpringBoot配置自生成SSL证书查询,此处不再介绍
listening-post=3478
tls-listening-port=5349

min-port=49152
max-port=65535

fingerprint
lt-cred-mech
user=lqf:123456
realm=shandong
cli-password=123456
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
  1. 启动服务
# 启动服务
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

  1. 在Strun or turn uri中输入“turn:公网ip:端口”或“stun:公网ip:端口”。
    测试stun时不需要设置用户名密码,且iceTransports value设置为all
    测试turn时需要输入用户名密码, 且iceTransports value设置为relay
  2. 什么算通过呢
    • 测试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

4. 先简单记录一下,后面再更新

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐