centos安装turnserver

日期:2016-4-15 13:51 | 标签: linux | 阅读:1415

turn是网络协议,全称是Traversal Using Relay NAT,即通过Relay方式穿越NAT,turnserver其实就是一种中继器,由于国内通讯都被监控,所以WebRTC是不能直接P2P的,都需要中继服务作为转发的,TURN的局限性在于所有报文都必须经过TURNServer转发,增大了包的延迟和丢包的可能性。

安装目的

本人想着基于cordova做一个实时媒体聊天应用,找到一个叫做phonertc的插件,插件基于WebRTC。他需要

信令服务(stun): 使客户端之间交换数据用来协调建立通话
NAT穿透服务(turn):应付NAT和防火墙

安装步骤

安装turnserver与依赖,我安装的目录是/usr/local/src

wget http://ncu.dl.sourceforge.net/project/turnserver/turnserver-0.7.3.tar.bz2
tar -xvf turnserver-0.7.3.tar.bz2
# 下载并安装libconfuse依赖:
wget  http://nongnu.askapache.com//confuse/confuse-2.7.tar.gz
tar -zxvf confuse-2.7.tar.gz 
cd confuse-2.7
./configure --prefix=/usr
make && make install
# 安装flex依赖
yum install flex  
cd ../turnserver-0.7.3
./configure --enable-debug-build
make && make install

配置(接上)

配置文件移至etc目录

cd extra/
cp turnserver.conf.template /usr/local/etc/turnserver.conf
cp turnusers.txt.template /usr/local/etc/turnusers.txt

vim turnserver.conf,我修改了

# 监听ip
listen_address = {"xxx.xxx.xxx.xxx" }     
# Daemon mode修改为后台服务方式.
daemon = true
# 带宽限制改为1024KB,原先为150
bandwidth_per_allocation = 1024
#  限制带宽从10改为0,原来为10
restricted_bandwidth = 0

vim turnusers.txt,我只修改了

# 对应关系为(用户名:密码:领域:需要验证)
test:test:domain.org:authorized

启动(接上)

cd ../sbin
./turnserver -c /usr/local/etc/turnserver.conf

客户端配置

直接按照下述方式配置即可(基于phoneRtc)

var config = {
        isInitiator: isInitiator,
        stun: {
            host: 'stun:115.29.51.196'
        },
        turn: {
            host: 'turn:115.29.51.196',
            username: 'test',
            password: 'test'
        },
        streams: {
            audio: true, // 支持音频
            video: true, // 支持视频
        }
};

附上国外免费的turnserver,网速略慢

var config = {
             isInitiator: isInitiator,
             stun: {host: 'stun:stun.iptel.org'},
             turn: {
                 host: 'turn:numb.viagenie.ca',
                username: 'webrtc@live.com',
                password: 'muazkh'},
                streams: {audio: true, video: true}};

当然你不一定需要自个儿安装,网络上有很多的免费服务。比如可以参考这个:
https://gist.github.com/zziuni/3741933
不过还得提醒一句,由于网络延迟,有时无法成功建立连接。

版权声明: 署名-非商业性使用-禁止演绎 4.0 国际(CC BY-NC-ND 4.0
Copyright ©2013-2017 | 粤ICP备14081691号 | yipeng手工打造 | 联系方式