云服務(wù)器搭建coturn不能正常使用的問題

云服務(wù)器搭建coturn之所以測試不通過,大部分的原因都是因?yàn)樵品?wù)器沒有開放相應(yīng)的端口。

這里我們以《Linux后臺(tái)服務(wù)器開發(fā)》系列課程中的音視頻技術(shù)為例,講解應(yīng)該怎么在公網(wǎng)搭建coturn。

1. 我們要開放的端口

我們先列舉下我們要用到的端口

3478:是打洞必備的端口,我們將其開放為udp、tcp

40000-60000:我們在P2P不成功時(shí)需要走turn模式,涉及到udp端口開放的問題,所以這里可以指定一段UDP端口范圍,在后續(xù)我們啟動(dòng)coturn的時(shí)候,我們可以通過min-port和max-port參數(shù)設(shè)置udp端口范圍。

這里再引申講解,我們在搭建AppRTC時(shí)還涉及到443/8090/8088/8089,所以這部分端口也需要開放。

2. 云服務(wù)器端口開放規(guī)則

往下看之前先確定一個(gè)知識(shí)點(diǎn),云服務(wù)器的防火墻分兩層:

云服務(wù)器接入層:即是云服務(wù)商的安全組,需要通過網(wǎng)頁登錄云服務(wù)商設(shè)置安全組;

系統(tǒng)主機(jī)(ubuntu或centos):即我們可以自己在系統(tǒng)操作的防火墻,這里為了更為快速把系統(tǒng)搭建起來,建議是先把系統(tǒng)的防火墻先關(guān)閉。

3. 騰訊云服務(wù)器開放WebRTC開放所需要的端口

接下來以騰訊云為例去搭建coturn服務(wù)器(手上沒有阿里云的服務(wù)器)

對于新手來講,建議先把主機(jī)系統(tǒng)的防火墻關(guān)掉,當(dāng)然了如果你對防火墻配置非常熟悉那你可以在系統(tǒng)防火墻開發(fā)相應(yīng)的端口。

centos(可參考):

查看防火墻狀態(tài)

? ? systemctl status firewalld.service

? ?打印

關(guān)閉防火墻(這個(gè)命令只是暫時(shí)關(guān)閉,重啟后防火墻又生效)

? ? ?systemctl stop firewalld.service

禁止防火墻(重啟后也是關(guān)閉狀態(tài))

? ? ?systemctl disable firewalld.service

ubuntu(可參考):

查看防火墻狀態(tài)(顯示Status: inactive則說明已經(jīng)關(guān)閉服務(wù)器)

sudo ufw status

禁止防火墻

? ? ??sudo ufw disable

第一步,先使用nc命令檢測要使用的端口是否已經(jīng)開放,比如檢測3478端口

nc使用參考:https://www.cnblogs.com/zhaijiahui/p/9028402.html

以服務(wù)器IP:129.204.197.213 為例

簡單的檢測原理:服務(wù)器使用nc -l 3478監(jiān)聽3478端口,然后找一臺(tái)linux機(jī)器使用nc 命令去連接,具體操作

比如:測試3478的TCP是否開放

服務(wù)器:

sudo nc -l3478

客戶端:

nc -v129.204.197.2133478

連接成功時(shí)提示

Connection to129.204.197.2133478port [tcp/*] succeeded!

如果沒有開放那就要去設(shè)置云服務(wù)器的安全組了。

第二步設(shè)置云服務(wù)器的安全組

以騰訊云為例:https://console.cloud.tencent.com/cvm/securitygroup

這里還有個(gè)UDP的端口范圍(coturn做relay時(shí)使用)

要確定修改的規(guī)則是已經(jīng)關(guān)聯(lián)到自己主機(jī)的。

參考規(guī)則:https://cloud.tencent.com/document/product/213/34601

將我們需要的端口都開放

3478:udp/tcp

443:tcp

8088:tcp

8089:tcp

8090:tcp

40000-60000:udp

第三步 啟動(dòng)coturn的時(shí)候帶上min-port和max-port參數(shù),即是

sudo nohup turnserver?--min-port 40000 --max-port 60000 -L 0.0.0.0 -a -u lqf:123456 -v -f -r nort.gov &

或者我們可以在前臺(tái)啟動(dòng)coturn進(jìn)行測試先

sudo turnserver?--min-port 40000 --max-port 60000 -L 0.0.0.0 -a -u lqf:123456 -v -f -r nort.gov

第四步 測試coturn是否正常

測試網(wǎng)址:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice

具體參考上課的文檔

測試stun,測試stun的時(shí)候不需要輸入賬號密碼,只需要輸入stun:

加入后選擇all,可以F12開右邊瀏覽器終端輸出,然后點(diǎn)擊Gather candidates,進(jìn)行測試,出現(xiàn)done說明stun是起作用了。

測試turn,需要輸入turn地址,以turn:開頭,以及賬號密碼,單純測試turn則選擇relay

即是

加入后,選擇relay,可以F12開右邊瀏覽器終端輸出,然后點(diǎn)擊Gather candidates,進(jìn)行測試,出現(xiàn)done說明turn是起作用了。

4 附錄

4.1 停止coturn服務(wù)

如果是ubuntu 請執(zhí)行命令之前加sudo

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

相關(guān)閱讀更多精彩內(nèi)容

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