Centos7搭建coturn服务器
前言
最近想上线一个多功能的在线音视频聊天应用,需要STUN_TURN服务器,新出的 开源项目coturn同时实现了stun和turn服务的功能,所以,我打算直接安装coturn中继服务器
安装
1. 安装依赖
yum install -y make gcc cc gcc-c++ wget openssl-devel libevent libevent-devel openssl
yum install git (不必须)
2. 下载conturn项目包
我们为了防止云服务器下载慢,直接在github上clone下来(但是你的服务器上拥有git也是很重要的)
上传解压后起一个你喜欢的名字
接下来,配置,编译,安装
cd coturn
./configure //配置
make //编译
make install //安装
直接./configure
,会比较乱,这里你可以指定文件夹配置编译安装,比如
./configure --prefix=/usr/local/coturn
编译的时候
make -j 2 //指定核数安装,1核为2, 2核为4
我在编译的时候报错
没有找到解决方案,我估计是turnserver官方的问题,在他们官方的issues找到了,可以通过yum下载(其实是一个人用Ubuntu出现了类似的问题),官方给出的是
sudo apt-get install coturn //(注意如果用这个命令,前面的所有操作都可以省略,因为这是通过命令行直接下载安装编译的)
我们是centos,用yum
sudo yum install coturn //(注意如果用这个命令,前面的所有操作都可以省略,因为这是通过命令行直接下载安装编译的)
安装完后,试了下 which turnserver
,竟然成功了
3. 配置
接下来,我们要找到 turnserver.conf,对他进行配置
find / -name turnserver.conf
然后进入这个目录
接着 ifconfig
查看ip (windows为 ipconfig
)
我的内网IP为 172.24.52.189 ,外网IP为 47.95.234.230
接下来,我们要是用openSSL生成cert和pkey配置的自签名证书
openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes
要知道这两个证书的位置,应该在 /etc下面(默认位置)
编辑 turnserver.conf
vi turnserver.conf
# 网卡名
relay-device=eth0
#内网IP
listening-ip=172.24.52.189
listening-port=3478
#内网IP
relay-ip=172.24.52.189
tls-listening-port=5349
# 外网IP
external-ip=47.95.234.230
relay-threads=500
#打开密码验证
lt-cred-mech
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
min-port=40000
max-port=65535
#设置用户名和密码,创建IceServer时使用
user=admin:123456
# 外网IP绑定的域名
realm=www.codeting.top
# 服务器名称,用于OAuth认证,默认和realm相同,部分浏览器本段不设可能会引发cors错误。
server-name=www.codeting.top
# 认证密码,和前面设置的密码保持一致
cli-password=123456
接下来,我们去阿里云云端(防火墙)开启tcp与udp这两个端口
3478/udp
3478/tcp
40000~65535/udp
我们服务器本地也要开启
#开放端口
firewall-cmd --zone=public --add-port=3478/udp --permanent
firewall-cmd --zone=public --add-port=3478/tcp --permanent
#重启防火墙
firewall-cmd --reload
接下来,启动 coturn
turnserver -o -a -f
接下来,我们要真正看一下,coturn是否安装成功
在线检测ICE穿透的地址:杀杀杀
这里的账号密码就是你上面配置的
点击第二步如下
relay回来你的公网IP就算是穿透成功了