前言:
自己在研究WebRTC相关内容,在远端连接老是绕不开搭建ICE服务器,搜索了无数文章和方法,还是久久无进展,最后头皮嗯嘛了才成功,故想总结一下我的搭建步骤,供大家参考,避免少走弯路!!!
1、前期准备
准备一个自己的公网服务器,可以是阿里云或其他都可以,记得在部署时将自己的端口打开,特别是3478端口,千万记得UDP和TCP协议都要打开。然后查看你服务器的内网地址和公网ip:
然后安装各种依赖和软件
yum install git
yum install g***
yum install g***-c++
yum install openssl
yum install openssl-devel
yum install libevent2
yum install libevent-devel
安装完毕后安装coturn包。
mkdir langyang
cd langyang
git clone https://github.***/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填写***
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杀掉 。
至此结束,觉得有用可以点个赞哦