Skip to main content

moregeek program

centos7上安装coturn搭建turn/stun服务-webrtc_雍州无名的博客-多极客编程

coturn是一个免费的开源的TURN/STUN服务器。coturn 服务器完整的实现了STUN/TURN/ICE协议,支持P2P穿透防火墙。

1.STUN 服务器用于获取设备的外部网络地址。
2.TURN 服务器是在点对点失败后用于通信中继。

WebRTC 建立连接的步骤大概是这样的:

1.客户端(浏览器)直接尝试直连
2.如果如果直连则通过 STUN 服务器进行穿透
3.如果无法穿透则通过 TURN 服务器进行中转

1.下载对应的包

(1).coturn-4.5.1.1.tar.gz

下载地址:​​https://github.com/coturn/coturn/releases?page=3​

centos7上安装coturn搭建turn/stun服务-WebRTC_服务器

(2).libevent-2.1.12-stable.tar.gz

下载地址:​​https://github.com/libevent/libevent/releases/​

centos7上安装coturn搭建turn/stun服务-WebRTC_github_02

2.安装依赖

yum install gcc-c++ openssl-devel -y

3.安装coturn

(1).安装libevent
tar -zxvf libevent-2.1.12-stable.tar.gz
cd libevent-2.1.12-stable/
./configure --prefix=/usr --libdir=/usr/lib64
make
make install
(2).安装coturn
tar -zxvf coturn-4.5.1.1.tar.gz
cd coturn-4.5.1.1/
./configure
make
make install

centos7上安装coturn搭建turn/stun服务-WebRTC_服务器_03

验证是否安装成功

which turnserver

centos7上安装coturn搭建turn/stun服务-WebRTC_配置文件_04

4.生成签名

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

centos7上安装coturn搭建turn/stun服务-WebRTC_服务器_05

5.修改配置文件turnserver.conf

创建配置文件turnserver.conf

cd /usr/local/etc/ 
cp turnserver.conf.default turnserver.conf

修改配置项

vim turnserver.conf

relay-device=eth0                #网卡名称
listening-ip=10.2.6.47 #内网IP
listening-port=3478
tls-listening-port=5349
relay-ip=10.2.6.47 #内网IP
external-ip=45.90.208.43 #公网IP
relay-threads=50
lt-cred-mech
min-port=49152
max-port=65535
cert=/usr/local/etc/turn_server_cert.pem #证书文件
pkey=/usr/local/etc/turn_server_pkey.pem #私钥文件
pidfile="/var/run/turnserver.pid" #存储进程pid的文件名
user=admin:123456 #账号密码
cli-password=123456 #CLI访问密码。默认值为空(无密码)

6.启动turnserver

对应的参数命令:

-o 是让程序在后台启动
-r 后面填个地区就行
-user 一定要和配置文件中一样

启动:

turnserver -o -a -f -user=admin:123456 -c /usr/local/etc/turnserver.conf -r sz

查看是否启动成功:

ps -ef|grep turnserver

centos7上安装coturn搭建turn/stun服务-WebRTC_配置文件_06

7.验证

地址:​​https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/​

centos7上安装coturn搭建turn/stun服务-WebRTC_配置文件_07

©著作权归作者所有:来自51CTO博客作者雍州无名的原创作品,请联系作者获取转载授权,否则将追究法律责任

【jvm故障问题排查心得】「内存诊断系列」jvm内存与kubernetes中pod的内存、容器的内存不一致所引发的oomkilled问题总结(下)_李博alex的博客-多极客编程

承接上文之前文章根据《【JVM故障问题排查心得】「内存诊断系列」JVM内存与Kubernetes中pod的内存、容器的内存不一致所引发的OOMKilled问题总结(上)》我们知道了如何进行设置和控制对应的堆内存和容器内存的之间的关系,所以防止JVM的堆内存超过了容器内存,导致容器出现OOMKilled的情况。但是在整个JVM进程体系而言,不仅仅只包含了Heap堆内存,其实还有其他相关的内存存储空间

【项目管理过程的五个阶段是什么?】_王小呆的博客-多极客编程

项目管理过程的五个阶段一般包括:启动、规划、执行、监控、收尾。但很多人对项目管理的全流程只知道这五大过程组。这五大过程组之间的关系是怎样的?项目管理的全流程又是什么样的?在每个流程中有什么核心工作是项目经理需要重点关注的?下面本文就围绕五大过程组以及以上问题进行介绍:一、项目的基本流程项目的基本流程是一个可循环的流程,它虽然建立在项目管理的流程之上,但还是存在一定差异:二、项目管理流程的详细介绍1

开启linux的网络服务, ftp、ssh和nfs服务_嵌入式开发的博客-多极客编程

在使用linux中开发的时候,我们可以选择启用一些网络服务方便我们进行开发,加快开发的进度。 现在很多用linux进行开发的工程师,他们大多都是在windows系统上安装虚拟机,然后在虚拟机中安装linux系统,然后在里面完成项目的开发的。这种方式往往需要经常的和windows之间进行文件的传输,这时候使用网络上的一些传输服务就可以很方便的进行。 比如常用FTP、SSH、NFS这三个常用的网络服

solidity 错误处理及异常_sleep666的博客-多极客编程

Assert, Require, Revert错误将撤消事务期间对状态变量所做的所有更改。assert: 消耗掉所有剩余的gas,并恢复所有的操作require(false)和 revert():将退还所有剩余的gas,同时可以返回一个值(自定义的报错信息)一般来说,使用assert()的频率较少,通常用于函数的结尾以下三个方法最终效果相同:// SPDX-License-Identifier:

五个免费开源的数据挖掘软件_qq604ad839511ed的博客-多极客编程

1、OrangeOrange 是一个基于组件的数据挖掘和机器学习软件套装,它的功能即友好,又很强大,快速而又多功能的可视化编程前端,以便浏览数据分析和可视化,基绑定了 Python以进行脚本开发。它包含了完整的一系列的组件以进行数据预处理,并提供了数据帐目,过渡,建模,模式评估和勘探的功能。其由C++ 和 Python开发,它的图形库是由跨平台的Qt框架开发。2、RapidMinerRapidMi

rocketmq 全链路灰度探索与实践_apacherocketmq的博客-多极客编程

本文作者:肖京,Spring Cloud Alibaba PMC,阿里云智能技术专家。01 全链路灰度背景介绍发布新版本时,为了有效、谨慎地验证新版本代码逻辑的正确性,通常会采用灰度发布,从而达到减小第一次变更影响面的目的。举个例子,应用的集合中可能会包含交易中心、商品中心、库存中心等多个模块。在一次新版本发布的过程中,可能有 feature 既修改了交易中心,又修改了商品中心。为了验证新版本的正

python基础之公共操作_清晨的博客-多极客编程

⼀、 运算符1、+# 1. 字符串str1 = 'aa'str2 = 'bb'str3 = str1 + str2print(str3) # aabb# 2. 列表list1 = [1, 2]list2 = [10, 20]list3 = list1 + list2print(list3) # [1, 2, 10, 20]# 3. 元组t1 = (1, 2)t2 = (10, 20)t3 = t1

[ linux ] linux信号概述 信号的产生_小白又菜的博客-多极客编程

0.问题引入:在曾经我们学习Linux的经历中,我们也是多次使用信号的。比如:当我们在使用xshell时,在命令行中按Ctrl+c,这个键盘输入产生了一个硬件中断,被操作系统获取,解释成信号,发送给目标前台进程。前台进程因为收到了信号,进而引起进程退出。注意:Ctrl+C 产生的信号只能发给前台进程。一个命令后面加个&可以放到后台运行,这样Shell不必等待进程结束就可以接受新的命令,启动

proxmox ve 彻底删除本地存储_田逸(sery)的博客-多极客编程

​作者:田逸(formyz)​问题描述​从Proxmox VE web管理后台添加本地存储,如LVM、LVM-Thin(精简逻辑卷)等,有时候可能需要删除这些存储,但其Web管理后台却没有提供菜单或者按钮。要删除这些项目,需要在宿主系统Debian的命令行下去操作。如果操作由遗漏,虽然Proxmox VE的存储配置文件“/etc/pve/storage.cfg”里边清理掉了,但Proxmox VE

find 命令 的 7 种高级用法_linksla智能运维管家的博客-多极客编程

可以很肯定地说,find 命令是 Linux 后台开发人员必须熟知的操作之一,除非您使用的是 Windows Server。对于技术面试,它也是一个热门话题。让我们看一道真题:如果你的 Linux 服务器上有一个名为 logs 的目录,如何删除该目录下最后一次访问时间超过一年的日志文件呢?🤔这种情况很常见,但令人惊讶的是,并非每个开发人员都能在面试中清楚地写出这个命令。答案:首先我们需要使用 cd

kettle字段合并_wx6369307062d07的博客-多极客编程

将数据源A库中的某张表或某几个表中的字段合并后的数据插入到数据库B中。我们在数据库A和数据库B中分别创建表userA和表userB。最终目标为将数据表userA中的字段“surname”和“name”合并后的数据插入到数据表userB中。create database testA; use testA; create table `userA`( `id`int(10) primary k

linux权限扩展 _萌新的日常的博客-多极客编程

1. 进入一个目录 需要什么权限? 1.去掉 r(读)功能 当我们把mydir目录拥有者读的功能去掉后,发现可以进入mydir目录中 2. 去掉 w(写)功能 当我们把mydir目录拥有者写的功能去掉后,发现可以进入mydir目录中 3. 去掉x(执行)功能 直接会报错 ,说明进入一个目录需要x权限 4. w的功能 若缺少w写的功能,则会使在进入新创建的目录中,无法直接创建新的