首页 > 其他分享 >webRTC搭建:STUN 和 TURN 服务器 链接google的有点慢,是不是可以自己搭建

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

时间:2024-10-25 20:46:51浏览次数:3  
标签:google -- IP sudo TURN 服务器 STUN webRTC 搭建

如果使用 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 服务器是否正常工作:

总结

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

标签:google,--,IP,sudo,TURN,服务器,STUN,webRTC,搭建
From: https://blog.csdn.net/sunyuhua_keyboard/article/details/143230474

相关文章

  • WEBRTC教程:局域网怎么调试,http://172.19.18.101:8080 ,无法访问摄像头和麦克风,请检查
    在局域网中使用WebRTC时,无法访问摄像头和麦克风通常是因为浏览器的安全策略限制了getUserMediaAPI的使用。如果你在非localhost或非HTTPS环境下访问网页,浏览器会阻止访问摄像头和麦克风。解决方案在局域网中调试WebRTC时,你有几个选项来解决这个问题:1.使用lo......
  • 搭建YOLOv8实现裂缝缺陷识别全流程教程:从源码下载到模型测试
    教程目的:yolov8的安装配置到训练模型,并完成使用模型进行识别前提注意:yolov8要求Python需要版本必需大于等于3.10,我用的Python3.12.3,这里分享下Python3.12.3的安装器=>夸克网盘分享以及教程中用到的yolov8源码、权重文件、GPU配套版本的Torch=> 夸克网盘分享大致步骤1.......
  • 打造知识绿洲:盘点十款搭建知识库软件,助力企业成长
    在当今瞬息万变的商业环境中,知识的有效管理与分享已成为企业持续发展和创新的关键。构建一座企业内部的知识绿洲,不仅能够提升员工的工作效率,还能促进团队协作,增强企业的竞争力。为此,本文精选了十款功能强大、易于使用的知识库软件,其中包括备受瞩目的HelpLookAI知识库,旨在助......
  • 盘点十款搭建知识库软件,助力企业成长
    在当今瞬息万变的商业环境中,知识的有效管理与分享已成为企业持续发展和创新的关键。构建一座企业内部的知识绿洲,不仅能够提升员工的工作效率,还能促进团队协作,增强企业的竞争力。为此,本文精选了十款功能强大、易于使用的知识库软件,其中包括备受瞩目的HelpLookAI知识库,旨在助......
  • php+vscode+xdebug搭建php调试环境
    php.ini中加入===========================[xdebug]zend_extension=G:/phpstudy_pro/Extensions/php/php7.3.4nts/ext/php_xdebug.dllxdebug.mode=debugxdebug.start_with_request=yes====================================================vscode,launch.js文件"......
  • 搭建个人AI知识库:RAG与本地模型实践指南
    引言你是否想过拥有一个私人订制的AI助手,能够随时为你提供最个性化的信息?本文将带你一步步搭建一个基于本地模型和RAG技术的个人知识库。搭建本地模型环境os:archlinux内存:32gcpu:6核12线程python:3.12.7docker27.3.1+docker-compose向量库:milvus2.4.13+attu......
  • 需求池的搭建
     一、定义需求池是一个集中存放和管理产品需求的地方,所有与产品相关的需求,无论其来源或性质,都会被统一收集并放入需求池中。这个机制有助于产品经理或团队对所有需求进行统一管理和跟踪。二、需求来源客户:客户可能直接提出对产品的需求或改进建议。用户反馈:用户在使用产......
  • 01-计算机基本认知与环境搭建
    计算机基本认识Python基本介绍Python就是一门编程语言,而且是现在世界上最流行的编程语言之一。编程语言就是人类和计算机进行交流的语言,是用来定义计算机程序的形式语言。我们通过编程语言来编写程序代码,再通过语言处理程序执行向计算机发送指令,让计算机完成对应的工作。计......
  • 两台服务器(宝塔)配置Nginx负载搭建
    什么是负载均衡负载均衡就是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。一、准备两天服务器搭建好Nginx1、A服务192.168.0.1 B服务192.168.0.2注意了:宝塔Nginx负载必须有一个子......
  • 24全网最全comfyui工作流保姆级教程来啦!comfyui工作流搭建看这一篇就够了!
    前言一、SD主流UIStableDiffusion(SD)因为其开源特性,有着较高的受欢迎程度,并且基于SD的开源社区及教程、插件等,都是所有工具里最多的。基于SD,有不同的操作界面,可以理解为一个工具的不同客户端。WebUI和ComfyUI是两种较为流行的操作界面选项1.WebUI:优点:界面友好,插件丰......