CenterOS7.2&Ubuntu14.04配置TURN服务器

来源:互联网 发布:潇湘馆的竹叶 知乎 编辑:程序博客网 时间:2024/06/07 09:56

由于项目需求,要做一个基于WebRTC协议多方视频的一个项目,视频流互传是机遇TCP协议,这里面要用到NAT穿透,把位于各个子网或路由器后面的主机(iPhone)IP地址转换成外网IP地址。介绍一下配置的主要步骤:

  • 下载对应CenterOS的TURN安装包
  • 安装TURN的依赖库
  • 拷贝到服务器解压安装TURN服务
  • 修改TURN配置文件
  • 启动TURN服务测试

1.1下载对应安装包:
目前Ubuntu所能安装的最新版本为v4.4.5.3(Ubuntu安装稍后讲),这里我们选取CenterOS最新版本v4.5.0.6对应CenterOS7.2下载之后是一个后缀为.gz的压缩包。
1.2通过Xshell远程到到我们的服务器,如果没有安装lrzsz工具,在命令行输入yum install -y lrzsz 安装lrzsz工具代替ftp。
1.3通过rz命令把选取安装包,拷贝到CenterOS服务器。
2.1配置依赖库,CenterOS系统中使用命令行工具依次安装以下库:

sudo yum install openssl-develsudo yum install sqlitesudo yum install sqlite-develsudo yum install libeventsudo yum install libevent-develsudo yum install postgresql-develsudo yum install postgresql-serversudo yum install mysql-devel sudo yum install mysql-server 或者是:sudo yum install mysql - serve(中间加空格不同版本安装命令不一样试一下)sudo yum install hiredissudo yum install hiredis-devel

根据命令完成安装。
3.1进入安装包所在目录:
ls 找到对应安装包,例如我的为turnserver-4.5.0.6-CentOS7.2-x86_64.tar.gz
3.2输入解压命令tar xvfz turnserver-4.5.0.6-CentOS7.2-x86_64.tar.gz
3.3完成后进入刚刚解压出来的turnserver的文件夹,如果里面有install.sh文件,直接执行./install.sh或者chmod a+x install 生成install文件 。
3.4总之我们有了可执行文件了,./install 完成安装

4.1修改配置文件,配置文件在/etc/turnserver目录下turnserver.conf,执行:
cd /etc/turnserver/
vi turnserver.conf
在文件末尾加入一下参数:

#监听端口可以不设置会默认的使用3478listening-port=3478#listening-ip,注意必须是你的内网IP地址如:listening-ip=10.10.xx.xx#relay-ip可以不设置,默认会使用你的外网ip地址作为转发包的中继地址,建议不设置,使用默认就可以:relay-ip=10.10.xx.xx#external-ip,注意必须使用你的外网IP地址如:external-ip=133.110.xx.xx#设置用户名及密码,这个是作为TURN服务器使用必须设置的,可以设置多个user=user:password 或者使用ssh也是可以的user=user:passKey#realm,目前没发现有什么用,可设置可不设置:realm=companyName.com.cn#turndb数据库位置,/var/db/turndb以上就是配置的主要内容,更详细的配置可以直接查看turnserver.conf,里面的注释很详细,可以设置tls,mysql,redis,mongodb等等内容这里不做详细解释了。另外:STUN和TURN的区别,turn服务器是一个特殊的stun服务器,turn具备了stun的功能,并且具备stun不具备的中继转发功能,我们按照的服务可以不提供turn功能只作为stun使用,打开turnserver.conf中的stun-only即可。

5.1启动和关系TURN服务:
启动命令:
turnserver -v -r 外网ip -a -o -c /etc/turnserver/turnserver.conf
关闭命令:
执行 cat /var/run/turnserver/turnserver.pid 或者 cat /var/tmp/turnserver.pid
找到进程编号,例如:2059
执行kill 2059 结束进程。

测试地址:
https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
测试样例:
添加服务器
点击gather candidates按钮测试,正确结果如下:
结果样例
如果没有产生3种类型的ip地址则配置失败(该服务可能会用到80端口,在公司机房服务器配置没有成功,最后用阿里云配置成功)。

0 0
原创粉丝点击