centos7 搭建turn stun 服务器(阿里云服务器)
1、安装依赖库
yum install -y make gcc cc gcc-c++ wget
yum install -y openssl-devel libevent libevent-devel mysql-devel mysql-server
2、找到合适的 turn stun 版本并安装
可以在http://turnserver.open-sys.org/downloads/找到适合的版本,我使用的是最新的turnserver-4.5.0.6-CentOS7.2-x86_64.tar.gz
#下载
wget wget http://turnserver.open-sys.org/downloads/v4.5.0.6/turnserver-4.5.0.6-CentOS7.2-x86_64.tar.gz
#解压
tar -zxvf turnserver-4.5.0.6-CentOS7.2-x86_64.tar.gz
#转到其目录下
cd turnserver-4.5.0.6
#如果里面有install.sh文件,直接执行./install.sh或者chmod a+x install 生成install文件 。
./install.sh
3、修改配置文件
#进入配置文件目录
vim + turnserver.conf
#打开配置文件,并直接定位到文件结尾
cd /etc/turnserver/
并在文件末尾添加如下内容
#监听端口可以不设置会默认的使用3478
listening-port=3478
#listening-ip,注意必须是你的内网IP地址如:
listening-ip=xx.xx.xx.xx
#relay-ip可以不设置,默认会使用你的外网ip地址作为转发包的中继地址,建议不设置,使用默认就可以:
relay-ip=xx.xx.xx.xx
#external-ip,注意必须使用你的外网IP地址如:
external-ip=xx.xx.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即可。
4、启动或停止 trun服务
#启动命令:
turnserver -v -r 外网ip -a -o -c /etc/turnserver/turnserver.conf
#关闭命令:
cat /var/run/turnserver/turnserver.pid
#或者 cat /var/tmp/turnserver.pid
#找到进程编号,例如:2033
#执行kill 2033 结束进程。
5、测试
测试地址:
https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
如果没有产生3种类型的ip地址则配置失败(相应的端口一定要打开包括其TCP和UDP功能如:80,3478)。