当前位置: 首页 > news >正文

WebRTC服务器Coturn服务器部署

1、概述

作为WebRTC服务器,只需要部署开源的coturn即可,coturn同时实现了STUN和TURN的协议

2、Coturn具体部署

2.1 Coturn简介

coturn是一个开源的STUN/TURN服务器,把STUN服务器跟TURN服务器都整合为一个服务器,主要提供一下几个功能

2.1.1 网络地址转换(NAT)穿越

可以让通话的双方处于不同的NAT网络下,协助实现两者之间的连接

2.1.2 STUN功能

响应客户端的STUN请求,返回客户端的公网地址和端口、映射端口等,使客户端了解自身在网络中的地址映射情况。

2.1.3 中继(TURN)功能

当STUN无法实现NAT穿越时候,作用中继服务器,在通信的两端无法直接建立连接时,充当数据中转的角色

2.2 Coturn的部署

2.2.1 源码仓库信息

开源github仓库: https://github.com/coturn/coturn

2.2.2 部署要求

coturn版本: 无具体要求

服务器硬件要求: 带宽要求较大,当P2P打洞不成功,都会通过这个服务器进行中转数据。

流量估计:在测试两两通话时候,640 X 480P的分辨率,VP8编码, 平均每秒发送和接收流量为74164×2 = 148328(bytes)=144.86KB,可以对这进行预估所需要的带宽

2.2.3 部署方法

2.2.3.1 安装coturn

centos: yum install coturn

ubutu: apt-get install coturn

2.2.3.2 修改配置文件(/etc/coturn/turnserver.conf或者/etc/turnserver.conf)

listening-port=3478 (监听的端口)

tls-listening-port=5349 (TLS监听端口)

cert=/home/webrtc/server.cert (TLS证书路径)

pkey=/home/webrtc/server.key(TLS证书密钥)

external-ip=117.72.111.221/172.16.0.3(根据实际设置外网IP/内网IP

user=test:123456 (根据实际配置用户名和密码

min-port=49152 (要求coturn分配的中继端口范围最小值,可以不配置,默认最小是49152)

max-port=65535 (要求coturn分配的中继端口范围最大值,可以不配置,默认最大是65535)

cli-password=test (开启telnet服务器访问,开启telnet功能,必须设置这个密码,方便后续查看

cli-max-output-sessions=10000(telnet客户端连接上后通过ps查看会话最大显示个数,配置默认值为256个会话,也就是默认配置最多返回256个会话给telnet客户端,这个应根据coturn服务器资源的负载进行设置

realm=nort.gov (coturn服务器的默认的域)

2.2.3.3 启动coturn服务器

service coturn start 或者利用命令行启动coturn -c -f /etc/coturn/turnserver.conf

coturn的具体参数用法可以看 coturn -h 或者turnserver -h

备注1: coturn会监听上面配置文件打开的端口 ,tcp和udp同时都监听(比如配置文件配置了3478,则udp和tcp的3478端口都会被监听),客户端和coturn服务器会根据情况选择tcp/udp进行通信,需要让udp/tcp的端口3478/5349(TLS加密)都要开放。

备注2: coturn启动时会提供备用端口,比如上面3478,同时也打开3479作为备用端口,上面5349加密端口,同时也打开5350作为加密的备用端口

备注3: 备用端口也可用于支持NAT行为发现和提供备用通信地址的重要属性

备注4:其实我发现无论3478/5349还是3479/5350都是可以正常通信的,也可以加密

相关文章:

WebRTC服务器Coturn服务器部署

1、概述 作为WebRTC服务器,只需要部署开源的coturn即可,coturn同时实现了STUN和TURN的协议 2、Coturn具体部署 2.1 Coturn简介 coturn是一个开源的STUN/TURN服务器,把STUN服务器跟TURN服务器都整合为一个服务器,主要提供一下几个功…...

lspci的资料

PCI即Peripheral Component Interconnect。 在 Linux 上使用 lspci 命令查看硬件情况 | Linux 中国 lspci 命令用于显示连接到 PCI 总线的所有设备,从而满足上述需求。该命令由 pciutils 包提供,可用于各种基于 Linux 和 BSD 的操作系统。 使用 lspci 和…...

GitLab 提交权限校验脚本

.git/hooks 目录详解与配置指南 一、什么是 .git/hooks? .git/hooks 是 Git 仓库中一个隐藏目录,用于存放 钩子脚本(Hook Scripts)。这些脚本会在 Git 执行特定操作(如提交、推送、合并)的前/后自动触发&…...

WebRTC服务器Coturn服务器相关测试工具

1、概述 在安装开源的webrtc服务器coturn服务器后,会附带安装coturn的相关工具,主要有以下几种工具 2、turnadmin工具 说明:服务器命令行工具,提供添加用户、添加管理员、生成TURN密钥等功能,turnadmin -h查看详细用…...

基于Python+Pytest实现自动化测试(全栈实战指南)

目录 第一篇:基础篇 第1章 自动化测试概述 1.1 什么是自动化测试 第2章 环境搭建与工具链配置 2.1 Python环境安装(Windows/macOS/Linux) 2.2 虚拟环境管理 2.3 Pytest基础配置(pytest.ini) 第3章 Pytest核心语…...

符号速率估计——小波变换法

[TOC]符号速率估计——小波变换法 一、原理 1.Haar小波变换 小波变换在信号处理领域被成为数学显微镜,不同于傅里叶变换,小波变换可以观测信号随时间变换的频谱特征,因此,常用于时频分析。   当小波变换前后位置处于同一个码元…...

SQLMesh隔离系统深度实践指南:动态模式映射与跨环境计算复用

在数据安全与开发效率的双重压力下,SQLMesh通过动态模式映射、跨环境计算复用和元数据隔离机制三大核心技术,完美解决了生产与非生产环境的数据壁垒问题。本文提供从环境配置到生产部署的完整实施框架,助您构建安全、高效、可扩展的数据工程体…...

调整IntelliJ IDEA中当前文件所在目录的显示位置

文章目录 1. 问题呈现2. 调整方法3. 更改后的界面 更多 IntelliJ IDEA 的使用技巧可查看 IntelliJ IDEA 专栏中的文章: IntelliJ IDEA 1. 问题呈现 在 IntelliJ IDEA 中,我们在浏览某个文件时,文件所在的目录会显示在下方的状态栏中&#x…...

关于ubuntu密码正确但是无法登录的情况

参考这个文章: https://blog.csdn.net/cuichongxin/article/details/117462494 检查一下是不是用户被lock了 输入passwd -s username 如果用户是L状态,那么就是lock了。 使用 passwd -u username 解锁 关于 .bashrc 不生效 有几点: ~/.…...

OpenCV中的透视变换方法详解

文章目录 引言1. 什么是透视变换2. 透视变换的数学原理3. OpenCV中的透视变换代码实现3.1 首先定义四个函数 3.1.1 cv_show() 函数 3.1.2 def resize() 函数 3.1.3 order_points() 函数 3.1.4 four_point_transform() 函数 3.2 读取图片并做预处理3.3 轮廓检测3.4 获取最大…...

基于DeepSeek的网络爬虫技术创新与实践应用

摘要 在人工智能迅猛发展的时代背景下,网络爬虫技术正经历着深刻变革。本文聚焦于融合DeepSeek大模型的开源爬虫框架Crawl4AI,深入探讨其在网络数据抓取与分析领域的技术原理、功能特性、应用实践及未来发展趋势。通过对Crawl4AI的异步操作、动态内容处理…...

Python基于语音识别的智能垃圾分类系统【附源码、文档说明】

博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…...

关于RPC

1.什么是RPC RPC(Remote Procedure Call),即远程过程调用(协议)。它允许像调用本地服务一样调用远程服务,用于实现分布式系统中跨网络进行通信 的技术,是一种计算机通信协议。 RPC是一种服务器…...

前端频繁调用后端接口问题思考

针对前端频繁调用后端接口的问题,以下是一套分步解决方案,结合Java后端技术栈: 1. 实时数据场景:WebSocket/SSE 适用场景:实时股票行情、即时聊天、监控仪表盘 // Spring WebSocket 配置示例 Configuration EnableW…...

Mujoco robosuite 机器人模型

import ctypes import os# 获取当前脚本所在的目录 script_dir os.path.dirname(os.path.abspath(__file__))# 构建库文件的相对路径 lib_relative_path os.path.join(dynamic_models, UR5e, Jb.so)# 拼接成完整的路径 lib_path os.path.join(script_dir, lib_relative_path…...

进阶篇 第 7 篇 (终章):融会贯通 - 多变量、模型选择与未来之路

进阶篇 第 7 篇 (终章):融会贯通 - 多变量、模型选择与未来之路 (图片来源: Pixabay on Pexels) 我们已经一起走过了时间序列分析的进阶之旅!从深入经典统计模型 ETS、ARIMA、SARIMA,到探索现代利器 Prophet,再到拥抱机器学习和初…...

网络安全·第五天·TCP协议安全分析

一、传输层协议概述 1、功能 传输层负责建立端到端的连接,即应用进程之间的通信,负责数据在端到端之间的传输。与网络层不同的是,网络层负责主机与主机之间的通信。 同时,传输层还要对收到的报文进行差错检测(首部和…...

LX10-MDK的使用技巧

MDK5的使用技巧 查找匹配花括号 ​ Ctrle table键的妙用 一次右缩进4个(个人偏好设置)空格shiftenter取消,即左缩进 快速注释/取消注释 先选代码→ 快速编辑一列 按住ALT键选择一列编辑(实用性极强) 窗口拆分 倒数第一个:按列拆分倒数第二个:按行拆分 查找与替换(一个超级…...

IDEA创建Gradle项目然后删除报错解决方法

根据错误信息,你的项目目录中缺少Gradle构建必需的核心文件(如settings.gradle/build.gradle),且IDEA可能残留了Gradle的配置。以下是具体解决方案: 一、问题根源分析 残留Gradle配置 你通过IDEA先创建了Gradle子模块…...

JavaScript性能优化实战(2):DOM操作优化策略

浏览器渲染原理与重排重绘机制 浏览器将HTML和CSS转换为用户可见页面的过程是前端开发的基础知识,也是理解DOM性能优化的关键。这个渲染过程大致可分为以下几个步骤: 渲染过程的核心步骤 解析HTML构建DOM树:浏览器解析HTML标记,转换为DOM树(Document Object Model),表…...

乐视系列玩机---乐视1s x500 x501 x502等系列线刷救砖以及刷写第三方twrp 卡刷第三方固件步骤解析

乐视乐1S(X500 x501 x502 等)采用联发科 Helio X10(MT6795T)Turbo 64位8核处理器 通过博文了解💝💝💝 1💝💝💝-----详细解析乐视1s x500 x501x502等系列黑砖线刷救砖的步骤 2💝💝💝----官方两种更新卡刷步骤以及刷写第三方twrp过程与资源 3💝💝…...

Spark-Streaming(1)

Spark Streaming概述: 用于流式计算,处理实时数据流。 数据流以DStream(Discretized Stream)形式表示,内部由一系列RDD组成。 Spark Streaming特点: 易用、容错、易整合到spark体系。 易用性&#xff1a…...

【Git】Git Revert 命令详解

Git Revert 命令详解 1. Git Revert 的基本概念 Git Revert 是一个用于撤销特定提交的命令。与 Git Reset 不同,Git Revert 不会更改提交历史,而是会创建一个新的提交来撤销指定提交的更改。这意味着,使用 Git Revert 后,项目的…...

SpringClound 微服务分布式Nacos学习笔记

一、基本概述 在实际项目中,选择哪种架构需要根据具体的需求、团队能力和技术栈等因素综合考虑。 单体架构(Monolithic Architecture) 单体架构是一种传统的软件架构风格,将整个应用程序构建为一个单一的、不可分割的单元。在这…...

PageIndex:构建无需切块向量化的 Agentic RAG

引言 你是否对长篇专业文档的向量数据库检索准确性感到失望?传统的基于向量的RAG系统依赖于语义相似性而非真正的相关性。但在检索中,我们真正需要的是相关性——这需要推理能力。当处理需要领域专业知识和多步推理的专业文档时,相似度搜索常…...

使用Java调用TensorFlow与PyTorch模型:DJL框架的应用探索

在现代机器学习的应用场景中,Python早已成为广泛使用的语言,尤其是在深度学习框架TensorFlow和PyTorch的开发和应用中。尽管Java在许多企业级应用中占据一席之地,但因为缺乏直接使用深度学习框架的能力,往往使得Java开发者对机器学…...

nodejs的包管理工具介绍,npm的介绍和安装,npm的初始化包 ,搜索包,下载安装包

nodejs的包管理工具介绍,npm的介绍和安装,npm的初始化包 ,搜索包,下载安装包 🧰 一、Node.js 的包管理工具有哪些? 工具简介是否默认特点npmNode.js 官方的包管理工具(Node Package Manager&am…...

LeetCode 热题 100_分割等和子集(89_416_中等_C++)(动态规划)

LeetCode 热题 100_分割等和子集(89_416) 题目描述:输入输出样例:题解:解题思路:思路一(动态规划): 代码实现代码实现(思路一(动态规划&#xff0…...

EasyCVR视频智能分析平台助力智慧园区:全场景视频监控摄像头融合解决方案

一、方案背景 在智慧园区建设的浪潮下,设备融合、数据整合与智能联动已成为核心诉求。视频监控作为智慧园区的“视觉中枢”,其高效整合直接影响园区的管理效能与安全水平。然而,园区内繁杂的视频监控设备生态——不同品牌、型号、制式的摄像…...

《剥开卷积神经网络CNN的 “千层酥”:从基础架构到核心算法》

文章目录 前言卷积神经网络(Convolutional Neural Network,CNN)是一种专门用于处理网格结构数据(如图像、视频、音频)的深度学习模型。它在计算机视觉任务(如图像分类、目标检测)中表现尤为出色…...

win10中打开python的交互模式

不是输入python3,输入python,不知道和安装python版本有没有关系。做个简单记录,不想记笔记了...

技术与情感交织的一生 (七)

目录 出师 大三 MVP 首战 TYMIS はじめまして 辣子鸡丁 报价 日本人 致命失误 大佬 包围 品质保障 扩军 唯快不破 闪电战 毕业 总攻 Hold On 出师 大三 大三的学习生活,能认认真真的上一天课的时候很少,甚至经常因为客户的 “传呼”…...

ElasticSearch深入解析(一):Elastic Stack全景

一、Elastic Stack的发展 过去和现在: Elastic数据平台在搜索、地理位置、内部日志、数据指标、安全监控和APM应用性能管理等场景中的应用颇具亮点。 APM(Application Performance Management,应用性能管理)是一种用于监控和管理…...

CAD在线查看免费,可以支持DWG/GLB/GLTF/doc/wps/pdf/psd/eml/zip, rar/MP3/MP4/svg/OBJ/FBX格式

CAD在线查看免费,可以支持DWG/GLB/GLTF/doc/wps/pdf/psd/eml/zip, rar/MP3/MP4/svg/OBJ/FBX格式 m.gszh.xyz m.gszh.xyz 免费支持以下格式文件在线查看类型 支持 doc, docx, xls, xlsx, xlsm, ppt, pptx, csv, tsv, dotm, xlt, xltm, dot, dotx, xlam, xla, pages …...

【机器学习案列-21】基于 LightGBM 的智能手机用户行为分类

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...

多路转接poll服务器

目录 函数原型 poll服务器 对比select的优点 关于select的详解&#xff0c;可查看多路转接select服务器-CSDN博客 函数原型 #include <poll.h> int poll(struct pollfd *fds, nfds_t nfds, int timeout); poll作为多路转接的实现方案&#xff0c;与select要解决的问…...

全本地化智能数字人

&#x1f31f;EdgePersona- 全本地化智能数字人 ​完全离线 | 隐私无忧 | 轻量高效 |笔记本友好 测试效果&#xff1a;【纯本地部署的电子魅魔&#xff01;笔记本也能离线&#xff0c;隐私性拉满】 https://www.bilibili.com/video/BV1jydeYTETD/?share_sourcecopy_web&v…...

第6次课 贪心算法 A

向日葵朝着太阳转动&#xff0c;时刻追求自身成长的最大可能。 贪心策略在一轮轮的简单选择中&#xff0c;逐步导向最佳答案。 课堂学习 引入 贪心算法&#xff08;英语&#xff1a;greedy algorithm&#xff09;&#xff0c;是用计算机来模拟一个「贪心」的人做出决策的过程…...

Docker 部署 PostgreSQL 数据库

Docker 部署 PostgreSQL 数据库 基于 Docker 部署 PostgreSQL 数据库一、拉取 PostgreSQL 镜像二、运行 PostgreSQL 容器三、运行命令参数详解四、查看容器运行状态 基于 Docker 部署 PostgreSQL 数据库 一、拉取 PostgreSQL 镜像 首先&#xff0c;确保你的 Docker 环境已正确…...

Android如何通过aspectj打造一个无侵入式动态权限申请框架

目录 一,背景 二,通过Aspectj管理所有的注解 三,配置注解 四,通过空白Activity完成真正的权限申请 五,引入依赖配置 一,背景 在Activity或者fragment中&#xff0c;写在几个方法写一些注释&#xff0c;用来表示权限申请成功&#xff0c;申请失败&#xff0c;多次拒绝。…...

Flink介绍——实时计算核心论文之Dataflow论文详解

引入 在过去的几篇文章里&#xff0c;我们看到了大数据的流式处理系统是如何一步一步进化的。从最早出现的S4&#xff0c;到能够做到“至少一次”处理的Storm&#xff0c;最后是能够做到“正好一次”数据处理的MillWheel。我们会发现&#xff0c;这些流式处理框架&#xff0c;…...

浅克隆(--depth 1)后如何获取完整的历史记录

如果远程remote为origin&#xff0c;则origin可以不写&#xff0c;如不是&#xff0c;则必须要写 获取全部分支 git fetch origin refs/heads/*:refs/remotes/origin/* 单独获取master分支 git fetch origin refs/heads/master:refs/remotes/origin/master 获取全部历史…...

安宝特案例 | 某知名日系汽车制造厂,借助AR实现智慧化转型

案例介绍 在全球制造业加速数字化的背景下&#xff0c;工厂的生产管理与设备维护效率愈发重要。 某知名日系汽车制造厂当前面临着设备的实时监控、故障维护&#xff0c;以及跨地域的管理协作等挑战&#xff0c;由于场地分散和突发状况的不可预知性&#xff0c;传统方式已无法…...

Feign 深度解析:Java 声明式 HTTP 客户端的终极指南

Feign 深度解析&#xff1a;Java 声明式 HTTP 客户端的终极指南 Feign 是由 Netflix 开源的 ​声明式 HTTP 客户端&#xff0c;后成为 Spring Cloud 生态的核心组件&#xff08;现由 OpenFeign 维护&#xff09;。它通过注解和接口定义简化了服务间 RESTful 通信&#xff0c;并…...

WPS Office安卓版云文档同步速度与PDF转换体验测评

WPS Office安卓版是很多人常用的移动办公软件。它支持在线编辑、文档同步、格式转换等功能&#xff0c;适合手机和平板用户随时处理文档。我们用它配合谷歌浏览器打开网页文档时&#xff0c;也可以将内容快速保存到云端或转换成PDF格式使用。 先说云文档同步。在打开WPS Office…...

ARM汇编的LDM和STM指令

批量加载/存储指令可以实现在一组寄存器和一块连续的内存单元之间传输数据.LDM 为加载多个寄存器&#xff0c;STM 为存储多个寄存器.允许一条指令传送 16 个寄存器的任何子集或所有寄存器.指令格式如下: LDM{cond}<模式> Rn{!},reglist{^} STM{cond}<模式> Rn{!}…...

Python-27:游戏英雄升级潜力评估

问题描述 小U在一款挂机游戏中拥有n个英雄。游戏中有一种历练升级机制&#xff0c;每天可以选择两个英雄进行历练&#xff0c;如果两位英雄的等级相同&#xff0c;则他们的等级都不会改变。如果英雄等级不同&#xff0c;那么等级较高的英雄会增加1级&#xff0c;而等级较低的英…...

【基于SprintBoot+Mybatis+Mysql】电脑商城项目之显示勾选的购物车数据和创建订单

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【Spring篇】【计算机网络】【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 &#x1f680;1.显示勾选的购物…...

AWS Lambda 架构深入探究

AWS Lambda 是现代云架构中最受欢迎的服务之一&#xff0c;因其能够在完全托管的无服务器环境中运行代码而广受认可。然而&#xff0c;尽管 Lambda 广受欢迎&#xff0c;许多开发者和架构师对它的底层运作机制却知之甚少&#xff0c;常常将其视为“编写能够在云端神奇运行的代码…...

信奥赛CSP-J复赛集训(DP专题)(19):P3399 丝绸之路

信奥赛CSP-J复赛集训&#xff08;DP专题&#xff09;&#xff08;19&#xff09;&#xff1a;P3399 丝绸之路 题目背景 张骞于公元前 138 年曾历尽艰险出使过西域。加强了汉朝与西域各国的友好往来。从那以后&#xff0c;一队队骆驼商队在这漫长的商贸大道上行进&#xff0c;他…...