云服務器搭建coturn之所以測試不通過绢彤,大部分的原因都是因為云服務器沒有開放相應的端口并扇。
這里我們以《Linux后臺服務器開發(fā)》系列課程中的音視頻技術為例号俐,講解應該怎么在公網(wǎng)搭建coturn屯阀。
1. 我們要開放的端口
我們先列舉下我們要用到的端口
3478:是打洞必備的端口降狠,我們將其開放為udp、tcp
40000-60000:我們在P2P不成功時需要走turn模式铣猩,涉及到udp端口開放的問題揖铜,所以這里可以指定一段UDP端口范圍,在后續(xù)我們啟動coturn的時候达皿,我們可以通過min-port和max-port參數(shù)設置udp端口范圍天吓。
這里再引申講解贿肩,我們在搭建AppRTC時還涉及到443/8090/8088/8089,所以這部分端口也需要開放龄寞。
2. 云服務器端口開放規(guī)則
往下看之前先確定一個知識點汰规,云服務器的防火墻分兩層:
云服務器接入層:即是云服務商的安全組,需要通過網(wǎng)頁登錄云服務商設置安全組物邑;
系統(tǒng)主機(ubuntu或centos):即我們可以自己在系統(tǒng)操作的防火墻溜哮,這里為了更為快速把系統(tǒng)搭建起來,建議是先把系統(tǒng)的防火墻先關閉色解。
3. 騰訊云服務器開放WebRTC開放所需要的端口
接下來以騰訊云為例去搭建coturn服務器(手上沒有阿里云的服務器)
對于新手來講茂嗓,建議先把主機系統(tǒng)的防火墻關掉,當然了如果你對防火墻配置非常熟悉那你可以在系統(tǒng)防火墻開發(fā)相應的端口科阎。
centos(可參考):
查看防火墻狀態(tài)
? ? systemctl status firewalld.service
? ?打印
關閉防火墻(這個命令只是暫時關閉述吸,重啟后防火墻又生效)
? ? ?systemctl stop firewalld.service
禁止防火墻(重啟后也是關閉狀態(tài))
? ? ?systemctl disable firewalld.service
ubuntu(可參考):
查看防火墻狀態(tài)(顯示Status: inactive則說明已經(jīng)關閉服務器)
sudo ufw status
禁止防火墻
? ? ??sudo ufw disable
第一步,先使用nc命令檢測要使用的端口是否已經(jīng)開放锣笨,比如檢測3478端口
nc使用參考:https://www.cnblogs.com/zhaijiahui/p/9028402.html
以服務器IP:129.204.197.213 為例
簡單的檢測原理:服務器使用nc -l 3478監(jiān)聽3478端口蝌矛,然后找一臺linux機器使用nc 命令去連接,具體操作
比如:測試3478的TCP是否開放
服務器:
sudo nc -l3478
客戶端:
nc -v129.204.197.2133478
連接成功時提示
Connection to129.204.197.2133478port [tcp/*] succeeded!
如果沒有開放那就要去設置云服務器的安全組了错英。
第二步設置云服務器的安全組
以騰訊云為例:https://console.cloud.tencent.com/cvm/securitygroup
這里還有個UDP的端口范圍(coturn做relay時使用)
要確定修改的規(guī)則是已經(jīng)關聯(lián)到自己主機的入撒。
參考規(guī)則:https://cloud.tencent.com/document/product/213/34601
將我們需要的端口都開放
3478:udp/tcp
443:tcp
8088:tcp
8089:tcp
8090:tcp
40000-60000:udp
第三步 啟動coturn的時候帶上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 &
或者我們可以在前臺啟動coturn進行測試先
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的時候不需要輸入賬號密碼茅逮,只需要輸入stun:
加入后選擇all,可以F12開右邊瀏覽器終端輸出簿煌,然后點擊Gather candidates氮唯,進行測試,出現(xiàn)done說明stun是起作用了姨伟。
測試turn惩琉,需要輸入turn地址,以turn:開頭夺荒,以及賬號密碼瞒渠,單純測試turn則選擇relay
即是
加入后,選擇relay技扼,可以F12開右邊瀏覽器終端輸出伍玖,然后點擊Gather candidates,進行測試剿吻,出現(xiàn)done說明turn是起作用了窍箍。
4 附錄
4.1 停止coturn服務
如果是ubuntu 請執(zhí)行命令之前加sudo