day22-----3.1-----coturn安装以及报错“coturn/src/apps/relay/netengine.c:316:对‘SSL_CTX_up_ref’未定义的引用“

2023-11-11

1 安装步骤

我的系统是Ubuntu16.04。

1.1 安装coturn需要的依赖

我先安装了下面两个依赖。

sudo apt‐get install libssl‐dev 
sudo apt‐get install libevent‐dev

1.2 编译安装coturn

然后我正常的安装。

git clone https://github.com/coturn/coturn 
cd coturn 
./configure 
make 
sudo make install

结果发现,执行./configure 还是正常的生成Makefile,但是当我在make的时候,报错了,大概意思是说动态库没有找到。
在这里插入图片描述
在这里插入图片描述

那只好往对应的目录中手动放动态库呗,将openssl的so,顺便静态库也放进去,例如放上去上面我的截图的/usr/local/lib目录中,但是又报了另一个错误,也是openssl库没找到的意思,去coturn的官网看issue也没有找到对应的解决方法。
弄着弄着一晚上三个多小时没了。。。实在没思路了,洗澡睡了。

然后第二天起来再百度百度看看,结果也遇到一个和我一样的问题。

1.3 解决上面的问题

大概意思就是可能与coturn的版本相关,我看他是使用camke加上自定义模块去找到对应的动态库,并且我这里执行./configure 也found对应的so,我也不知道为啥没链进去,所以就换了个下载方法。不用git clone去下载,使用wget去下载tar算了。

# 1. 提前安装相关依赖
sudo apt‐get install libssl‐dev 
sudo apt‐get install libevent‐dev
sudo apt-get install sqlite3
sudo apt-get install build-essential//和gcc,g++相关的软件包
sudo apt-get install gcc//实际上安装上面的包后已经自动安装了gcc,g++,可能与ubuntu版本有关吧,我的是16.04
sudo apt-get install g++

# 2. 安装coturn
wget https://github.com/coturn/coturn/archive/4.5.1.1.tar.gz
tar -zxvf 4.5.1.1.tar.gz
cd coturn-4.5.1.1
./configure
make
sudo make install

如果gcc、g++没有安装或者版本较低,可能会出现以下错误:
在这里插入图片描述

安装成功的截图。
在这里插入图片描述

1.4 验证是否真的成功

如果成功了,可以通过which turnserver验证。如果出现路径即为成功。

which turnserver

在这里插入图片描述

或者使用下面的方法验证:

# nohup是重定向命令,输出都将附加到当前目录新生成的 nohup.out 文件中
# 命令后加 & ,后台执行起来后按 ctr+c,不会停止
# 注意:-u后面的是你的linux 账号和密码,例如你是root登陆的话,就是:root:你的root密码
sudo nohup turnserver ‐L 0.0.0.0 ‐a ‐u tanyiyuan:123456 ‐v ‐f ‐r nort.gov &
sudo lsof -i:3478

在这里插入图片描述
停止coturn服务可以使用kill -9。例如我上面lsof后看到pid。

sudo kill -9 5125
#此时再次查看程序已经停止了。
lsof -i:3478

参考文章:
CentOS上webRTC的coturn服务器部署

2 验证coturn服务器是否能成功穿透打洞和中继

如果不验证的话,那么有可能会存在这一种情况,就是你本地部署好coturn服务器并且测试是成功的,但是一拿到公网后,就失灵了,原因在于,即使coturn在局域网内是失效的,你在局域网也是能进行正常的音视频传输,因为局域网是互通的,所以你在局域网能测试成功,并不能代表coturn服务器就是正常工作的。所以验证还是必要的。

2.1 验证conturn的stun的打洞功能(即是否能通过端口进行映射)

首先打开以下网址。

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

按如下步骤输入内容,其中1是你刚刚下载的coturn服务器的虚拟机ip或者云服务器ip,coturn的默认端口是3478。
第2、3步则是你虚拟机的用户和密码,就是上面登陆coturn服务器时,-u选项的账号、密码。
然后依次点击4和5即可。
在这里插入图片描述
成功的话,会出现done,说明你的coturn的stun打洞功能是正常工作的。
在这里插入图片描述

2.2 验证conturn的turn的中继转发功能

在确认是上面是能打洞之后,还需要验证turn的中继转发功能。
首先将stun的服务器去掉先,先点击一下那一行,然后按remove即可。
在这里插入图片描述

然后按照上面类似的做法,只不过需要将协议换成turn和ICE options换成delay。
如下图:
在这里插入图片描述

2.3 疑问

上面虽然看到,stun和turn都返回了Done,但是为什么他报了701返回。我百度了一下,有人说是谷歌浏览器的问题。
但我验证了一下,应该和浏览器没关,因为我用谷歌,微软自带的Microsoft Edge,搜狗,ie,火狐都不行,火狐测stun的时候没报错,但是测turn的时候报错了。 ie更离谱,点击添加服务器没反应。
并且有人和我的操作一样,使用搜狗浏览器是能正常的,没有报错701。

故留下此疑问。

然后又跟踪了一下这个疑问,有人说是正常的,具体看下面文章。
coturn NAT穿透服务器搭建
How to create and configure your own STUN/TURN server with coturn in Ubuntu 18.04
https://github.com/webrtc/samples/issues/1227。这一篇似乎很多国外的开发者遇到了和我类似的问题,并且谷歌官方也没有回应这个错误,那我们就不理他这个bug先了,避免浪费太多时间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

day22-----3.1-----coturn安装以及报错“coturn/src/apps/relay/netengine.c:316:对‘SSL_CTX_up_ref’未定义的引用“ 的相关文章

  • 在 Linux 上访问 main 之外的主要参数

    是否可以访问参数main在外面main 即在共享库构造函数中 在 Linux 上除了通过解析之外 proc self cmdline 您可以通过将构造函数放入 init array部分 功能在 init array 不像 init 使用相同
  • pprof 和 ps 之间的内存使用差异

    我一直在尝试分析用 cobra 构建的 cli 工具的堆使用情况 这pprof工具显示如下 Flat Flat Sum Cum Cum Name Inlined 1 58GB 49 98 49 98 1 58GB 49 98 os Read
  • 如何访问 mmaped /dev/mem 而不导致 Linux 内核崩溃?

    我有一个简单的程序 尝试访问用户空间中的物理内存 其中内核存储第一个结构页 在 64 位机器上 该地址是 内核虚拟地址 ffffea0000000000 物理地址 0000620000000000 我正在尝试通过用户空间中的 mmap 访问
  • 错误:命令“c++”失败,退出状态为 1

    所以我尝试按照以下说明安装 Pyv8https andrewwilkinson wordpress com 2012 01 23 integrating python and javascript with pyv8 https andre
  • 如何设置Java线程的CPU核心亲和力?

    我搜索了以前关于类似主题的帖子 但找不到合适的答案 因此提出这个问题 非常感谢您帮助回答 我知道在 Linux 中通过任务集命令设置进程与特定 CPU 核心的关联性 但我想设置 Java 线程与特定 cpu 核心的亲和力 以便属于同一进程的
  • 如何在 Linux 中重新添加 unicode 字节顺序标记?

    我有一个相当大的 SQL 文件 它以 FFFE 的字节顺序标记开头 我使用 unicode 感知的 linux 分割工具将此文件分割成 100 000 行块 但是当将这些传递回窗口时 它确实not与第一个部分以外的任何部分一样 只是它具有
  • 如何从远程 ssh 连接上运行的 tmux(复制模式)复制到本地剪贴板

    我通过 OS X 上的 VirtualBox 运行 Linux 我通过在无头状态下运行虚拟机 然后使用端口转发 sshing 到 Linux 机器来实现这一点 现在 无论复制到我的虚拟机上的剪贴板 我都可以粘贴到我的远程 ssh 会话上 但
  • XAMPP Windows 上的 Php Cron 作业

    嗯 我是这个词的新手CRON 据我所知 这是一个Unix安排特定操作在定义的时间间隔后执行的概念 我需要运行一个php文件 每小时更新一次数据库 但我的困惑在于安排执行 我在用XAMPP用于 Windows 7 上的本地开发测试 我发现了什
  • 用于读取文件的 Bash 脚本

    不知道为什么最后一行没有从脚本中删除 bin bash FILENAME 1 while read line do cut d f2 echo line done lt FILENAME cat file 1 test 2 test 3 t
  • 计算 TCP 重传次数

    我想知道在LINUX中是否有一种方法可以计算一个流中发生的TCP重传的次数 无论是在客户端还是服务器端 好像netstat s解决了我的目的
  • 可以作为命令行参数传递多少数据?

    在 Linux 下生成进程时可以发送多少字节作为命令行参数 gahooa 推荐了一篇好文章http www in ulm de mascheck various argmax http www in ulm de mascheck vari
  • 运行 shell 命令并将输出发送到文件?

    我需要能够通过 php 脚本修改我的 openvpn 身份验证文件 我已将我的 http 用户设置为免通 sudoer 因为这台机器仅在我的家庭网络中可用 我目前有以下命令 echo shell exec sudo echo usernam
  • 用于时间线数据的类似 gnuplot 的程序

    我正在寻找一个类似 gnuplot用于在时间轴中绘制数据图表的程序 类似 gnuplot 在 Linux 上运行 命令行功能 GUI 对我帮助不大 可编写脚本的语法 输出为 jpg png svg 或 gif 输出应该是这样的 set5 s
  • 了解 Linux oom-killer 日志

    我的应用程序被 oom killer 杀死了 它是在实时 USB 上运行的 Ubuntu 11 10 无需交换 PC 具有 1 Gig 的 RAM 唯一运行的应用程序 除了所有内置的 Ubuntu 东西 是我的程序 flasherav 请注
  • 如何在linux中使用iptables将http和https流量转发到透明代理[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题似乎不是关于主要由程序员使用的特定编程问题 软件算法或软件工具 help on topic 如果您认为该问题与主题相关另一个 St
  • Grep 递归和计数

    需要在具有大量子目录的目录中搜索文件内的字符串 我在用着 grep c r string here 我怎样才能找到总数量 如何仅输出至少具有一个实例的文件 使用 Bash 的进程替换 这给出了我认为是您想要的输出 如果不是 请澄清问题 gr
  • WebRTC/getUserMedia:如何正确静音本地视频?

    我正在尝试实现将本地视频静音的功能MediaStreamTrack在我的 WebRTC 应用程序中 我是这样处理的 function muteVideo if this localStream this localStream getVid
  • 使用peerjs webrtc共享屏幕+共享系统音频时麦克风不工作

    我们已经尝试过共享屏幕声音的 共享屏幕时 麦克风和屏幕共享音频不能同时工作 麦克风不工作时系统音频已开启 系统音频确实不工作如果末端麦克风打开 请解释一下问题是什么 这是代码 function startScreenShare if scr
  • 查找并删除超过 x 天的文件或文件夹

    我想删除超过 7 天的文件和文件夹 所以我尝试了 17 07 14 email protected cdn cgi l email protection find tmp mindepth 1 maxdepth 1 ctime 7 exec
  • 使用 --prof 选项创建多个日志文件而不是一个 v8.log 的节点

    我正在尝试使用 prof 选项来分析我的 Node 应用程序 但我发现不是一个单一的 v8 log 文件 而是使用诸如isolate 0x9582b40 v8 log isolate 0xa1cab78 v8 6049 等前缀创建的多个文件

随机推荐

  • 深入理解计算机系统(第3版) 第十一章 网络编程

    1 客户端 服务器编程模型 采用这个模型 一个应用是由一个服务器进程和一个或者多个客户端进程组成 服务器管理某种资源 并通过操作这种资源来为它的客户端提供某种服务 客户端 服务器模型中的基本操作是事务 transacton 一个客户端 服务
  • 前端面试必备知识点总结(持续更新)

    这篇博客是对前端面试所必须掌握的知识点的总结 并且这篇博客正在持续更新中 面试复习 1 JavaScript 基础 1 执行上下文 作用域 闭包 1 什么是执行上下文 执行上下文是评估和执行JavaScript代码环境的抽象概念 每当Jav
  • 示例代码TestCpp中场景操作浅分析

    参考http blog csdn net honghaier article details 8130947 controller h cpp 示例场景管理类TestController 用于显示所有示例的菜单 testBasic h cp
  • 元宇宙+教育,正在引发哪些剧烈变革?机会在哪里?丨圆桌实录

    图片来源 由无界AI绘画工具生成 2月23日 温州元宇宙创新中心为2023年第一批申请入驻的项目企业举办了签约仪式 温州临境网络科技有限公司 温州好玩文化产业有限公司 温州云兮科技有限公司 筹 等企业完成签约 这意味着 温州当地的文创 教育
  • L2-4 哲哲打游戏PTA

    哲哲是一位硬核游戏玩家 最近一款名叫 达诺达诺 的新游戏刚刚上市 哲哲自然要快速攻略游戏 守护硬核游戏玩家的一切 为简化模型 我们不妨假设游戏有 N 个剧情点 通过游戏里不同的操作或选择可以从某个剧情点去往另外一个剧情点 此外 游戏还设置了
  • Linux网络程序设计-TCP网络编程

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 TCP IP协议是什么 二 端口 三 socket端口 1 两个重要的数据类型sockaddr和sockaddr in 2 基于TCP协议的客户端 服务器
  • GitHub 优秀的 Android 开源项目第二篇——转自多篇网络文章

    原文地址为http www trinea cn Android android open source projects view 作者Trinea 主要介绍那些不错个性化的View 包括ListView ActionBar Menu Vi
  • weex scroller滚动的小烦恼

    背景 前几天的需求开发中 需要完成这样一个功能 这还不简单 一个横向滚动的tag选择功能 一个横向scroller搞定问题 但是做为一个对自己有 要求 的程序员 怎么可能会接受一个死气沉沉的滚动条 为了勾起用户的点击欲望 我毫不犹豫的增加了
  • 微信开发提示未绑定网页开发者

    加入一下就可以了
  • input上边框有阴影(iPhone手机)

    做移动端 发现在苹果手机上input显示有问题 上边框一直有阴影 input的border初始化 box shadow也做了处理 box shadow 0 0 0 fff 在手机端都无效 如图 解决方案 input outline none
  • 利用cuda加速MATLAB程序

    利用cuda加速MATLAB程序 利用cuda加速MATLAB程序 1参考木子超的办法 2参考Tomheaven的方法 3引用 最近因为要做张量的模态积 所以要考虑使用cuda来进行并行的编程 但是c 实在太麻烦 尤其是在有MATLAB的时
  • HBase Shell常用Shell命令

    1 进入与退出hbase shell命令行窗口 root repo hbase shell hbase main 001 0 gt hbase main 001 0 gt exit root repo 2 help 1 查看hbase中有哪
  • 光标异常如何解决

    相信大家都遇到过一个小问题 那就是当编辑文章时光标会不小心变为下图所示的样子 这样就无法正常删除文字 其实想要恢复正常很简单只需点进编辑页面后 再按下insert键即可 一般电脑是Ins
  • GitHub项目:自然语言处理领域的相关干货整理

    自然语言处理 NLP 是计算机科学 人工智能 语言学关注计算机和人类 自然 语言之间的相互作用的领域 本文作者为NLP初学者整理了一份庞大的自然语言处理领域的概览 选取的参考文献与资料都侧重于最新的深度学习研究成果 这些资源能为想要深入钻研
  • sql关于avg中的else null和else 0

    drop table test1 use sys create table test1 id int not null num int not null insert into test1 values 1 10 insert into t
  • Eclipse 配置 maven

    旧版的eclipse在线安装maven太麻烦了 要安装很多依赖的东西 有时费半天劲 还按不上 不是缺这个就缺那个 而且网上推荐maven插件链接http m2eclipse sonatype org sites m2e已经失效 查看其官方网
  • Kutools for Excel v26.10 Excel插件工具箱中文版

    Kutools for Excel 是一款强大的Excel 插件增强工具箱 可以在Excel中点击几下简化各种复杂的任务 例如 Excel用户可以轻松地将工作表与多次点击相结合 合并单元格而不会丢失数据 仅粘贴到可见单元格 等等 毫无疑问
  • Kafka3.1安装配置,配置Kafka集群,Zookeeper集群

    1 下载Kafka安装包 Kafka官网下载地址 https kafka apache org downloads 2 解压压缩包 tar zxvf kafka 2 12 3 1 0 tgz c kafka 3 进入配置文件目录 cd ka
  • mybatis3 大于、小于、不等于等特殊字符转义

    特殊字符 特殊字符转义一 特殊字符转义二 gt gt lt lt 代码实例
  • day22-----3.1-----coturn安装以及报错“coturn/src/apps/relay/netengine.c:316:对‘SSL_CTX_up_ref’未定义的引用“

    1 安装步骤 我的系统是Ubuntu16 04 1 1 安装coturn需要的依赖 我先安装了下面两个依赖 sudo apt get install libssl dev sudo apt get install libevent dev