centos7上安装coturn搭建turn/stun服务-WebRTC

时间:2022-12-01 14:09:45

coturn是一个免费的开源的TURN/STUN服务器。coturn 服务器完整的实现了STUN/TURN/ICE协议,支持P2P穿透防火墙。

1.STUN 服务器用于获取设备的外部网络地址。
2.TURN 服务器是在点对点失败后用于通信中继。

WebRTC 建立连接的步骤大概是这样的:

1.客户端(浏览器)直接尝试直连
2.如果如果直连则通过 STUN 服务器进行穿透
3.如果无法穿透则通过 TURN 服务器进行中转

1.下载对应的包

(1).coturn-4.5.1.1.tar.gz

下载地址:​​https://github.com/coturn/coturn/releases?page=3​

centos7上安装coturn搭建turn/stun服务-WebRTC

(2).libevent-2.1.12-stable.tar.gz

下载地址:​​https://github.com/libevent/libevent/releases/​

centos7上安装coturn搭建turn/stun服务-WebRTC

2.安装依赖

yum install gcc-c++ openssl-devel -y

3.安装coturn

(1).安装libevent
tar -zxvf libevent-2.1.12-stable.tar.gz
cd libevent-2.1.12-stable/
./configure --prefix=/usr --libdir=/usr/lib64
make
make install
(2).安装coturn
tar -zxvf coturn-4.5.1.1.tar.gz
cd coturn-4.5.1.1/
./configure
make
make install

centos7上安装coturn搭建turn/stun服务-WebRTC

验证是否安装成功

which turnserver

centos7上安装coturn搭建turn/stun服务-WebRTC

4.生成签名

openssl req -x509 -newkey rsa:2048 -keyout /usr/local/etc/turn_server_pkey.pem -out /usr/local/etc/turn_server_cert.pem -days 99999 -nodes

centos7上安装coturn搭建turn/stun服务-WebRTC

5.修改配置文件turnserver.conf

创建配置文件turnserver.conf

cd /usr/local/etc/ 
cp turnserver.conf.default turnserver.conf

修改配置项

vim turnserver.conf

relay-device=eth0                #网卡名称
listening-ip=10.2.6.47 #内网IP
listening-port=3478
tls-listening-port=5349
relay-ip=10.2.6.47 #内网IP
external-ip=45.90.208.43 #公网IP
relay-threads=50
lt-cred-mech
min-port=49152
max-port=65535
cert=/usr/local/etc/turn_server_cert.pem #证书文件
pkey=/usr/local/etc/turn_server_pkey.pem #私钥文件
pidfile="/var/run/turnserver.pid" #存储进程pid的文件名
user=admin:123456 #账号密码
cli-password=123456 #CLI访问密码。默认值为空(无密码)

6.启动turnserver

对应的参数命令:

-o 是让程序在后台启动
-r 后面填个地区就行
-user 一定要和配置文件中一样

启动:

turnserver -o -a -f -user=admin:123456 -c /usr/local/etc/turnserver.conf -r sz

查看是否启动成功:

ps -ef|grep turnserver

centos7上安装coturn搭建turn/stun服务-WebRTC

7.验证

地址:​​https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/​

centos7上安装coturn搭建turn/stun服务-WebRTC