日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

webrtc笔记(1): 基于coturn项目的stun/turn服务器搭建

發(fā)布時間:2023/12/20 编程问答 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 webrtc笔记(1): 基于coturn项目的stun/turn服务器搭建 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

webrtc是google推出的基于瀏覽器的實時語音-視頻通訊架構(gòu)。其典型的應(yīng)用場景為:瀏覽器之間端到端(p2p)實時視頻對話,但由于網(wǎng)絡(luò)環(huán)境的復(fù)雜性(比如:路由器/交換機(jī)/防火墻等),瀏覽器與瀏覽器很多時候無法建立p2p連接,只能通過公網(wǎng)上的中繼服務(wù)器(也就是所謂的turn服務(wù)器)中轉(zhuǎn)。示例圖如下:

上圖中的Relay server即為turn中繼服務(wù)器,而STUN server的作用是通過收集NAT背后peer端(即:躲在路由器或交換機(jī)后的電腦)對外暴露出來的ip和端口,找到一條可穿透路由器的鏈路,俗稱“打洞”。stun/turn服務(wù)器通常要部署在公網(wǎng)上,能被所有peer端訪問到,coturn開源項目同時實現(xiàn)了stun和turn服務(wù)的功能,是webrtc應(yīng)用的必備首選。

下面介紹coturn的搭建過程:

一、弄一臺有公網(wǎng)ip的云主機(jī)

對于新手,推薦使用國內(nèi)DaoCloud的"免費(fèi)膠囊主機(jī)",可免費(fèi)耍2小時,即不花錢,又搞了運(yùn)行環(huán)境(就是干活時,手腳要麻利點(diǎn)),等基本概念熟悉了,再到阿里云或騰迅云上買一臺可長期使用的主云機(jī)。

創(chuàng)建成功后,在主機(jī)詳情里,可以看到公網(wǎng)及內(nèi)網(wǎng)ip,包括ssh登錄方法

?

二、安裝coturn的依賴組件

daocloud提供的免費(fèi)膠囊主機(jī)是ubuntu環(huán)境,上面啥都沒有,必須先安裝以下組件:

sudo su root #先切換到root apt-get install build-essential #(可選),如果后面的./configure失敗時,可先安裝gcc apt-get install openssl libssl-dev makewget https://github.com/libevent/libevent/releases/download/release-2.1.10-stable/libevent-2.1.10-stable.tar.gz tar -zxvf libevent-2.1.10-stable.tar.gz cd libevent-2.1.10-stable ./configure make & make install apt-get install sqlite libsqlite3-dev cd ~/

注:coturn的用戶信息等,默認(rèn)是持久化保存在sqlite中,如果想保存到mysql中,上面的sqlite安裝選項,需要改成mysql相關(guān)的依賴項。

1 apt-get install mysql-server -y #可選(安裝mysql) 2 apt-get install mysql-client -y 3 apt-get -y install libmysqlcppconn-dev libmysqlclient-dev libmysql++-dev

?

三、下載coturn源碼并編譯

wget https://github.com/coturn/coturn/archive/4.5.1.1.tar.gz tar -zxvf 4.5.1.1.tar.gz cd coturn-4.5.1.1 ./configure make & make install

tips: daoclound的免費(fèi)主機(jī)下載github源碼的速度并不快,如果本機(jī)網(wǎng)速夠快,可以事先在本機(jī)下載好,然后用類似

scp ~/Downloads/4.5.1.1.tar.gz ubuntu@52.81.17.142:/home/ubuntu

直接上傳,速度要快很多。

注意:一定要在./configure前,把sqlite或mysq依賴項安裝好,否則./configure時無法識別出sqlite或mysql,最后make成功的版本,會顯示xxx is not supported。sqlite\mysql正常的版本,啟用時會有類似下面的顯示:?

如果對sqlite里的表結(jié)構(gòu)感興趣,可以把turndb down到本機(jī),用工具打開:

?

四、創(chuàng)建用戶并配置coturn

turnadmin -a -u yjmyzz -p yjmyzz.cnblogs.com -r cnblogs

上面的命令,將創(chuàng)建用戶yjmyzz,密碼為yjmyzz.cnblogs.com,同時指定realm為cnblogs,大家根據(jù)實際情況修改 

cp /usr/local/etc/turnserver.conf.default /usr/local/etc/turnserver.conf

上面的命令,將配置模式文件復(fù)制一份到/usr/local/etc/下

vim /usr/local/etc/turnserver.conf

修改下面幾個關(guān)鍵項:

listening-port=3478 #監(jiān)聽端口 listening-device=eth0 #監(jiān)聽的網(wǎng)卡 external-ip=52.81.17.142 #公網(wǎng)ip user=yjmyzz:yjmyzz.cnblogs.com #用戶名:密碼 realm=cnblogs #一般與turnadmin創(chuàng)建用戶時指定的realm一致

注:如果機(jī)器上有多塊網(wǎng)卡,注意listening-ip與listening-device要匹配,參考下圖:

?

五、啟用coturn并驗證

turnserver -o -a -f -v -r cnblogs

最后的-r cnblogs意為指定realm,要與創(chuàng)建用戶時指定的realm一致??捎胠sof -i:3478校驗下是否啟動成功,如果看到類似下面的輸出,說明3478監(jiān)聽正常。

webrtc-samples官網(wǎng)還提供了一個檢測ice穿透的在線工具:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

參考下圖,把stun和turn地址設(shè)置好,然后點(diǎn)擊最下面的“Gather candidates”(收集候選鏈路)

如果看到最后的reply那一行,address里的ip與turn服務(wù)器的公網(wǎng)ip相同,說明中繼成功。

?

參考文章:

https://www.kancloud.cn/vim26/v1/578933

?

轉(zhuǎn)載于:https://www.cnblogs.com/yjmyzz/p/how-to-install-coturn-on-ubuntu.html

總結(jié)

以上是生活随笔為你收集整理的webrtc笔记(1): 基于coturn项目的stun/turn服务器搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。