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

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=5349min-port=49152
max-port=65535fingerprint
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.mzph.cn/news/648294.shtml

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

相关文章

【Docker】实战案例 - CI/CD

作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! CI/CD 持续集成(Continuous integration) 是一种软件开发实践,每次集成都通过自动化的构建(包括编译,发…

openssl3.2/test/certs - 072 - EE SHA256

文章目录 openssl3.2/test/certs - 072 - EE SHA256概述笔记END openssl3.2/test/certs - 072 - EE SHA256 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 /*! * \file D:\my_dev\my_local_git_prj\study\openSSL\test_certs\072\my_openssl_linux_doc_072.txt * \n…

Java项目:SSM框架基于spring+springmvc+mybatis实现的心理预约咨询管理系统(ssm+B/S架构+源码+数据库+毕业论文)

一、项目简介 本项目是一套ssm823基于SSM框架的心理预约咨询管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试&am…

车用OS赛道研究:10%渗透率拐点,中国本土供应商突围策略

车用OS赛道当前正站在发展节点上,国内玩家也正基于现实情况进行突围。 智驾、座舱域控渗透率均处于快速增长期的拐点(以10%渗透率界)。高工智能汽车研究院监测数据显示,2023年1-9月,国内(不含进出口&#…

【软件测试】学习笔记-构建并执行 JMeter 脚本的正确姿势

有些团队在组建之初往往并没有配置性能测试人员,后来随着公司业务体量的上升,开始有了性能测试的需求,很多公司为了节约成本会在业务测试团队里选一些技术能力不错的同学进行性能测试,但这些同学也是摸着石头过河。他们会去网上寻…

leetcode560和为k的子数组

class Solution { public:int subarraySum(vector<int>& nums, int k) {unordered_map<int,int>mp;mp[0]1;int count0,pre0;for(auto& x:nums){prex;if(mp.find(pre-k)!mp.end()){countmp[pre-k];}mp[pre];}return count;} }; 一个超级好的思路&#xff0…

Ubuntu 下进行系统备份与迁移

经常一个项目做到一半&#xff0c;结果系统崩溃了&#xff0c;每次都得重装系统&#xff0c;因此&#xff0c;就在想怎么才能够直接在ubuntu系统备份现有的系统呢?找了很多教程&#xff0c;发现都需要安装软件&#xff0c;这些方法都比较复杂&#xff0c;后来终于找到一种简单…

C++提高编程——STL:deque容器、stack容器和queue容器

本专栏记录C学习过程包括C基础以及数据结构和算法&#xff0c;其中第一部分计划时间一个月&#xff0c;主要跟着黑马视频教程&#xff0c;学习路线如下&#xff0c;不定时更新&#xff0c;欢迎关注。 当前章节处于&#xff1a; ---------第1阶段-C基础入门 ---------第2阶段实战…

C++实用教程(四):面向对象核心多态 笔记

推荐B站视频&#xff1a;C现代实用教程(四):面向对象核心多态_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV15v4y1M7fF/?spm_id_from333.999.0.0&vd_sourcea934d7fc6f47698a29dac90a922ba5a3 本项目通用的tasks.json文件和launch.json tasks.json {"versi…

git常见命令

1、常用命令记录 1&#xff09;切换分支 git checkout 分支名2&#xff09;查看分支 查看远程分支 git branch -r 查看所有分支包括本地分支和远程分支 git branch -a3&#xff09;合并分支 git merge 来源分支4&#xff09;删除分支 删除本地分支&#xff1a;git branch …

让B端管理软件既美观又实用的解决方案来了

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验&#xff01;希望我的分享能帮助到您&#xff01;如需帮助可以评论关注私信我们一起探讨&#xff01;致敬感谢感恩&#xff01; 让B端管理软件既美观又实用的解决方案来了 在当今数字化时代&#xff0c;B端管理软件已…

解密神经网络:深入探究传播机制与学习过程

解密神经网络&#xff1a;深入探究传播机制与学习过程 文章目录 解密神经网络&#xff1a;深入探究传播机制与学习过程一、引言二、基础理论1. 人工神经元&#xff1a;构建块的定义2. 神经网络的结构3. 激活函数的作用 三、前向传播1. 数据流动&#xff1a;输入到输出2. 加权和…

安泰ATA-4014高压功率放大器在超声马达驱动电路设计中的应用

本文将与大家分享&#xff0c;ATA-4014高压功率放大器在超声马达驱动电路设计和制作中的应用&#xff0c;希望能对各位工程师有所帮助与启发。 1引言 超声波马达又称超声电机(ultrasonicmotor&#xff0c;简称USM)20世纪80年代才诞生的一种全新概念电机种类.超声电机采用与传统…

Linux之buildroot

Buildroot 是用于生成嵌入式Linux系统的完整构建工具链和环境。 Buildroot 通过自动化编译过程&#xff0c;可以帮助你从零开始构建一个自定义的、优化的嵌入式Linux系统&#xff0c;该系统通常包括以下几个关键部分&#xff1a; 交叉编译工具链&#xff1a;Buildroot会自动构建…

网络端口与 IP 地址有什么区别?

网络端口和IP地址是计算机网络中两个非常重要的概念&#xff0c;它们在实现网络通信和数据传输中扮演着不同的角色。 IP地址 IP地址&#xff08;Internet Protocol Address&#xff09;是用于标识网络上设备的唯一地址。它是一个由数字组成的标识符&#xff0c;用于在网络中准…

华为AC+FIT AP组网配置

AC配置 vlan batch 100 to 101dhcp enableip pool apgateway-list 192.168.100.254 network 192.168.100.0 mask 255.255.255.0 interface Vlanif100ip address 192.168.100.254 255.255.255.0dhcp select globalinterface GigabitEthernet0/0/1port link-type trunkport trun…

马尔可夫预测(Python)

马尔科夫链&#xff08;Markov Chains&#xff09; 从一个例子入手&#xff1a;假设某餐厅有A&#xff0c;B&#xff0c;C三种套餐供应&#xff0c;每天只会是这三种中的一种&#xff0c;而具体是哪一种&#xff0c;仅取决于昨天供应的哪一种&#xff0c;换言之&#…

2024年会是大牛市吗?我有500万想找个证券公司开融资融券账户,哪家券商两融利率最低?

2024年是否会迎来大牛市&#xff0c;这是一个颇具争议的话题。然而&#xff0c;无论市场走势如何&#xff0c;对于有500万的投资者来说&#xff0c;开立一个融资融券账户确实是一个不错的选择。在选择券商时&#xff0c;除了考虑两融利率外&#xff0c;投资者还应该关注券商的服…

10. UE5 RPG使用GameEffect创建血瓶修改角色属性

前面我们通过代码实现了UI显示角色的血量和蓝量&#xff0c;并实现了初始化和在数值变动时实时更新。为了测试方便&#xff0c;没有使用GameEffect去修改角色的属性&#xff0c;而是通过代码直接修改的数值。 对于GameEffect的基础&#xff0c;这里不再讲解&#xff0c;如果需要…

5.列表选择弹窗(BottomListPopup)

愿你出走半生,归来仍是少年&#xff01; 环境&#xff1a;.NET 7、MAUI 从底部弹出的列表选择弹窗。 1.布局 <?xml version"1.0" encoding"utf-8" ?> <toolkit:Popup xmlns"http://schemas.microsoft.com/dotnet/2021/maui"xmlns…