最近项目要用到webrtc,测试发现内网穿透有时候传输数据不稳定,需要架设一个中转服务器用作数据中转;
由于turn包含了stun的功能,所以这里就只部署了turn服务器,用的是coturn,可以在这里下载,https://github.com/coturn/coturn;
而coturn目前并不支持windows服务器,所以这里需要安装Cgywin已达到在window也能使用Linux命令的目的
一、windows环境下安装Cygwin
1.安装Cygwin,下载地址:https://cygwin.com/install.html
注意:①安装过程中为了更方便可以添加以下镜像源地址:http://mirrors.163.com/cygwin/;
②需要gcc编译工具,安装时把Devel设为Install
安装完成后可以输命令进入coturn目录,也可以把它设置到右键菜单中,操作如下:
https://blog.csdn.net/简单的乌龟_hong_/article/details/52490266
二、安装libevent2库
1.http://libevent.org/,下载libevent2库,解压;
2.打开Cgywin进去到libevent2目录,或者在libevent2目录右键打开Cgywin(已设置右键菜单);
3.在Cgywin运行./configure命令,没问题后运行make && make install 命令
三、安装coturn
1.打开Cgywin进去到coturn目录,或者在coturn目录右键打开Cgywin(已设置右键菜单);
2.运行CC=gcc ./configure命令;
3.运行make命令;
4.运行make install命令;
至此coturn配置完成。
四、coturn具体配置
1.生成证书,在coturn源文件夹右键打开cgywin,输入命令,openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 –nodes,信息随便填
2.修改cygwin文件夹下的etc文件夹里的turnserver.conf,在末尾加上如下配置
relay-device=eth0
listening-ip=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=用户名:密码
3.在刚才填完信息的窗口输入命令
turnserver -o -a -f -user=用户名:密码 -r Guangdong
4.在webrtc加入iceserver
android端:iceServers.add(new PeerConnection.IceServer("turn:域名或IP地址:端口号","用户名","密码"));至此配置中转服务器完成,测试可用