Qt+WebRTC学习笔记(七)ubuntu22.04下搭建coturn(STUN/TURN)

news2024/9/23 13:25:31

前言

因工作原因,很长时间没更新相关文档了,笔者之前测试时,一直使用示例自带的公网中转服务器。考虑到后期项目需要,笔者在线搭建一个coturn服务器测试,供有需要的小伙伴使用

一、安装coturn

若需要最新版本的coturn,需要自己下载coturn源码编译

git下载:

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

若只是测试,可以直接在线安装 

sudo apt-get install coturn

二、配置coturn

1.创建用户

sudo turnadmin -a -u 用户名 -p 密码 -r 可以随便写(一般写stun.xxx.cn)
//示例
sudo turnadmin -a -u testuser -p testpassword -r stun.test.cn

2. 生成证书

sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes 

 3.配置turnserver.conf

#(必选)监听端口可以不设置会默认的使用3478
listening-port=3478
#(必选)监听的网卡
listening-device=eth0
#(必选)listening-ip,注意必须是你的内网IP地址
listening-ip=172.17.0.12
#(必选)external-ip,注意必须使用你的外网IP地址(云主机的公网IP地址)
external-ip=18.33.65.98
#(必选)设置用户名及密码
user=testuser:testpassword

relay-device=eth0  # 中转网卡
tls-listening-port=5349 
relay-ip=内网ip
relay-threads=50 
cert=/etc/turn_server_cert.pem 
pkey=/etc/turn_server_pkey.pem 
min-port=49152 
max-port=65535 
#一般与turnadmin 创建用户时指定的realm一致,不指定realm时,默认为: 外网地址:3478
#和你创建用户名和密码是填写的-r后面的一样
realm=stun.test.cn 

 注意:如果机器上有多块网卡,注意listening-ip与listening-device要匹配,参考下图红色方框部分:

三、启动服务

 启用coturn并验证
turnserver -v -r stun.test.cn -a -o -c /etc/turnserver.conf

-r stun.test.cn —— 意为指定realm,要与创建用户时指定的realm一致。

 

四、进行端口映射

笔者使用的企业交换机和路由器,使用一根专线,有一个公网IP,需要将内网服务器的3478端口映射出去。

假设笔者也映射到公网的3478端口

五、测试 stun/turn 服务

webrtc-samples官网还提供了一个检测ice穿透的在线工具:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
按里面的要求输入 stun/turn 地址、用户和密码后就可以探测stun/turn服务是否正常了。

 

若是出现以上信息,就说明coturn服务器就可以正常使用了 

后记

笔者编写测试程序,使用qt6.5编写的界面。测试时发现,使用调试模式时,若只使用自己搭建的服务器,程序会异常退出,但release模式正常。

因时间问题,笔者只进行了单对单的音视频、自定义数据收发测试,其他的测试未进行,希望有解决方案的小伙伴及时反馈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/510723.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux修改文件权限

目录 1、常用操作 2、文件属性 3、chmod命令详解 1.修改文件属主,也可以修改文件属组 2.修改文件权限 4.chgrp命令详解 1、常用操作 查看权限操作命令:# ls -l 在 Linux 中我们通常使用以下两个命令来修改文件或目录的所属用户与权限: chown (change ownerp)…

[python] Python类型提示指北

Python3.5 版本引入了类型提示(Type Hints),它允许开发者在代码中显式地声明变量、函数、方法等的类型信息。这种类型声明不会影响 Python 解释器的运行,但可以让 IDE 和静态分析工具更好地理解代码,同时提高代码的可读…

《Netty》从零开始学netty源码(五十六)之MessageSizeEstimator

MessageSizeEstimator 在channel的配置类中有一个属性msgSizeEstimator,它的功能就是用来预估消息的大小,它的赋值过程如下: 接口MessageSizeEstimator只有一个方法newHandle(),它返回的接口handle是MessageSizeEstimator的内部类…

SpringBoot基础篇1(搭建环境+基础配置)

一、SpingBoot入门案例 SpringBoot是用来简化Spring应用的初始搭建以及开发过程。 先快速搭建一个SpringBoot: 创建一个空project,再创建SpringBoot模块。 点击Create,出现以下页面配置成功 创建一个控制器测试一下: RestCo…

Centos8搭建SMB服务

这里以Centos8为例,搭建简易的SMB服务。虚拟机配置:内存8G、存储64G、CPU单核四线程、网络NAT模式跳过虚拟机与系统配置部分,不清楚虚拟机配置以及创建的请查阅其他文档此文章只用于练习用,商业和个人用可以见解Truenas系统 更新…

改进YOLOv5 | C3模块改动篇 | 轻量化设计 |骨干引入高效卷积运算 DSConv: Efficient Convolution Operator

论文地址:https://arxiv.org/pdf/1901.01928v1.pdf 引入了一种卷积层的变体,称为DSConv(分布偏移卷积),其可以容易地替换进标准神经网络体系结构并且实现较低的存储器使用和较高的计算速度。 DSConv将传统的卷积内核分解为两个组件:可变量化内核(VQK)和分布偏移。 通过…

C 高级 /Day 2

#include<stdio.h> int Max_arr(int (*arr)[5],int row,int hang) {int max0;//最大值int k1;//循环行for(int i0;i<hang;i){int k1;//循环列for(int j0;j<row;j){//控制行和列for(int m0;m<hang;m){for(int n0;n<row;n){//如果是第m行的其他的元素&#xf…

MySQL原理(一):逻辑存储结构

前言 从本文开始&#xff0c;我将分享一下近期学习 MySQL 的笔记&#xff0c;其中大部分来源于极客时间的《MySQL实战45讲》、小林coding、以及部分其他博客和书籍。 这次系列文章着重讲 MySQL 的原理部分&#xff0c;主要是用于面试&#xff0c;也就是我们常说的八股&#x…

华为OD机试 - 有效的括号(Java)

一、题目描述 给定一个只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。…

力扣习题+——单链表

宝子&#xff0c;你不点个赞吗&#xff1f;不评个论吗&#xff1f;不收个藏吗&#xff1f; 最后的最后&#xff0c;关注我&#xff0c;关注我&#xff0c;关注我&#xff0c;你会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的很重要…

Redis 学习笔记

一、redis中的常见数据结构 Redis共有5种常见数据结构&#xff0c;分别字符串&#xff08;STRING)、列表&#xff08;LIST&#xff09;、集合&#xff08;SET)、散列&#xff08;HASH&#xff09;、有序集合&#xff08;ZSET)。 二、redis中字符串(String)介绍 String 类型是…

[ 云计算 华为云 ] 华为云开天 aPaaS:构建高效的企业数字化平台(上)

文章目录 前言一、 什么是 aPaaS1.1 初识 aPaaS 二、华为云开天 aPaaS2.1 华为云服务类型与种类2.1.1 基础 aPaaS2.1.2 行业 aPaaS&#xff08;一&#xff09;工业 aPaaS&#xff08;二&#xff09;政务 aPaaS&#xff08;三&#xff09;电力 aPaaS&#xff08;四&#xff09;矿…

“深圳十大金口碑人物”优必选科技创始人兼CEO周剑获此殊荣

深圳晚报社联合深圳市诚商信用评级有限公司、深圳市诚信营商促进会和中国善网&#xff0c;共同举办了首届“金口碑”评选活动。活动涵盖多个领域&#xff0c;历经多个环节的评定和实地走访&#xff0c;最终有10名个人、20家企业和70家商户成功获得“金口碑人物”、“金口碑企业…

苹果13白屏无法正常开机怎么办?可以尝试这2种解决方法!

iPhone13莫名重启卡在白苹果&#xff0c;iPhone13开机却一直卡在开机画面&#xff0c;无法正常开机启动。 iPhone13出现以上问题&#xff0c;虽然都是处于苹果logo的状态&#xff0c;都可称为白苹果。 苹果13出现白屏、黑屏、白苹果等故障时&#xff0c;我们该怎么进行强制重启…

网络基础知识2—网络

文章目录 1.IP地址1.1概念1.2作用1.3组成1.4格式1.5举例1.6分类1.7特殊的IP 2.子网掩码2.1作用2.2是否是同一网段 3.Mac地址4.网络数据传输—一跳一跳的过程4.1网络节点4.2IP地址和Mac地址的区别 5.网络硬件设备及技术5.1集线器5.2交换机5.3主机5.4ARP缓存表&#xff1a;主机和…

玩机搞机----rom中build.prop文件的修改 优化 删除 开启等等

对于安卓机型系统中的build.prop文件是必不可少的&#xff0c;网络也很多这类的优化教程。但大多都是老机型的解释&#xff0c;今天这个帖子针对一些新版机型build.prop文件的一些操作实例来分析下。友情提示&#xff0c;修改这个文件有风险。严重会进不去系统。而且机型不同。…

Windows11关闭Edge/Chrome浏览器触摸板双指前进后退手势(防止误触切换页面)

编辑了好久的东西&#xff0c;就因为手势误触一下子切换页面了&#xff0c;难受啊&#xff01; Mac版本的设置参考这篇&#xff08;他这个是通过终端命令做的&#xff09;&#xff1a; Mac Chrome浏览器&#xff0c;关闭双指前进、后退手势 我现在身边没有Mac&#xff0c;不知道…

在线UI设计工具都有哪些?如何选择?

做UI设计不仅要阅读UI设计技巧文章&#xff0c;还要掌握好用的UI设计工具&#xff0c;增加UI设计的实践经验&#xff0c;从而熟能生巧&#xff0c;提高UI设计效率。 找到一个好的在线UI设计工具&#xff0c;比如鱼遇到水&#xff0c;就会开启高效的UI设计。因此&#xff0c;掌…

【ONE·C++ || set和map(二):AVL树和红黑树】

总言 主要介绍AVL树和红黑树的部分框架结构和特性 文章目录 总言1、AVL树1.1、基本概念介绍1.2、重要框架与特性实现1.2.1、如何搭建AVL树的结点 &#xff1a;AVLTreeNode&#xff0c;引入三叉链1.2.2、如何搭建AVL树1.2.3、AVL树插入讲解 1.3、AVL树插入1.3.1、step1&#xf…

超越ChatGPT?新发布:“讯飞星火认知大模”到底行不行?

国内又一巨头发布 大语言模型&#xff0c;是 PPT 融资还是真材实料 &#xff1f; 作为程序员&#xff0c;到底面对这一趋势&#xff0c;我们何去何从 &#xff1f; 目录 讯飞星火&#xff0c;5月6日如约而至 一、你真的了解科大讯飞吗&#xff1f; 二、讯飞星火大模型将超越…