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
(2).libevent-2.1.12-stable.tar.gz
下载地址:https://github.com/libevent/libevent/releases/
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
验证是否安装成功
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
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
查看是否启动成功:
7.验证
地址:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/