Window下coturn服务器的搭建

news2025/7/14 2:51:16

Window下搭建coturn服务器:

准备材料:

1、安装Cygwin,地址:https://cygwin.com/install.html

由于Window无法直接部署coturn,因此需要下载安装Cygwin在Window上部署Linux虚拟环境。

在安装的时候需要安装几下packet:openssl-dev、gcc、libevent-devel、make(bin和source都要选择)。尤其是openssl和libevent这两个配置的时候需要使用必须添加正确才能正常生成Makefile。

2、下载coturn源码,地址:https://codeload.github.com/coturn/coturn/zip/4.5.0.4

安装步骤:
  1. 安装Cygwin的步骤网上有很多,除了需要选择几个packet之外,其他的没有需要特别注意的点,所以这里不在追叙。可以参考链接:Cygwin安装教程-CSDN博客
  2. 编译coturn源码
  • 2.1 Cygwin安装完整之后,打开Cygwin窗口,进入到coturn代码所在路径

  • 2.2 到coturn代码路径之后执行以下命令

./configure  //使用此命令更具configure生成makefile

此过程可能会遇到一下问题:

问题1:ERROR: OpenSSL Crypto development libraries are not installed properly in required location.

出现此问题是由于Cygwin中没有安装openssl,如果在编译之前添加了openssl应该不会出现此问题,如果添加了还出现此问题,建议再添加openssllib。

问题2:Libevent2 development libraries are not installed properly in required location.

出现此问题是由于在Cygwin中没有安装libevent,添加之后应该就会出现此问题。

  • 2.3 编译完成之后,会在coturn文件下生成Makefile文件。之后执行make
make//编译生成可以执行的文件

编辑完成如下图:

在这里插入图片描述

  • 2.4 编译完成之后会在文件夹下生成一下几个文件

在这里插入图片描述

之后使用make install 安装即可

make install

安装完成如下:

install -d sqlite
rm -rf sqlite/turndb
echo sqlite/turndb < turndb/schema.sql
sqlite/turndb
install -d /usr/local
install -d /usr/local/bin
install -d /usr/local/var/db
install -d /usr/local/man/man1
install -d /usr/local/etc
install -d /usr/local/lib
install -d /usr/local/share/examples/turnserver
install -d /usr/local/share/doc/turnserver
install -d /usr/local/share/turnserver
install -d /usr/local/include/turn
install -p bin/turnserver /usr/local/bin
install -p bin/turnadmin /usr/local/bin
install -p bin/turnutils_uclient /usr/local/bin
install -p bin/turnutils_peer /usr/local/bin
install -p bin/turnutils_stunclient /usr/local/bin
install -p bin/turnutils_oauth /usr/local/bin
install -p bin/turnutils_natdiscovery /usr/local/bin
install -p -m 0644 man/man1/turnserver.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnadmin.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils_uclient.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils_stunclient.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils_oauth.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils_natdiscovery.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils_peer.1 /usr/local/man/man1/
install -p -m 0644 man/man1/coturn.1 /usr/local/man/man1/
install -p lib/libturnclient.a /usr/local/lib
install -p LICENSE /usr/local/share/doc/turnserver
install -p README.turnserver /usr/local/share/doc/turnserver
install -p README.turnadmin /usr/local/share/doc/turnserver
install -p README.turnutils /usr/local/share/doc/turnserver
install -p INSTALL /usr/local/share/doc/turnserver
install -p postinstall.txt /usr/local/share/doc/turnserver
install -p turndb/schema.sql /usr/local/share/doc/turnserver
install -p turndb/schema.sql /usr/local/share/turnserver
install -p turndb/schema.mongo.sh /usr/local/share/doc/turnserver
install -p turndb/schema.mongo.sh /usr/local/share/turnserver
install -p turndb/testredisdbsetup.sh /usr/local/share/turnserver
install -p turndb/testmongosetup.sh /usr/local/share/turnserver
install -p turndb/testsqldbsetup.sql /usr/local/share/turnserver
install -p turndb/schema.userdb.redis /usr/local/share/doc/turnserver
install -p turndb/schema.userdb.redis /usr/local/share/turnserver
install -p turndb/schema.stats.redis /usr/local/share/doc/turnserver
install -p turndb/schema.stats.redis /usr/local/share/turnserver
if [ -f sqlite/turndb ] ; then install -p sqlite/turndb /usr/local/var/db/turndb; fi
install -p examples/etc/turnserver.conf /usr/local/etc/turnserver.conf.default
cp -rpf examples/etc /usr/local/share/examples/turnserver
cp -rpf examples/scripts /usr/local/share/examples/turnserver
rm -rf /usr/local/share/examples/turnserver/scripts/rfc5769.sh
cp -rpf include/turn/client /usr/local/include/turn
install -p include/turn/ns_turn_defs.h /usr/local/include/turn
cat /usr/local/share/doc/turnserver/postinstall.txt
See docs folder or go to https://github.com/coturn/coturn/docs/PostInstall.md

至此Window中coturn安装完成。

服务器配置:

1、切换目录到 /usr/local/etc 路径中,将turnserver.conf.default拷贝一份命名为turnserver.conf。

2、在turnserver.conf中添加一下配置

#与前ifconfig查到的网卡名称一致(如果无法运行ifconfig,可以在windows的cmd窗口中使用ipconfig,如果只有一块网卡,可以默认使用如下值)
relay-device=eth0
#内网IP(ipconfig查到的IP地址)
listening-ip=192.168.1.188
#公网IP(局域网可以使用与上面相同的ip地址)
external-ip=113.119.27.xx
#第1步创建的用户名密码,创建IceServer时用
user=your_username:your_password
#一般与turnadmin创建用户时指定的realm一致
realm=xxx.com
#端口号
listening-port=3478
#不开启会报CONFIG ERROR: Empty cli-password, and so telnet cli interface is disabled! Please set a non empty cli-password!错误
cli-password=qwerty
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem

至此将自己的信息对应填写之后配置结束。

启动服务:
 turnserver -o -a -f -c /usr/local/coturn/etc/turnserver.conf -r sdo.com 
检测:

打开一下网址,此网址是webRTC提供测试coturn服务器的网址:Trickle ICE (webrtc.github.io)

打开之后填写自己coturn服务器的配置文件信息,如下所示:

在这里插入图片描述

参考链接:

WebRTC之搭建coturn服务遇到的问题_k8s 部署webrtc服务coturn-CSDN博客

coTurn 运行在Windows平台的方法-CSDN博客

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

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

相关文章

Aigtek的ATA-7050高压放大器对比进口品牌TREK的609E-6

一、公司介绍 中国安泰&#xff1a;西安安泰电子科技有限公司是国内专业从事测量仪器研发生产和销售的高科技企业&#xff0c;公司依托西安交大、西北工业大学组建的科研团队&#xff0c;专注功率放大器、功率信号源等产品为核心的相关行业测试解决方案的研究&#xff0c;拥有国…

taro全局配置页面路由和tabBar页面跳转

有能力可以看官方文档&#xff1a;Taro 文档 页面路由配置&#xff0c;配置在app.config.ts里面的pages里&#xff1a; window用于设置小程序的状态栏、导航条、标题、窗口背景色&#xff0c;其配置项如下&#xff1a; tabBar配置&#xff1a;如果小程序是一个多 tab 应用&…

Node和Python遍历文件夹自动注入代码

需求是从文件夹中遍历检索多层级文件夹,找到其中文件取到上面namespace 后面的名称,在下面代码中自动注入动态代码: static displayName = "Test";下面使用node和python两种代码实现一下,方便对照学习 node代码 const fs = require(fs); const path = requir…

【算法|滑动窗口No.4】leetcode 485.最大连续 1 的个数 487.最大连续 1 的个数 II 1004. 最大连续1的个数 III

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

配置开启swap分区自定义大小

当前服务器swap分区是关闭状态&#xff0c;因服务需求需要开启swap分区 在 /data 目录下创建一个名为 swapfile 的文件&#xff0c;并将其大小设置为 8GB 注意这个操作占用的是/data目录的磁盘空间&#xff0c;要确保磁盘剩余空间大于设置的内存大小并且不影响磁盘空间的正常使…

10kb的WordPress外链页面安全跳转插件

老白博客我参照csdn和腾讯云的外链跳转页面&#xff0c;写了一个WordPress外链安全跳转插件&#xff1a;给网站所有第三方链接添加nofollow标签和重定向功能&#xff0c;提高网站安全性。插件包括两个样式&#xff0c;由于涉及到的css不太一样&#xff0c;所以分别写了两个版本…

测试从外包到自研再到大厂,这5年鬼知道我是怎么过来的

18岁那年我背井离乡来到从来没有来过的郑州。在一所普通的二本院校里学网络工程。 很明显&#xff0c;在大学以前只会用电脑开关机打LOL的我恍然间只觉得自己来到了人间天堂&#xff0c;没有人管&#xff0c;也没有任何烦恼无忧无虑的过了三年大学生涯。 直到秋招的开始&…

家政保洁团队服务预约小程序的效果如何

家政保洁可以是大公司也可以是小团队&#xff0c;但无论什么规格&#xff0c;其市场需求都是稳中有增&#xff0c;随着人们生活品质提升&#xff0c;其对居住环境/办公环境等都有一定要求&#xff0c;这意味着家政团队可以拓展同城乃至外地多个领域的生意。 但线下信息单一&am…

Python的web自动化学习(六)Selenium第一个网页操作

引言&#xff1a; 前面我们系统的介绍了一个各种selenium的工作原理、环境配置与准备、各种元素定位的方法&#xff0c;现在让我们一起来实践吧&#xff0c;以哔哩哔哩登录为例子说明&#xff1a; Selenium自动登录B站&#xff08;通过QQ登录&#xff09; 为什么使用qq登录&…

nodejs升级或降级

node有一个模块叫n&#xff0c;是专门用来管理node.js的版本。 升级或降级步骤 1 、安装n模块 npm install -g n 2、 升级node.js到最新稳定版 n stable Ps: n后面也可以跟随版本号&#xff08;用于升级或降级&#xff09;比如&#xff1a; n v16.12.0

白银期货投资指南,轻松搞定白银投资

在今天的金融市场中&#xff0c;白银已成为备受瞩目的投资选择。不仅如此&#xff0c;白银还是避险资产的首选之一&#xff0c;兼具保值和增值的潜力。万洲金业将为您提供一份白银期货投资指南&#xff0c;让您轻松了解白银投资&#xff0c;助力在白银交易市场获得潜在收益。 …

uniapp的启动页、开屏广告

uniapp的启动页、开屏广告 启动页配置广告开屏 启动页配置 在manifest.json文件中找到APP启动界面配置&#xff0c;可以看到有Android和iOS的启动页面的配置 &#xff0c;选择自定义启动图即可配置 广告开屏 在pages中新建一个广告开屏文件并在pases.json的最顶部配置这个页…

嵌入式应用选择正确的系统设计方法:第三部分

产品质量低下的原因有很多&#xff0c;例如&#xff0c;产品制造粗糙&#xff0c;组件设计不当&#xff0c;架构不佳以及对产品的要求了解不多。点击领取嵌入式物联网学习路线 必须设计质量。 您不能测试出足够的错误来交付高质量的产品。的质量保证&#xff08;QA&#xff09…

Collectors.toMap报错:空指针 key重复

Java 8中的stream在项目开发中被同学们用的风生水起&#xff0c;当然大家也踩了不少坑。下面我就来说说Collections.toMap在项目使用中踩的坑&#xff0c;避免大家重复被坑。 一.介绍Collectors.toMap Collectors.toMap 是 Java 8 中的一个收集器&#xff0c;它可以将流中的元…

ArrayList简介及使用全方位手把手教学(带源码),用ArrayList实现洗牌算法,3个人轮流拿牌(带全部源码)

&#x1f9f8;欢迎来到dream_ready的博客&#xff0c;&#x1f4dc;相信你对这篇博客也感兴趣o (ˉ▽ˉ&#xff1b;) &#x1f4dc;数据结构 —— Java自定义代码实现顺序表&#xff0c;包含测试用例以及ArrayList的使用以及相关算法题(带完整源码) 目录 ArrayList简介 Arra…

Spring Security 6.1.x 系列(2)—— 基于过滤器的基础原理(一)

一、过滤器 Spring Security 的 Servlet 支持基于 Servlet 过滤器&#xff0c;因此首先了解过滤器的作用会很有帮助。 下图为单个 HTTP 请求的处理程序的典型分层。 客户端向应用程序发送一个请求&#xff0c;运行容器创建一个FilterChain&#xff08;过滤链&#xff09;&…

Thinkphp6项目在虚拟机无法指向pulic的目录访问的方法

以阿里云虚拟主机为例&#xff0c;服务器环境为 LAMP&#xff0c;Apache2.4 php7.2 mysql5.7 1.根目录新建 index.php 文件&#xff0c;将以下内容放入文件中 <?php include ./public/index.php;2.将 public 目录下的 admin.php、backend 文件夹、static 文件夹、tinymc…

UWB 技术在机器人和移动领域的应用题】

多年来&#xff0c;机器人生态系统不断增长&#xff0c;不同的应用程序也在不断增长。如今&#xff0c;机器人出现在许多不同的领域&#xff0c;例如私人家庭、商业场所、仓库和医疗场所。他们要么自主工作&#xff0c;要么与我们并肩工作&#xff0c;帮助我们完成任务。 根据…

Web APIs——日期对象的使用

1、日期对象 日期对象&#xff1a;用来表示时间的对象 作用&#xff1a;可以得到当前系统时间 1.1实例化 在代码中发现了new关键字时&#xff0c;一般将这个操作称为实例化 创建一个时间对象并获取时间 获得当前时间 const date new Date() <script>// 实例化 new //…

R语言的DICE模型实践技术

随着温室气体排放量的增大和温室效应的增强&#xff0c;全球气候变化问题受到日益的关注。我国政府庄严承诺在2030和2060年分别达到“碳达峰”和“碳中和”&#xff0c;因此气候变化和碳排放已经成为科研人员重点关心的问题之一。气候变化问题不仅仅是科学的问题&#xff0c;同…