Android Webrtc配置外网stun与turn服务器(踩坑之旅)

前言

  这段时间在研究webrtc,看了不少文章也算是能在局域网视频,也加了些额外的基本功能,例如:静音,扬声器,切换摄像头等等,可是在总感受在局域网内不(bu)太(neng)方(zhuang)便(bi),因此找朋友借了个阿里云小水管,开始准备部署在云服务器上。node

先放上局域网版1v1视频:webrtcAndroidDemogit

简述

  谷歌有现成的免费的stun和turn服务器,可是本身要部署一套外网的比较麻烦,因此用的开源的coturn直接上手部署。   github

一、环境

  • 阿里云服务器:CentOS Linux release 7.3.1611
  • coturn:4.5.1.1

二、编译

  1. 下载源码web

    git clone https://github.com/coturn/coturn.git
    复制代码
  2. 须要安装openssl、event安全

    yum install openssl openssl-devel libevent libevent-devel
    复制代码
  3. 安装coturn服务器

    cd coturn
     ./config
     make
     make install
    复制代码

    使用which turnserver 有路径则成功tcp

  4. 配置coturn文件测试

    4.1 复制turnserver.confgoogle

    cd /usr/local/etc
    复制代码

     只有一个turnserver.conf.default一个文件,把这个咱们须要本身负责一份更名为turnserver.conf (注意:必定要在这里面加配置才有效!!!) 使用命令:cp turnserver.conf.default turnserver.conf阿里云

   4.2 添加用户

   使用命令:turnadmin -a –u 用户名 -r shenzhen -p 密码

   4.3 生成openssl证书

openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 –nodes
复制代码

   生成ssl cert和pkey记住这两个生成的位置在/etc/下。

   4.4 在turnserver.conf添加配置

listening-ip=#云主机内网IP
    listening-port=3478#默认3478
    tls-listening-port=5349#默认5349
    relay-ip=#云主机内网ip
    external-ip=#公网IP
    lt-cred-mech
    cert=/etc/turn_server_cert.pem #openssl证书路径
    pkey=/etc/turn_server_pkey.pem #openssl公钥路径
    pidfile=”/var/run/turnserver.pid”
    min-port=49152
    max-port=65535
    user=zjy:zjy123123 #帐号和密码,也能够是md5
复制代码

  4.5 最终一步(最坑一步)

    若是是阿里云的话须要去添加安全组,把3478端口的udp和tcp都要打开,不然无效!!!

三、运行并测试

  上面所有配置完了,那么恭喜你,能够愉快的测试了,直接执行命令:turnserver -o -a -f 好了完事了,跑起来了。至于测试,打开google提供的trickle-ice,在里面添加你的stun和turn地址,其实就是你公网ip+3478和5349两个:

最后点击最下面那个gather candidates ,当看到relay是你公网ip时说明就成功了。
candidates
若是没有成功必定必定要检查下是否是3478 udp端口没开!!!

总结

  搞了好几个小时才把这个部署完,其中大坑小坑一堆,最大的坑仍是这个端口没开,这篇文章也算记录下吧。

相关文章
相关标签/搜索