WERTC-在Ubuntu中搭建ICE服務(wù)器

1.ICE服務(wù)器介紹

    最近一段時間在做關(guān)于webrtc語音視頻通話,網(wǎng)上免費的公開的STUN服務(wù)器可以用于測試,使用起來響應(yīng)時間非常的慢,用起來不爽。作為一個有情懷的技術(shù)人員的我,就需要自己搭建了coturn服務(wù)器,現(xiàn)在分享給大家。
     前提先介紹一下ICE服務(wù)器,ICE服務(wù)器包含了STUN和TURN兩部分,實際上我們就需要TURN服務(wù)器就可以進(jìn)行P2P穿墻。coturn服務(wù)器是在turnserver上增加了部分高級特性(感謝項目作者,為我們提供了很好的環(huán)境)。coturn支持cp, udp, tls, dtls 連接。coturn支持linux bsd solaris Mac os 系統(tǒng),暫不支持windows系統(tǒng)。
     我是在公網(wǎng)部署搭建coturn服務(wù)器,來進(jìn)行STUN服務(wù)器進(jìn)行穿透和TURN服務(wù)器中轉(zhuǎn)。具體思想和步驟是這樣的。先會嘗試直連,直連失敗后通過STUN服務(wù)器進(jìn)行穿透,若穿墻失敗則通過TURN服務(wù)器中轉(zhuǎn)。
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.拷貝默認(rèn)配置

coturn 源碼的 example/etc 目錄中,有提供 coturn 的默認(rèn)配置文件,以供我們使用,我們需要分別拷貝 turnserver 所需要的三個配置文件>

首先在 /etc 目錄下創(chuàng)建 turnserver 配置的存放目錄

sudo mkdir /etc/turnserver/

拷貝 conf 配置腳本
進(jìn)入 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 域名

執(zhí)行成功后,可通過 turnadmin -l 既可查看:

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

當(dāng)然我們也可以到了啟動 turnserver 的時候設(shè)置用戶名和密碼。

5.配置turnserver.conf

編輯之前的拷貝出來的turnserver.conf

我們先看看本地網(wǎng)卡名字和地址,記下來,下面我們會用到

ifconfig
ifconfig

現(xiàn)在我們就修改turnserver.conf配置,找到下面的參數(shù)進(jìn)行修改。

relay-device=eth0   #與ifconfig查到的網(wǎng)卡名稱一致
listening-ip=172.17.0.6    #內(nèi)網(wǎng)IP
listening-port=3478
tls-listening-port=5349
relay-ip=172.17.0.6
external-ip=49.234.237.xxx    #公網(wǎng)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    #用戶名密碼,創(chuàng)建IceServer時用
cli-password=qwerty    #這個是新增的一定要加上

上面配信息修改完就到這里就算完成了,接下來我們來把turnserver啟動。


20160623101937291.JPEG

6.啟動turnserver

turnserver -o -a -f -user=abcabc:abcabc
啟動結(jié)果

如果用到云服務(wù)器,需要到云服務(wù)器開通3478端口。
如果不是云服務(wù)器打開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.心得

我使用騰訊云服務(wù)器,1核2內(nèi)存1M配置,用起來比公共ICE服務(wù)器的響應(yīng)速度快多了,ICE服務(wù)器不需要很高的配置就可以達(dá)到想要的結(jié)果。 第一次寫東西,描述比較少,干貨多吧,需要下點功夫理解,反正我是部署上。


IMG_2963.JPG

9.附加

關(guān)于webrtc語音視頻通話程序設(shè)計

QQ:328555416

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容