WERTC-在Ubuntu中搭建ICE服务器

WERTC-在Ubuntu中搭建ICE服务器1.ICE服务器介绍最近一段时间在做关于webrtc语音视频通话,网上免费的公开的STUN服务器可以用于测试,使用起来响应时间非常的慢,用起来不爽。作为一个有情怀的技术人员的我,就需要自己搭建了coturn服务器,现在分享给大家。前提先介绍一下ICE服务器,ICE服务器包含了STUN和TURN两部分,实际上我们就需要TURN服务器就可以进行P2P穿墙。coturn服务器是在turnserver上增加了部分高级特性(感谢项目作者,为我们提供了很好的环境)。coturn支持cp,udp,

大家好,又见面了,我是你们的朋友全栈君。

1.ICE服务器介绍

    最近一段时间在做关于webrtc语音视频通话,网上免费的公开的STUN服务器可以用于测试,使用起来响应时间非常的慢,用起来不爽。作为一个有情怀的技术人员的我,就需要自己搭建了coturn服务器,现在分享给大家。
     前提先介绍一下ICE服务器,ICE服务器包含了STUN和TURN两部分,实际上我们就需要TURN服务器就可以进行P2P穿墙。coturn服务器是在turnserver上增加了部分高级特性(感谢项目作者,为我们提供了很好的环境)。coturn支持cp, udp, tls, dtls 连接。coturn支持linux bsd solaris Mac os 系统,暂不支持windows系统。
     我是在公网部署搭建coturn服务器,来进行STUN服务器进行穿透和TURN服务器中转。具体思想和步骤是这样的。先会尝试直连,直连失败后通过STUN服务器进行穿透,若穿墙失败则通过TURN服务器中转。

20160623102626402.JPEG

2.安装coturn

2.1安装依赖组件

安装coturn前需要安装所需要的组件

sudo apt-get install libssl-dev

sudo apt-get install libevent-dev

sudo apt-get install libpq-dev

sudo apt-get install mysql-client

sudo apt-get install libmysqlclient-dev

sudo apt-get install libhiredis-dev

sudo apt-get install git

2.2 下载编译安装coturn

命令如下

git clone https://github.com/coturn/coturn

cd coturn

./configure

make

sudo make install

3.配置coturn

3.1.拷贝默认配置

coturn 源码的 example/etc 目录中,有提供 coturn 的默认配置文件,以供我们使用,我们需要分别拷贝 turnserver 所需要的三个配置文件>

首先在 /etc 目录下创建 turnserver 配置的存放目录

sudo mkdir /etc/turnserver/

拷贝 conf 配置脚本
进入 coturn 目录

cd coturn
sudo cp ./examples/etc/turnserver.conf /etc/turnserver/

拷贝 pem 秘钥文件
将 *.pem 秘钥文件也拷贝到 /etc/turnserver/ 目录下

sudo cp ./examples/etc/turn_server_*.pem  /etc/turnserver/

4.生成 coturn 用户

为了安全起见,需要配置用户和密码,也就是链接的用户和密码,这里还有域名。
域名可以不用放上

sudo turnadmin -a -u 用户名 -p 密码 -r 域名

执行成功后,可通过 turnadmin -l 既可查看:

sudo turnadmin -a -u abcabc -p abcabc -r beijing.com
turnadmin -l

当然我们也可以到了启动 turnserver 的时候设置用户名和密码。

5.配置turnserver.conf

编辑之前的拷贝出来的turnserver.conf

我们先看看本地网卡名字和地址,记下来,下面我们会用到

ifconfig

ifconfig

现在我们就修改turnserver.conf配置,找到下面的参数进行修改。

relay-device=eth0   #与ifconfig查到的网卡名称一致
listening-ip=172.17.0.6    #内网IP
listening-port=3478
tls-listening-port=5349
relay-ip=172.17.0.6
external-ip=49.234.237.xxx    #公网IP
relay-threads=50
lt-cred-mech
cert=/etc/turnserver/turn_server_cert.pem
pkey=/etc/turnserver/turn_server_pkey.pem
pidfile=”/var/run/turnserver.pid”
min-port=49152
max-port=65535
user=abcabc:abcabc    #用户名密码,创建IceServer时用
cli-password=qwerty    #这个是新增的一定要加上

上面配信息修改完就到这里就算完成了,接下来我们来把turnserver启动。
20160623101937291.JPEG

6.启动turnserver

turnserver -o -a -f -user=abcabc:abcabc

启动结果

如果用到云服务器,需要到云服务器开通3478端口。
如果不是云服务器打开3478端口,然后重启防火墙即可

添加
firewall-cmd --zone=public --add-port=3478/udp --permanent
firewall-cmd --zone=public --add-port=3478/tcp --permanent
重新载入
firewall-cmd --reload
重启防火墙
systemctl restart firewalld

7.ICE测试

turnserver测试Trickle ICE
https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

8.心得

我使用腾讯云服务器,1核2内存1M配置,用起来比公共ICE服务器的响应速度快多了,ICE服务器不需要很高的配置就可以达到想要的结果。 第一次写东西,描述比较少,干货多吧,需要下点功夫理解,反正我是部署上。
IMG_2963.JPG

9.附加

关于webrtc语音视频通话程序设计
QQ:328555416

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131914.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java常量表示_形参可以是常量吗

    java常量表示_形参可以是常量吗万千封印我知道编译器需要在编译时知道表达式才能编译一个开关,但是为什么foo.ba_常数不是呢?虽然从字段初始化后执行的任何代码的角度来看,它们都是常量,但它们不是编译时间常数在JLS所要求的意义上;见§15.28常量表达式的规格常数表达式1..这指的是§4.12.4最后变量它将“常量变量”定义为:我们称一个变量为原始类型或类型字符串,它是最终变量,并使用编译时常量表达式(§15.28)初始化为常…

    2022年9月29日
    0
  • docker-compose 集群_docker集群管理

    docker-compose 集群_docker集群管理前言实际工作中我们部署一个应用,一般不仅仅只有一个容器,可能会涉及到多个,比如用到数据库,中间件MQ,web前端和后端服务,等多个容器。我们如果一个个去启动应用,当项目非常多时,就很难记住了,所有

    2022年7月30日
    7
  • Oracle函数——TO_DATE[通俗易懂]

    Oracle函数——TO_DATE[通俗易懂]TO_DATE含义:将具有固定格式的字符串类型的数据转化为相对应的Date类型数据,官网解释如下图使用方法TO_DATE("需要转换的字符串","日期格式&quot

    2022年7月3日
    38
  • Autoencoder自动编码器的发展

    Autoencoder自动编码器的发展Autoencoder自动编码器的发展0、玻尔兹曼机中的测试实验——编码问题(1985)0.1、玻尔兹曼机0.2、受限的玻尔兹曼机0.3、编码问题——自动编码器雏形1、反向传播中的仿真——单层自动编码器(1986)2、利用神经网络进行数据降维——深度自动编码器(2006)3、去噪自编码器(2008)4、稀疏自编码器(2011)5、卷积自编码器(2011)6、变分自编码器(2013)6.1、模型6….

    2022年5月1日
    46
  • html5 sexteen,TV and other factors lead to early teen sex

    html5 sexteen,TV and other factors lead to early teen sexToomuchtelevision,lowself-esteem,disappointinggradesandpoorfamilyrelationshipscanbeaformulathataddsuptoearlyteenagesex,accordingtoanewstudy.”Ifyouaddupallthefactors,yo…

    2022年5月24日
    26
  • 常用泰勒级数展开[通俗易懂]

    常用泰勒级数展开[通俗易懂]因为日常计算中经常需要做一些近似,而泰勒级数展开是其中最常用的一种,所以本篇整理了部分常见的(一元函数)泰勒公式展开

    2022年10月24日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号