云服務(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