用于WebRTC的coturn服务器的搭建
前言:
自己在研究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杀掉 。
至此结束,觉得有用可以点个赞哦