Centos7.x 搭建coturn服務(wù)器

為什么我要搭建coturn中繼服務(wù)器?

  • 我的項(xiàng)目里用到了WebRTC技術(shù),沒有配置iceServers參數(shù),在本地測試時(shí)是可以進(jìn)行語音通話和白板協(xié)作,但是部署到服務(wù)器后用2臺(tái)不同主機(jī)進(jìn)行P2P通話或白板協(xié)作,發(fā)現(xiàn)無法建立連接。于是網(wǎng)上一搜,發(fā)現(xiàn)需要一個(gè)公網(wǎng)的中繼服務(wù)器進(jìn)行中轉(zhuǎn),其作用就是通過收集NAT背后的peer端(即:躲在路由器或交換機(jī)后的電腦)對(duì)外暴露出來的IPPORT,找到一條可穿透路由器的鏈路,俗稱打洞。stun/turn服務(wù)器通常要部署在公網(wǎng)上,能被所有peer端訪問到,coturn開源項(xiàng)目同時(shí)實(shí)現(xiàn)了stun和turn服務(wù)的功能,是WebRTC應(yīng)用的必備首選。

Centos7.x 搭建coturn服務(wù)器教程

  • 安裝相關(guān)依賴:
yum install -y make gcc cc gcc-c++ wget openssl-devel libevent libevent-devel openssl 
yum install git
  • 下載編譯安裝coturn開源項(xiàng)目,若克隆項(xiàng)目時(shí)間較長,可單獨(dú)到該主頁中下載壓縮包,然后執(zhí)行命令:①解壓包:unzip coturn-master.zip;②重命名文件夾:mv coturn-master coturn。
git clone https://github.com/coturn/coturn 
cd coturn 
./configure 
make 
make install
  • 查看是否安裝成功:which turnserver
安裝成功
  • /usr/local/etc/目錄下的turnserver.conf.default文件復(fù)制一份,文件名為turnserver.conf
cd /usr/local/etc/
cp turnserver.conf.default turnserver.conf
  • 查看網(wǎng)卡,記錄網(wǎng)卡名稱和內(nèi)網(wǎng)地址:ifconfig
  • certpkey配置的自簽名證書用Openssl命令生成,提示的相關(guān)信息隨便填寫即可。
openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes 
生成的兩個(gè)文件在/etc/目錄下
  • 修改配置文件信息:vim /usr/local/etc/turnserver.conf
# 網(wǎng)卡名
relay-device=eth0
#內(nèi)網(wǎng)IP
listening-ip=172.16.0.5 
listening-port=3478
#內(nèi)網(wǎng)IP
relay-ip=172.16.0.5
tls-listening-port=5349
# 外網(wǎng)IP
external-ip=134.xxx.xxx.xxx
relay-threads=500
#打開密碼驗(yàn)證
lt-cred-mech
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
min-port=40000
max-port=65535
#設(shè)置用戶名和密碼,創(chuàng)建IceServer時(shí)使用
user=admin:123456
# 外網(wǎng)IP綁定的域名
realm=xxxx.cn
# 服務(wù)器名稱,用于OAuth認(rèn)證,默認(rèn)和realm相同,部分瀏覽器本段不設(shè)可能會(huì)引發(fā)cors錯(cuò)誤。
server-name=xxxx.cn
# 認(rèn)證密碼,和前面設(shè)置的密碼保持一致
cli-password=123456
  • 在騰訊云后臺(tái)的安全組規(guī)則添加3478端口的tcp/udp規(guī)則,udp一定要配置!
  • 服務(wù)器開放端口:3478/udp3478/tcp
#開放端口
firewall-cmd --zone=public --add-port=3478/udp --permanent
firewall-cmd --zone=public --add-port=3478/tcp --permanent
#刷新防火墻
firewall-cmd --reload
#查看當(dāng)前開放的端口
firewall-cmd --list-port
  • 啟動(dòng)服務(wù):turnserver -o -a -f。備注:turnserver命令會(huì)自動(dòng)尋找到turnserver.conf文件的位置。
  • 終止服務(wù):
ps -ef | grep turnserver
kill -9 pid
中繼成功
  • 在創(chuàng)建peerConnection對(duì)象時(shí)傳入設(shè)定的iceServers參數(shù)值即可,若初始化參數(shù)中 iceServers 為null時(shí)只能創(chuàng)建本地連接。
部署效果圖,1v1視頻成功
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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