coturn
是一个开源的 TURN (Traversal Using Relays around NAT) 服务器,是搭建WebRTC应用的首选。
WebRTC应用有很多,之前发的P2P音视频通话用到的也是该服务,除此之外还能用于远程控制、多屏映射等应用。
本文主要参考了如下文章:
https://www.jianshu.com/p/eb25ca97d27d
以下所有命令都是在当前Linux账户为root权限的情况下执行的。
yum install -y make gcc cc gcc-c++ wget openssl-devel libevent libevent-devel
或
apt install -y build-essential gcc g++ wget libssl-dev libevent-dev
进入想要将Coturn源码下载到的目录,这里以/work
目录为例。
cd /work
执行下载命令,版本号可访问https://coturn.net/turnserver地址查看,这里以相对稳定的版本v4.5.0.8
为例。
wget https://coturn.net/turnserver/v4.5.0.8/turnserver-4.5.0.8.tar.gz
解压并进入目录:
tar -zxvf turnserver-4.5.0.8.tar.gz
cd turnserver-4.5.0.8/
./configure --prefix=/usr/turnserver # 指定安装的目录
make && make install
如果控制台出现1)... 2)... 3)...等内容时表示已经安装完成。中间可能会有一些警告,但一般不会影响正常安装。
vi ~/.bashrc
插入以下内容:
export turnserver_home=/usr/turnserver
export PATH=$PATH:$turnserver_home/bin
使环境变量配置立即生效:
source ~/.bashrc
先找到官方的示例配置文件的位置:
find /usr -name turnserver.conf
返回的内容如:
/usr/turnserver/share/examples/turnserver/etc/turnserver.conf
编辑这个配置文件:
vi /usr/turnserver/share/examples/turnserver/etc/turnserver.conf
配置文件内容通常比较长,可以在进入vi编辑器后按大写G
跳转至文件的末尾,并在末尾加入以下内容:
realm=xxx.cn # 域名,这个必须设置
listening-port=3478 # 服务端口
listening-ip=0.0.0.0
external-ip=x.x.x.x # 外网ip
user=admin:123456 # 设置账号密码
min-port=49152 # 连接端口最小值
max-port=65535 # 连接端口最大值
【注意】记得把配置中的注释删掉,并且每一行之后不要有空格。
指定使用刚刚修改的配置文件来启动服务。
turnserver -v -r ip地址 -a -o -c /usr/turnserver/share/examples/turnserver/etc/turnserver.conf
登录你的服务器厂商安全组界面,放行如下端口:
① TCP 3478
② UDP 3478
③ TCP 49152-65535 (端口范围)
④ UDP 49152-65535 (端口范围)
验证服务是否正常运行。
测试地址:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
测试coturn服务
const configuration = {
iceServers: [
{
urls: ["stun:x.x.x.x:3478"]
},
{
urls: "turn:x.x.x.x:3478",
username: "admin",
credential: "密码"
}
]
};
peer = new RTCPeerConnection(configuration);