用于WebRTC的coturn服务器的搭建

avatar
作者
猴君
阅读量:0

前言:

        自己在研究WebRTC相关内容,在远端连接老是绕不开搭建ICE服务器,搜索了无数文章和方法,还是久久无进展,最后头皮嗯嘛了才成功,故想总结一下我的搭建步骤,供大家参考,避免少走弯路!!!

1、前期准备

准备一个自己的公网服务器,可以是阿里云或其他都可以,记得在部署时将自己的端口打开,特别是3478端口,千万记得UDP和TCP协议都要打开。然后查看你服务器的内网地址和公网ip:

然后安装各种依赖和软件

yum install git
yum install gcc
yum install gcc-c++
yum install openssl
yum install openssl-devel
yum install libevent2
yum install libevent-devel 

安装完毕后安装coturn包。

mkdir langyang
cd langyang
git clone https://github.com/coturn/coturn.git
cd coturn
./configure 
make 
make install

 查看是否安装成功 which turnserver

2、配置文件

进入文件夹:

cd /usr/local/etc/ 

输入命令将turnserver.conf.default备份

cp turnserver.conf.default turnserver.conf 

 然后建议通过命令在当前文件夹生成签名证书

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 

 在填写信息时

第一个country name填写cn

state or province 填写guangdong

Locality name 填写 shenzhen

其他随便填

完成后可以看到turn_server_cert.pem和turn_server_pkey.pem两个文件。

 

 然后在当前文件夹下,通过命令创建一个文件turnuserdb.conf用于存储用户名和信息 

cp turnserver.conf.default turnuserdb.conf 

 全部完成后:

 然后利用命令生成账号密码的md5码

turnadmin -k -u langyang -r guangdong -p 123456 

3、修改与编辑

然后用Xftp 7 连接你的服务器修改文件配置,不用这个软件也可以直接在服务器中打开该文件直接修改

 用记事本编辑方式打开turnuserdb.conf 文件,输入用户名和刚才生成的md5码进行保存

langyang:0xbd6f13018e8ae54ec030226a2ca18f20

然后再打开turnserver.conf进行编辑,输入如下配置信息:

#中继服务器监听的IP地址,NAT环境下直接写私网IP地址,可以指定多个IP
listening-ip= 你自己的内网IP
#中继服务器转发地址(本地IP地址将用于传递数据包的给每个端),和监听地址一样
#relay-ip=你自己的公网ip
#外部IP,NAT环境下直接写:公网IP/私网IP
external-ip=公网ip/内网ip
#cli-password=123456
#打开fingerprint的注释,使用长期证书机制。
fingerprint
#打开密码验证,使用短期证书机制。
lt-cred-mech
#服务器名称,用于OAuth认证,默认和realm相同,直接填公网ip.部分浏览器本段不设可能会引发cors错误。
server-name=公网ip
# TURN REST API的长期凭证机制范围,同样设为ip,同server-name.
realm=公网ip
#移动的ICE(MICE)的规范支持。
mobility
#快捷的添加用户是使用user=XXX:XXXX的方式。
user=langyang:123456

保存后,通过bin文件夹下,输入命令开启服务

 cd /usr/local/bin
 turnserver -v -r 你的公网ip:3478 -a -o -c /usr/local/etc/turnserver.conf 

显示如下画面说明已经开启成功了,有relay返回你的内网地址。 

 4、测试

接下来我们要测试开启的turnserver服务器能否起作用,到测试网址:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

建议用火狐浏览器访问网址进行测试,chrome浏览器可能会出错

第一栏是 turn:公网ip:端口号 (经测试,如果不填端口号,默认是3478端口)

第二栏是 之前设置的用户名

第三栏是 之前设置的密码

然后点击Add Server 

然后点击下方gather candidates按钮,配置正确返回信息:

 可以看到有服务器所在公网地址返回的信息,能通过turn服务器中转,有relay地址回来说明你的ip穿透成功。

也可以查看turnserver服务器在后台是否运行:

ps -ef|grep turnserver

有多台turnserver服务器在后台,可以用killall turnserver杀掉 。

至此结束,觉得有用可以点个赞哦

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!