美文网首页
WERTC-在Ubuntu中搭建ICE服务器

WERTC-在Ubuntu中搭建ICE服务器

作者: 赵小阳_style | 来源:发表于2021-03-23 12:19 被阅读0次

    1.ICE服务器介绍

        最近一段时间在做关于webrtc语音视频通话,网上免费的公开的STUN服务器可以用于测试,使用起来响应时间非常的慢,用起来不爽。作为一个有情怀的技术人员的我,就需要自己搭建了coturn服务器,现在分享给大家。
         前提先介绍一下ICE服务器,ICE服务器包含了STUN和TURN两部分,实际上我们就需要TURN服务器就可以进行P2P穿墙。coturn服务器是在turnserver上增加了部分高级特性(感谢项目作者,为我们提供了很好的环境)。coturn支持cp, udp, tls, dtls 连接。coturn支持linux bsd solaris Mac os 系统,暂不支持windows系统。
         我是在公网部署搭建coturn服务器,来进行STUN服务器进行穿透和TURN服务器中转。具体思想和步骤是这样的。先会尝试直连,直连失败后通过STUN服务器进行穿透,若穿墙失败则通过TURN服务器中转。
    
    20160623102626402.JPEG

    2.安装coturn

    2.1安装依赖组件

    安装coturn前需要安装所需要的组件

    sudo apt-get install libssl-dev
    
    sudo apt-get install libevent-dev
    
    sudo apt-get install libpq-dev
    
    sudo apt-get install mysql-client
    
    sudo apt-get install libmysqlclient-dev
    
    sudo apt-get install libhiredis-dev
    
    sudo apt-get install git
    

    2.2 下载编译安装coturn

    命令如下

    git clone https://github.com/coturn/coturn
    
    cd coturn
    
    ./configure
    
    make
    
    sudo make install
    

    3.配置coturn

    3.1.拷贝默认配置

    coturn 源码的 example/etc 目录中,有提供 coturn 的默认配置文件,以供我们使用,我们需要分别拷贝 turnserver 所需要的三个配置文件>

    首先在 /etc 目录下创建 turnserver 配置的存放目录

    sudo mkdir /etc/turnserver/
    

    拷贝 conf 配置脚本
    进入 coturn 目录

    cd coturn
    sudo cp ./examples/etc/turnserver.conf /etc/turnserver/
    

    拷贝 pem 秘钥文件
    将 *.pem 秘钥文件也拷贝到 /etc/turnserver/ 目录下

    sudo cp ./examples/etc/turn_server_*.pem  /etc/turnserver/
    

    4.生成 coturn 用户

    为了安全起见,需要配置用户和密码,也就是链接的用户和密码,这里还有域名。
    域名可以不用放上

    sudo turnadmin -a -u 用户名 -p 密码 -r 域名
    

    执行成功后,可通过 turnadmin -l 既可查看:

    sudo turnadmin -a -u abcabc -p abcabc -r beijing.com
    turnadmin -l
    

    当然我们也可以到了启动 turnserver 的时候设置用户名和密码。

    5.配置turnserver.conf

    编辑之前的拷贝出来的turnserver.conf

    我们先看看本地网卡名字和地址,记下来,下面我们会用到

    ifconfig
    
    ifconfig

    现在我们就修改turnserver.conf配置,找到下面的参数进行修改。

    relay-device=eth0   #与ifconfig查到的网卡名称一致
    listening-ip=172.17.0.6    #内网IP
    listening-port=3478
    tls-listening-port=5349
    relay-ip=172.17.0.6
    external-ip=49.234.237.xxx    #公网IP
    relay-threads=50
    lt-cred-mech
    cert=/etc/turnserver/turn_server_cert.pem
    pkey=/etc/turnserver/turn_server_pkey.pem
    pidfile=”/var/run/turnserver.pid”
    min-port=49152
    max-port=65535
    user=abcabc:abcabc    #用户名密码,创建IceServer时用
    cli-password=qwerty    #这个是新增的一定要加上
    

    上面配信息修改完就到这里就算完成了,接下来我们来把turnserver启动。


    20160623101937291.JPEG

    6.启动turnserver

    turnserver -o -a -f -user=abcabc:abcabc
    
    启动结果

    如果用到云服务器,需要到云服务器开通3478端口。
    如果不是云服务器打开3478端口,然后重启防火墙即可

    添加
    firewall-cmd --zone=public --add-port=3478/udp --permanent
    firewall-cmd --zone=public --add-port=3478/tcp --permanent
    重新载入
    firewall-cmd --reload
    重启防火墙
    systemctl restart firewalld
    

    7.ICE测试

    turnserver测试Trickle ICE
    https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

    8.心得

    我使用腾讯云服务器,1核2内存1M配置,用起来比公共ICE服务器的响应速度快多了,ICE服务器不需要很高的配置就可以达到想要的结果。 第一次写东西,描述比较少,干货多吧,需要下点功夫理解,反正我是部署上。


    IMG_2963.JPG

    9.附加

    关于webrtc语音视频通话程序设计

    QQ:328555416

    相关文章

      网友评论

          本文标题:WERTC-在Ubuntu中搭建ICE服务器

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