公司内网虚拟机中穿透服务器Coturn的搭建

news2024/11/24 18:36:02

1. 写在前面

  1. coturn服务器的搭建文章已经非常多,但是对于对linux不熟悉的人来说排查错误的文章不多,此篇文章把我这次搭建过程以及如何排查问题做一个梳理
  2. 我这里是在oracle vm虚拟机中搭建安装的ubuntu,通过H3C路由器映射到外网
  3. 以下介绍我只做了ubuntu版本的安装,其他安装方法未做验证

2. 前期准备

2.1. 安装oracle vm虚拟机(略)

2.2. 在oracle vm虚拟机中安装ubuntu并设置网络为桥接

有空再写

2.3. 配置外网映射

  1. 由于公司是用的H3C防火墙,以下介绍H3C防火墙配置
    • 在NAT配置TCP+UDP 3478-3479端口映射到内网虚拟机中ubuntu电脑的ip地址
    • 在NAT配置TCP+UDP 49152-65535端口映射到内网虚拟机中ubuntu电脑的ip地址
      在这里插入图片描述

3. 安装coturn

3.1. 安装依赖

  1. ubuntu系统
sudo apt‐get install libssl‐dev
sudo apt‐get install libevent‐dev
  1. centos系统
sudo yum install openssl‐devel
sudo yum install libevent‐devel

3.2. 编译安装coturn

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

3.3. 启动coturn服务(命令行方式)

# nohup是重定向命令,输出都将附加到当前目录的 nohup.out 文件中; 命令后加 & ,后台执行起来后按 ctr+c,不会停止
sudo nohup turnserver ‐L 0.0.0.0 ‐a ‐u lqf:123456 ‐v ‐f ‐r nort.gov &

3.4 启动coturn服务(服务方式)

以服务形式启动(具体如何形成的服务,不清楚、不知道,同事之前搞的)

  1. 修改turnserver.conf文件
    我的该文件在目录/etc/turnserver.conf下
  2. 如何设置ssl中的key
    请点击:Nginx/Tomcat/SpringBoot配置自生成SSL证书查询,此处不再介绍
listening-post=3478
tls-listening-port=5349

min-port=49152
max-port=65535

fingerprint
lt-cred-mech
user=lqf:123456
realm=shandong
cli-password=123456
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
  1. 启动服务
# 启动服务
sudo systemctl start coturn.service

# 查看启动是否成功,状态为Active: active (running)代表已启动
sudo systemctl status coturn.service

3.4. 查看是否安装成功

#然后查看相应的端口号3478是否存在进程
sudo lsof ‐i:3478

以下进程为服务方式启动,这种进程数有点多,以命令行启动只有4条,这不重要
在这里插入图片描述

3.5. 测试地址,请分别测试stun和turn

Coturn集成了stun+turn协议。

测试网址:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice

  1. 在Strun or turn uri中输入“turn:公网ip:端口”或“stun:公网ip:端口”。
    测试stun时不需要设置用户名密码,且iceTransports value设置为all
    测试turn时需要输入用户名密码, 且iceTransports value设置为relay
  2. 什么算通过呢
    • 测试stun模式:出现srflx、并且最后以Done结尾代表成功
    • 测试turn模式:出现relay、并且最后以Done结尾代表成功
      在这里插入图片描述
      在这里插入图片描述

3.6 使用relay模式通话时(不是用上面网址测试),会看到网络带宽增加

# 用下面命令检测
sudo sar -n DEV 1

3.7 查看coturn日志

其实就是查看linux中服务的日志,coturn访问时报错要用到

sudo journalctl -f -u coturn.service

4. 先简单记录一下,后面再更新

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

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

相关文章

跟着cherno手搓游戏引擎【9】glm配置

glm配置: 下载glm数学库 GitHub - g-truc/glm: OpenGL Mathematics (GLM) 修改SRC 下的premake5.lua文件: workspace "YOTOEngine" -- sln文件名architecture "x64" configurations{"Debug","Release",&quo…

【探索科技 感知未来】文心一言大模型

【探索科技 感知未来】文心大模型 🚩本文介绍 文心一言大模型是由中国科技巨头百度公司研发的一款大规模语言模型,其基于先进的深度学习技术和海量数据训练而成。这款大模型具备强大的自然语言处理能力,可以理解并生成自然语言,为…

C#读取一个百万条数据的文件,同时批量一次性导入sqlitedb,需要花费多长时间

读取的代码: public void CSV2DataTableTest(string fileName){FileStream fs new FileStream(fileName, FileMode.Open, FileAccess.Read);StreamReader sr new StreamReader(fs, new UnicodeEncoding());//记录每次读取的一行记录string strLine "";…

Self-Attention 和 Multi-Head Attention 的区别——附最通俗理解!!

文章目录 前言 一、简要介绍 二、工作流程 三、两者对比 四、通俗理解 前言 随着Transformer模型的迅速普及,Self-Attention(自注意力机制)和Multi-Head Attention(多头注意力机制)成为了自然语言处理(NLP…

使用一个定时器(timer_fd)管理多个定时事件

使用一个定时器(timer_fd)管理多个定时事件 使用 timerfd_xxx 系列函数可以很方便的与 select、poll、epoll 等IO复用函数相结合,实现基于事件的定时器功能。大体上有两种实现思路: 为每个定时事件创建一个 timer_fd,绑定对应的定时回调函数…

###C语言程序设计-----C语言学习(4)#

前言:感谢老铁的浏览,希望老铁可以一键三连加个关注,您的支持和鼓励是我前进的动力,后续会分享更多学习编程的内容。现在开始今天的内容: 一. 主干知识的学习 1.字符型数据 (1)字符型常量 字…

腐蚀及膨胀的python实现——数字图像处理

原理 像处理中的腐蚀和膨胀是形态学操作的两个基本概念,它们广泛应用于图像预处理、特征提取和其他图像分析任务。 腐蚀(Erosion) 腐蚀操作可以看作是图像中形状的"收缩"。其基本原理是使用一个结构元素(通常是一个小…

IS-IS:10 ISIS路由渗透

ISIS的非骨干区域,无明细路由,容易导致次优路径问题。可以引入明细路由。 在IS-IS 网络中,所有的 level-2 和 level-1-2 路由器构成了一个连续的骨干区域。 level-1区域必须且只能与骨干区域相连,不同 level-1 区域之间不能直接…

Nginx进阶篇【三】

Nginx进阶篇【三】 四、Rewrite功能配置【ngx_http_rewrite_module模块】4.1."地址重写"与"地址转发"4.2.Rewrite的相关命令4.3.Rewrite的应用场景4.4.Rewrite的相关指令介绍4.4.1. set指令4.4.2. Rewrite常用全局变量4.4.3. if 指令4.4.4. break指令4.4.5…

AI大模型开发架构设计(6)——AIGC时代,如何求职、转型与选择?

文章目录 AIGC时代,如何求职、转型与选择?1 新职场,普通人最值钱的能力是什么?2 新职场成长的3点建议第1点:目标感第2点:执行力第3点:高效生产力 3 新职场会产生哪些新岗位机会?如何借势?4 新职场普通人…

大数据安全 | 期末复习(下)

文章目录 📚安全策略和攻击🍋🐇安全协议🐇IPsee🐇SSL🐇SSH🐇S/MIME协议🐇公钥基础设施PKI🐇PGP🐇HTTPS🐇防火墙🐇防毒墙🐇…

MQ面试题之Kafka

前言 前文介绍了消息队列相关知识,并未针对某个具体的产品,所以略显抽象。本人毕业到现在使用的都是公司内部产品,对于通用产品无实际经验,但是各种消息中间件大差不差,故而本次选择一个相对较熟悉的Kafka进行详细介绍…

Linux之安装配置CentOS 7

一、CentOS简介 CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码&#xff0c…

综合案例 - 商品列表

文章目录 需求说明1.my-tag组件封装(完成初始化)2.may-tag封装(控制显示隐藏)3.my-tag组件封装(v-model处理:信息修改)4.my-table组件封装(整个表格)①数据不能写死&…

三角形中任一边小于其余两边之和

在△ABC沿AC做等长BC的延长线CD ∵ B C C D ∵BCCD ∵BCCD ∴ A C B C A D , ∠ D ∠ C B D ∴ACBCAD,∠D∠CBD ∴ACBCAD,∠D∠CBD ∵ ∠ D < ∠ A B D ∵∠D<∠ABD ∵∠D<∠ABD ∴ A B < A D ∴AB<AD ∴AB<AD ∴ A B < A C B C ∴AB<ACBC ∴…

obsidian阅读pdf和文献——与zotero连用

参考&#xff1a; 【基于Obsidian的pdf阅读、标注&#xff0c;构建笔记思维导图&#xff0c;实现笔记标签化、碎片化&#xff0c;便于检索和跳转】 工作流&#xff1a;如何在Obsidian中阅读PDF - Eleven的文章 - 知乎 https://zhuanlan.zhihu.com/p/409627700 操作步骤 基于O…

IMXULL驱动学习——通过总线设备驱动模型点亮野火开发板小灯【参考韦东山老师教程】

参考&#xff1a;【IMX6ULL驱动开发学习】11.驱动设计之面向对象_分层思想&#xff08;学习设备树过渡部分&#xff09;-CSDN博客 韦东山课程&#xff1a;LED模板驱动程序的改造_总线设备驱动模型 我使用的开发板&#xff1a;野火imx6ull pro 欢迎大家一起讨论学习 实现了总线设…

5.Hive表修改Location,一次讲明白

Hive表修改Loction 一、Hive中修改Location语句二、方案1 删表重建1. 创建表&#xff0c;写错误的Location2. 查看Location3. 删表4. 创建表&#xff0c;写正确的Location5. 查看Location 三、方案2 直接修改Location并恢复数据1.建表&#xff0c;指定错误的Location&#xff0…

LeetCode---122双周赛

题目列表 3010. 将数组分成最小总代价的子数组 I 3011. 判断一个数组是否可以变为有序 3012. 通过操作使数组长度最小 3013. 将数组分成最小总代价的子数组 II 一、将数组分成最小总代价的子数组I 这道题纯纯阅读理解题&#xff0c;关键在于理解题意。注意&#xff1a;第一…

C#常见内存泄漏

背景 在开发中由于对语言特性不了解或经验不足或疏忽&#xff0c;往往会造成一些低级bug。而内存泄漏就是最常见的一个&#xff0c;这个问题在测试过程中&#xff0c;因为操作频次低&#xff0c;而不能完全被暴露出来&#xff1b;而在正式使用时&#xff0c;由于使用次数增加&…