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端口沒開!!!

總結

  搞了好幾個小時才把這個部署完,其中大坑小坑一堆,最大的坑仍是這個端口沒開,這篇文章也算記錄下吧。

相關文章
相關標籤/搜索