webRTC搭建:STUN 和 TURN 服务器 链接google的有点慢,是不是可以自己搭建

如果使用 Google 提供的 STUN/TURN 服务器速度较慢,你完全可以自己搭建 STUN 和 TURN 服务器。这有助于提升网络连接速度和稳定性,特别是在需要穿透 NAT 或防火墙的网络环境下。

下面是如何自己搭建 STUN 和 TURN 服务器的具体步骤:

1. 选择 TURN/STUN 服务器软件

推荐使用 Coturn,这是一个开源且功能强大的 STUN 和 TURN 服务器。Coturn 支持完整的 STUN、TURN 和 Relay 功能,适用于 WebRTC 应用。

2. 安装 Coturn

在 Ubuntu/Debian 上安装

打开终端,使用以下命令安装 Coturn:

sudo apt update
sudo apt install coturn
在 CentOS 上安装

使用以下命令安装 Coturn:

sudo yum install epel-release
sudo yum install coturn

3. 配置 Coturn 服务器

安装完成后,需要配置 Coturn。配置文件通常位于 /etc/turnserver.conf/etc/coturn/turnserver.conf

编辑配置文件

使用文本编辑器编辑配置文件:

sudo nano /etc/turnserver.conf
配置文件示例

你可以根据自己的需求配置 Coturn,以下是一个基本的配置示例:

# 监听的端口,默认是 3478
listening-port=3478# 如果需要启用 TLS,请启用 5349 端口
# tls-listening-port=5349# 服务器公网 IP 地址
external-ip=YOUR_PUBLIC_IP# STUN 服务
fingerprint
lt-cred-mech# TURN 认证(使用用户名和密码)
user=exampleuser:examplepassword# Realm(一个标识符,可以随便设置)
realm=example.com# 使用 long-term credentials
lt-cred-mech# 如果要记录日志,请取消注释
# log-file=/var/log/turnserver/turnserver.log
# simple-log# 设置中继服务器的网络接口
relay-ip=YOUR_PUBLIC_IP# 设置服务器的最大并发连接数
max-bps=0# 设置监听的 IP 地址
listening-ip=0.0.0.0# 使用身份验证时使用的密钥
# static-auth-secret=YOUR_SECRET_KEY

YOUR_PUBLIC_IP 替换为服务器的公网 IP 地址,将 exampleuserexamplepassword 替换为你自己的用户名和密码。

启用服务并设置开机启动

编辑好配置文件后,保存并退出编辑器。然后启用 Coturn 服务并设置为开机启动:

sudo systemctl enable coturn
sudo systemctl start coturn

4. 防火墙配置

确保服务器的防火墙允许 STUN 和 TURN 相关的端口(通常是 34785349)。使用以下命令打开这些端口:

在 Ubuntu 使用 UFW
sudo ufw allow 3478/tcp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp
sudo ufw allow 5349/udp
在 CentOS 使用 FirewallD
sudo firewall-cmd --zone=public --add-port=3478/tcp --permanent
sudo firewall-cmd --zone=public --add-port=3478/udp --permanent
sudo firewall-cmd --zone=public --add-port=5349/tcp --permanent
sudo firewall-cmd --zone=public --add-port=5349/udp --permanent
sudo firewall-cmd --reload

5. 测试 Coturn 服务器

配置完成后,可以在 WebRTC 应用中测试新搭建的 STUN/TURN 服务器。将 WebRTC 连接配置中的 STUN/TURN 服务器 URL 修改为你自己的服务器 IP 地址:

const configuration = {iceServers: [{ urls: 'stun:YOUR_SERVER_IP:3478' },{ urls: 'turn:YOUR_SERVER_IP:3478',username: 'exampleuser',credential: 'examplepassword'}]
};

YOUR_SERVER_IP 替换为你的服务器的公网 IP,exampleuserexamplepassword 替换为配置文件中的用户名和密码。

6. Coturn 服务器常见配置说明

  • listening-port: 默认监听的端口是 3478,TURN 协议的标准端口。
  • tls-listening-port: 启用安全的 TLS 连接时的端口,默认是 5349。
  • user: 设置用户名和密码来控制访问。
  • realm: 这是一个标识符,可以是你的域名,用于身份验证。
  • external-ip: 服务器的公网 IP,尤其在服务器有内网 IP 时,需要手动指定公网 IP。
  • fingerprint: WebRTC 使用的一种安全标识。
  • lt-cred-mech: 开启长效凭证机制,用于身份验证。

7. 其他调试工具

  • 可以使用 trickle ICE 这个在线工具测试你搭建的 STUN/TURN 服务器是否正常工作:
    • Trickle ICE

总结

搭建自己的 STUN/TURN 服务器不仅能提升性能,还可以让你完全掌控网络连接配置,避免第三方服务器速度不稳定的影响。Coturn 是目前最流行的选择,使用起来也非常简单。搭建成功后,你可以随时调整配置,适应不同的网络需求。

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

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

相关文章

nrm的使用

在安装nrm之前,要先完成node.js的安装。 1、nrm的介绍 ‌nrm(npm registry manager)是一个npm源管理器,允许用户在不同npm源之间快速切换。 关于npm和nvm的介绍,详见文章nvm的使用-CSDN博客。 解释:比如…

芯片上音频相关的验证

通常芯片设计公司(比如QUALCOMM)把芯片设计好后交由芯片制造商(比如台积电)去生产,俗称流片。芯片设计公司由ASIC部门负责设计芯片。ASIC设计的芯片只有经过充分的验证(这里说的验证是FPGA(现场…

SpringBoot最常用的注解

1、RestController 作用:与Controller类似,但是RestController会自动将返回值转换为JSON格式。 2、RequestMapping 作用:用于映射请求URL和处理方法。 RequestMapping是Spring MVC框架中的一个核心注解,它用于映射HTTP请求和控…

【论文分享】通过太阳轨迹和街景图像测量不同街道网络方向的太阳辐射及其时空分布

本次我们给大家带来一篇SCI论文的全文翻译。该论文利用街景数据和太阳轨迹模拟技术,揭示了不同方向街道上的太阳辐射在时空上的差异,为城市的可持续发展提供了更有针对性的策略。 【论文题目】 Measuring solar radiation and spatio-temporal distrib…

彩色圆形检测函数不使用OpenCV——C语言代码

1. 基于RGB颜色空间检测BMP图像中的红色和绿色圆形 以检测红色和绿色为例,标准的红色满足R=255,G=0,B为0,标准的绿色满足R=0,G=255,B为0,但实际拍摄的图像会存在偏差,此外,不同的红色/绿色有不同的R G B值,为了检测出所有的彩色圆形,将所有红色/绿色合计,取极限值…

基于springboot+vue实现的公考知识学习平台 (源码+L文+ppt)4-103

4.1 系统功能结构设计 根据对公考知识学习平台的具体需求分析,把系统可以划分为几个不同的功能模块:管理员可以对系统首页、个人中心、用户管理、讲师管理、在线咨询管理、学习资料管理、讲座信息管理、讲座预约管理、学习论坛、练习自测管理、试题管理…

使用CMake实现构建OpenCL程序

最近在研究如何使用使用CMake实现构建OpenCL程序,还是以数组加法为例子。该应用程序的CMake构建脚本将其构建为ISO C11应用程序,并打开了最合理的编译器警告,其CMakeLists.txt下: cmake_minimum_required(VERSION 3.10) # 3.10 &…

LabVIEW程序员的真实工作状态是怎样的?

LabVIEW程序员的工作状态通常涉及以下几个方面: 1. 项目开发与设计 需求分析:与客户或团队成员沟通,明确项目需求,制定开发计划。 系统设计:根据需求进行系统架构设计,包括硬件选型和软件模块划分。 2.…

Ubuntu18升级cmake3.10到cmake3.18

1、下载cmake版本3.18 wget -O cmake-3.18.2.tar.gz https://github.com/Kitware/CMake/releases/download/v3.18.2/cmake-3.18.2.tar.gz 2、解压cmake tar zxvf cmake-3.18.2.tar.gz 3、进入cmake进行编译 cd cmake-3.18.2 4、配置cmake ./bootstrap 5、make make 6…

搜索引擎算法更新对网站优化的影响与应对策略

内容概要 随着互联网的不断发展,搜索引擎算法也在不断地进行更新和优化。了解这些算法更新的背景与意义,对于网站管理者和优化人员而言,具有重要的指导意义。不仅因为算法更新可能影响到网站的排名,还因为这些变化也可能为网站带…

安装中文版 Matlab R2022a

下载安装包 压缩包有点大,大概20G 百度网盘:下载链接 提取码:rmja 安装 解压后打开目录,右键以管理员身份运行 setup.exe 选择输入安装秘钥 输入秘钥: 50874-33247-14209-37962-45495-25133-28159-33348-18070-6088…

互联网大厂最全Java面试题及答案整理(2024最新版)

很多 Java 工程师的技术不错,但是一面试就头疼,10 次面试 9 次都是被刷,过的那次还是去了家不知名的小公司。 问题就在于:面试有技巧,而你不会把自己的能力表达给面试官。 应届生:你该如何准备简历&#…

[Nginx]快速入门

Nginx概述 介绍 Nginx是一款轻量级的web 服务器/ 反向代理服务器/ 电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好 中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、…

坚持使用kimi搭建小程序2小时(04天/05天)

运用好kimi智能助手里面的存储小程序,{缺乏一个相对稳定的反馈体系,自己所挑选的稳定反馈体系就是编程!} 开源竞争: 当你无法彻底掌握一门技术的时候,就开源这门技术,培养出更多的技术依赖,让更多人完善你…

免费流程图制作工具 draw.io v24.5.3 中文绿色版

draw.io是一款免费的在线图表绘制工具,它提供了强大的功能和易于使用的界面,适用于各种绘图需求。 详细功能 多种类型的图表:draw.io支持创建各种类型的图表,包括流程图、组织结构图、UML图、网络拓扑图、平面图等。自定义图表元…

《计算机网络》期末复习资料

《计算机网络》考前必看资料 各章节重点内容 1.网络体系结构:分层、协议、服务、OSI与TCP模型层次及特点对比。 2.物理层:通信基础知识,信道复用技术。 3.数据链路层:物理链路与数据链路的区…

NVR小程序接入平台/设备EasyNVR多个NVR同时管理多平台级联与上下级对接的高效应用

政务数据共享平台的建设正致力于消除“信息孤岛”现象,打破“数据烟囱”,实现国家、省、市及区县数据的全面对接与共享。省市平台的“级联对接”工作由多级平台共同构成,旨在满足跨部门、跨层级及跨省数据共享的需求,推动数据流通…

Axure PR 9 多级下拉清除选择器 设计交互

大家好,我是大明同学。 Axure选择器是一种在交互设计中常用的组件,这期内容,我们来探讨Axure中选择器设计与交互技巧。 OK,这期内容正式开始 下拉列表选择输入框元件 创建选择输入框所需的元件 1.在元件库中拖出一个矩形元件。…

2024年10月实测安装支持 winxp的最后一个python版本 2.7.18 和python 3.4.4版本,你觉得还能正常安装吗?

各位粉丝朋友们,大家好!在编程的世界里,有时候特定的业务需求会让我们不得不使用老版本的软件。Python 目前支持 Windows XP 的最后一个版本为 Python 2.7.18。由于官网下载可能会比较耗时,为了方便大家,我将这个版本上…

省级- 可持续性再生能源消纳量(2015-2022年)

非水电可再生能源电力消纳量,作为衡量一个地区可再生能源利用程度的关键指标,正受到越来越多的关注。 非水电可再生能源电力消纳量指的是在一定时间内,除了水力发电之外的其他可再生能源(如太阳能、风能、生物质能等)…