美文网首页
华为云CentOS7 部署STUN/TURN服务 Coturn

华为云CentOS7 部署STUN/TURN服务 Coturn

作者: 悠然望剑 | 来源:发表于2021-12-10 16:58 被阅读0次

    记录一下部署coturn服务的过程,以下步骤是作者亲自实践并确认好用的,可放心食用。
    服务器环境: 华为云服务器 CentOS7

    1、安装依赖
    yum install -y make gcc cc gcc-c++ wget openssl-devel libevent libevent-devel
    
    2、下载源码包
    wget https://coturn.net/turnserver/v4.5.0.8/turnserver-4.5.0.8.tar.gz
    

    解压并进入目录

    tar -zxvf turnserver-4.5.0.8.tar.gz
    cd turnserver-4.5.0.8/
    
    3、编译安装
    ./configure --prefix=/usr/turnserver  # 指定安装的目录
    make && make install
    
    4、设置环境变量
    vim ~/.bashrc
    

    插入以下内容

    export turnserver_home=/usr/turnserver
    export PATH=$PATH:$turnserver_home/bin
    

    配置立即生效

    source ~/.bashrc
    
    5、编辑配置文件

    先找到配置文件

    find /usr -name turnserver.conf
    

    例如:返回/usr/turnserver/share/examples/turnserver/etc/turnserver.conf
    编辑配置

    vim /usr/turnserver/share/examples/turnserver/etc/turnserver.conf
    

    配置文件末尾添加以下内容

    realm=stun.xxx.cn  # 域名,这个必须设置
    listening-port=3478  # 服务端口
    listening-ip=0.0.0.0 
    external-ip=x.x.x.x  # 外网ip(本例中就是华为云服务器的公网ip)
    user=admin:123456  # 设置账号密码
    min-port=49152  # 连接端口最小值
    max-port=65535  # 连接端口最大值
    
    6、指定配置文件启动服务
    turnserver -v -r 外网ip -a -o -c /usr/turnserver/share/examples/turnserver/etc/turnserver.conf
    

    由于是在华为云上,需要开放端口的访问,关闭对应端口的防火墙,包括端口3478和端口范围49152-65535,UDP和TCP都需要


    image.png
    7、测试是否成功

    测试地址

    1.png
    2.png
    8、调用(js为例)
    var iceServer = {
      "iceServers": [{
         "urls" : ["stun:外网ip:3478"]
        }, {
         "urls" : ["turn:外网ip:3478"],
         "username" : "admin",
         "credential" : "123456"
      }]
    };
    window.RTCPeerConnection = window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
    var peerConnection = new RTCPeerConnection(iceServer)
    

    补充说明:

    1. coturn服务是集STUN/TURN为一体的,STUN负责打洞穿透,如果端到端无法穿透,则使用TURN进行转发。从上面代码可以看到,使用STUN时不需要携带账号密码,因为STUN服务只负责尝试打洞,如果打洞成功,则建立p2p直连,不会占用coturn服务器带宽和流量;而如果使用TURN转发,则需要携带账号密码,因为一端的音视频流需要经过coturn服务器进行转发,会占用服务器带宽和流量,所以必须经过认证。
    2. TURN地址可以只在一端配置,比如web端与安卓端进行WebRTC连接,可以只在web端或安卓端的iceServers中配置turn地址;两端都必须配置stun地址。

    相关文章

      网友评论

          本文标题:华为云CentOS7 部署STUN/TURN服务 Coturn

          本文链接:https://www.haomeiwen.com/subject/lxgcfrtx.html