1、安装库文件
yum install -y make gcc cc gcc-c++ wget
yum install -y openssl-devel libevent libevent-devel mysql-devel mysql-server
2、下载安装libevent
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar zxvf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable && ./configure
make && make install
3、下载并安装TURN modules
git clone https://github.com/coturn/coturn
cd coturn
./configure
make
make install
如下所示则安装成功
4、修改config文件
在/usr/local/etc/目录下有turnserver.conf.default,复制为turnserver.conf cd /usr/local/etc/
cp turnserver.conf.default turnserver.conf
移动到root/etc下 mv turnserver.conf /root/etc
5、查看网卡名称和内网地址 ifconfig
6、使用openssl命令生成ssl的key和cert
openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes
7、修改config配置,主要相关字段如下
relay-device=eth0 #与前ifconfig查到的网卡名称一致
listening-ip=192.168.0.76 #内网IP
listening-port=3478
tls-listening-port=5349
#relay-ip可以不设置,默认会使用你的外网ip地址作为转发包的中继地址,建议不设置,使用默认就可以
external-ip=**.**.**.** #公网IP
relay-threads=50
lt-cred-mech
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
pidfile=”/var/run/turnserver.pid”
min-port=49152
max-port=65535
user=username:password #用户名密码,创建IceServer时用
cli-password=$5$79a316b350311570$81df9cfb9af7f5e5a76eada31e7097b663a0670f99a3c07ded3f1c8e59c5658a
8、启动turnserver
turnserver -c /etc/turnserver.conf
如下所示则启动成功
9、打开相关端口
添加
firewall-cmd --zone=public --add-port=3478/udp --permanent
firewall-cmd --zone=public --add-port=3478/tcp --permanent
重新载入
firewall-cmd --reload
重启防火墙
systemctl restart firewalld
10、永久启动
创建turnserver.service文件
内容为:
[unit]
Description=turnserver for webrtc
After=network.target
[Service]
Type=forking
User=root
ExecStart=/root/coturn/bin/turnserver -c /root/etc/turnserver.conf
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
拷贝到文件系统中
cp turnserver.service /lib/systemd/system
重新加载
Systemctl daemon-reload
启动
systemctl start turnserver.service
查看状态
systemctl stop turnserver.service
如下所示说明成功
11、sturn/turn服务测试
打开Trickle ICE
添加stun 或者 turn服务地址,点击addServer
然后点击 Gather Candidates ,如下图
有 srflx 说明stun 服务是可用的
有 relay 说明 turn 服务是可用的