Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TRTC web端内网环境怎么设置代理?

TRTC web端内网环境怎么设置代理?

原创
作者头像
超级佩奇
修改于 2021-09-07 09:12:36
修改于 2021-09-07 09:12:36
5K1
举报
文章被收录于专栏:内网环境内网环境

TRTC web端内网环境怎么设置代理?

可采用Nginx+coturn 代理方案

方案名

适用场景

网络要求

方案一

允许客户端访问特定的外网代理服务器

允许客户端访问外网的proxy s erver

方案二

允许客户端通过内网代理服务器访问外网

允许 proxy server 访问外网

方案一示意图

image.png
image.png

方案二示意图

image.png
image.png

说明:

1.两种方案使用相同的 trtc.js 设置代理方法;

2.两种方案服务器的部署方式有差别,参考部署方案(方案 1方案 2);

3.示意图 Nginx 服务器用于信令代理(websocket);

4.示意图 TURN 服务器用于音视频数据代理(RTCPeerconnection)。

trtc.js 设置代理的接口

通过 Client 中的方法设置代理服务器地址(示例):

代码语言:txt
AI代码解释
复制
client.setProxyServer('wss://proxy.example.com:443'); 
client.setTurnServer({ url: '192.168.0.110:3478', username: 'bob', credential: 'bobspassword', credentialType: 'password' }); 

接口参数及说明可参见文档

setProxyServer(url)

  • 设置代理服务器
  • 该方法适用于企业自己部署代理服务器,如 ngnix+coturn 方案。 Note: 该方法需要在 join() 之前调用。

Name

Type

Description

url

string

websocket 代理服务器地址,格式如:‘wss://proxy.example.com:443’

setTurnServer(config)

  • 设置 TURN 服务器
  • 该方法配合 setProxyServer() 使用,适用于企业自己部署代理服务器和 TURN 中转。 Note: 该方法需要在 join() 之前调用。

Name

Type

Description

config

object

TURN 服务器配置项

config 属性说明:

Name

Type

Attrbutes

Description

url

string

TURN 服务器地址

username

string

<optiona>

TURN 服务器验证用户名

credential

string

<optiona>

TURN 服务器验证密码

credentialType

string

<optional>

TURN 服务器验证密码类型,默认是 ‘password’ credentialType 参考

实际示例:

代码语言:txt
AI代码解释
复制
const client = TRTC.createClient({ 
mode: 'videoCall', 
sdkAppId, 
userId, 
userSig 
}); 
 
client.setProxyServer('wss://proxy.example.com:443'); 
client.setTurnServer({ url: '192.168.0.110:3478', username: 'bob', 
credential: 'bobspassword', credentialType: 'password' }); 

client 
 .join({ roomId }) 
 .catch(error => { 
console.error('进房失败 ' + error); 
}) 
.then(() => { 
console.log('进房成功'); 
 }); 

说明:

1.在受限网络场景下,trtc.js 通过 Nginx 代理服务器与 TRTC 云端建立连接进行信令

交互;

2.在受限网络场景下,trtc.js 通过 TURN 服务器对音视频数据进行中转,与 TRTC 云

端进行音视频数据交互;

3.TURN 服务器的均衡,可以通过设置一组 TURN 服务器的地址,trtc.js 会在内部进

行随机选择,避免同一台服务器压力过大。

代理服务器部署方案

TRTC 提供开源代理服务器安装脚本,企业用户按下面方法部署代理服务器。具体步骤如

下:

方案一

1.部署 Nginx 服务器

参考 Nginx 服务器安装教程 在 CentOSUbuntu 系统中安装 Nginx,如果企业已有部

署 Nginx 服务,可以不用部署直接进行配置。

2.配置 Nginx 服务器
代码语言:txt
AI代码解释
复制
vi /etc/nginx/nginx.conf 
server { 
#对应参数 signalProxy 中的域名 proxy.trtcapi.com 
server_name proxy.trtcapi.com; 
#对应参数 signalProxy 中的端口 443 
listen 443; 

ssl on; 

location /ws/ { #对应参数 signalProxy 中的"ws" 
proxy_pass https://qcloud.rtc.qq.com:8687/; # TRTC 的服务器 
proxy_http_version 1.1; 
proxy_set_header Upgrade $http_upgrade; 
proxy_set_header Connection "upgrade"; 
} 

#域名对应的 SSL 证书,HTTPS 用,用户自行申请 
ssl_certificate ./crt/1_proxy.trtcapi.com_bundle.crt; 
ssl_certificate_key ./crt/2_proxy.trtcapi.com.key; 
} 
3.执行重新加载 Nginx
代码语言:txt
AI代码解释
复制
sudo nginx -s reload
4.部署 TURN 服务器

建议在 CentOSUbuntu 上安装部署 coturn。

5.TURN 服务器配置( /etc/turnserver.conf )
代码语言:txt
AI代码解释
复制
vi /etc/turnserver.conf 
//#指定中转服务器监听端口 
listening-port=3478 

//#本机的 ip 
listening-ip=172.27.0.13 

//#在外网的 ip 地址 
external-ip=148.70.115.45 

//#可以分配给客户端连接使用最小端口和最大端口 
min-port=59900 
max-port=60000 
 
//#面向内网客户端的用户名和密码 
user=myname:12345678 

//#服务名称 
server-name=tencent_webrtc 
realm=tencent_webrtc 

//#证书生成参考下面说明 
cert=../etc/turnserver/turn_server_cert.pem 
pkey=../etc/turnserver/turn_server_pkey.pem 

//#处理数据中转的线程个数 
relay-threads=10 

simple-log 
fingerprint 
lt-cred-mech 
no-loopback-peers 
no-multicast-peers 
no-tcp 
no-tls 
no-cli 
no-tlsv1 
no-tlsv1_1 
mobility
6.启动 TURN 服务
代码语言:txt
AI代码解释
复制
turnserver -c /etc/turnserver.conf
7.服务器端口开启

打开 turn 服务器的 3478 和( min-port ~ max-port )之间端口

8.公司防火墙设置

确认公司防火墙对部署的 nginx 和 TURN 服务器 IP 限制访问解除。

方案二

1.部署 Nginx 服务器(同方案一)
2.配置 Nginx 服务器(同方案一)
3.执行重新加载 nginx(同方案一)
4.部署 TURN 服务器(同方案一)
5.TURN 服务器配置( /etc/turnserver.conf )

和方案一区别:在 external-ip 上填服务器在内网的地址。

代码语言:txt
AI代码解释
复制
//#指定中转服务器监听端口 
listening-port=3478 

//#本机的 ip 
listening-ip=172.27.0.13 
 
//#服务器在内网的 ip 
external-ip=148.70.115.45 

//#可以分配给客户端连接使用最小端口和最大端口 
min-port=59000 
max-port=60000 

//#面向内网客户端的用户名和密码 
user=myname:12345678 

//#服务名称 
server-name=tencent_webrtc19. realm=tencent_webrtc 

//#证书生成参考说明 
cert=../etc/turnserver/turn_server_cert.pem 
pkey=../etc/turnserver/turn_server_pkey.pem 

//#处理数据中转的线程个数 
relay-threads=10 

simple-log 
fingerprint 
lt-cred-mech 
no-loopback-peers 
no-multicast-peers 
no-tcp 
no-tls 
no-cli 
no-tlsv1 
no-tlsv1_1 
mobility
6.启动服务(turnserver.conf)
代码语言:txt
AI代码解释
复制
turnserver -c /etc/turnserver.conf
7.turn 服务器端口开启

打开 turn 服务器的 3478 和(min-port - max-port)之间端口。

8.公司防火墙设置

确认内网部署的 Nginx 和 TURN 服务器,可以访问外网。

确认内网部署的 Nginx 和 TURN 服务器,可以访问外网。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
大佬,按照你的这个教程就可以在内网环境和外网环境都是用TRTC了吗
大佬,按照你的这个教程就可以在内网环境和外网环境都是用TRTC了吗
回复回复点赞举报
推荐阅读
Coturn穿透服务器搭建
yum -y install libevent-devel openssl-devel 1.1下载编译安装coturn git clone https://github.com/coturn/coturn cd coturn ./configure --prefix=/usr/local/coturn make install 1.2查看是否安装成功 which turnserver 1.3配置文件 安装目录位于/usr/local/coturn cd /usr/local/coturn/etc/ c
Yuou
2022/09/26
2K0
【开发日记】coturn服务器搭建,用于搭建音视频通话等WebRTC应用
coturn是一个开源的 TURN (Traversal Using Relays around NAT) 服务器,是搭建WebRTC应用的首选。
全栈开发日记
2025/01/19
8330
【开发日记】coturn服务器搭建,用于搭建音视频通话等WebRTC应用
WERTC-在Ubuntu中搭建ICE服务器
拷贝 pem 秘钥文件 将 *.pem 秘钥文件也拷贝到 /etc/turnserver/ 目录下
全栈程序员站长
2022/08/12
1.3K0
WERTC-在Ubuntu中搭建ICE服务器
webRTC: 基于coturn项目的stun/turn服务器搭建
webrtc是google推出的基于浏览器的实时语音-视频通讯架构。其典型的应用场景为:浏览器之间端到端(p2p)实时视频对话,但由于网络环境的复杂性(比如:路由器/交换机/防火墙等),浏览器与浏览器很多时候无法建立p2p连接,只能通过公网上的中继服务器(也就是所谓的turn服务器)中转。
用户5640963
2020/10/26
8.1K0
webRTC: 基于coturn项目的stun/turn服务器搭建
一文带你了解webrtc基本原理(动手实现1v1视频通话)
webrtc (Web Real-Time Communications) 是一个实时通讯技术,也是实时音视频技术的标准和框架。 大白话讲,webrtc是一个集大成的实时音视频技术集,包含了各种客户端api、音视频编/解码lib、流媒体传输协议、回声消除、安全传输等。 对于开发者来说可以借助webrtc非常方便的实现低延时视频通话能力。 现在主流的直播系统、会议系统基本都是基于webrtc来实现。
王清培
2022/09/20
5.9K0
一文带你了解webrtc基本原理(动手实现1v1视频通话)
WebRTC之ICE服务器coturn安装及部署
配置说明:https://github.com/coturn/coturn/wiki/CoturnConfig
全栈程序员站长
2022/06/29
4.2K0
WebRTC之ICE服务器coturn安装及部署
coturn 搭建 stun turn 服务器
STUN,首先在RFC3489中定义,作为一个完整的NAT穿透解决方案,英文全称是Simple Traversal of UDP Through NATs,即简单的用UDP穿透NAT。
全栈程序员站长
2022/09/13
3K0
coturn 搭建 stun turn 服务器
Webrtc介绍
https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
码客说
2022/06/19
1.5K0
Webrtc介绍
WebRTC代理,turnserver+nginx部署安装实践
yum install -y openssl-devel libevent libevent-devel mysql-devel mysql-server
Tomas7571
2021/05/21
5.5K1
WebRTC代理,turnserver+nginx部署安装实践
在Ubuntu上部署一个基于webrtc的多人视频聊天服务
最近研究webrtc视频直播技术,网上找了些教程最终都不太能顺利跑起来的,可能是文章写的比较老,使用的一些开源组件已经更新了,有些配置已经不太一样了,所以按照以前的步骤会有问题。折腾了一阵终于跑起来了,记录一下。
MJ.Zhou
2020/03/19
1.3K0
AppRTC(WebRTC)服务器搭建
最近研究了几天 appr.tc 服务器的搭建,主要目的是想在本地搭建一套 webrtc 服务器环境,可以做一些webrtc相关的实验。
音视频_李超
2020/04/01
7.9K0
AppRTC(WebRTC)服务器搭建
互动直播之WebRTC服务器Kurento实战
【转载请注明出处】:https://cloud.tencent.com/developer/article/1631966
后端老鸟
2020/05/24
4.3K0
互动直播之WebRTC服务器Kurento实战
《Android App开发进阶与项目实战》资源下载和内容勘误
下面是《Android App开发进阶与项目实战》一书用到的工具和代码资源: 1、本书使用的Android Studio版本为4.2,最新的安装包可前往Android官网页面下载。 2、本书提供所有示例源码的demo工程下载,源码(适配Android4.4到Android11)的下载方式见该书前言末尾的二维码,获取ppt课件同样扫描前言末尾的二维码。最新的源码也可访问我的github获取,github地址是https://github.com/aqi00/advanceapp,服务端的github地址是https://github.com/aqi00/net_server。
aqi00
2022/12/13
4310
WebRTC--从编译到部署,打造点对点音视频通话服务器
WebRTC实现了基于网页的视频会议,是一个支持网页浏览器进行实时语音对话或视频对话的API(来自百度),由google开发,并于2011年6月3日开源。 和直播推流不同,这是点对点通讯,服务器只是帮助建立连接,以满足视频通话的低延迟要求 分为三个服务器: 1.房间服务器:创建房间,让用户可以在一个房间内通讯 2.信令服务器:用于用户交换信令,建立连接,类似TCP握手 3.ICE服务器(内网穿透服务器):用于穿透内网IP,实现外网连接 本文基于CentOS7系统
aruba
2021/07/16
3K0
WebRTC--从编译到部署,打造点对点音视频通话服务器
零基础入门:基于开源WebRTC,从0到1实现实时音视频聊天功能
本文由微医云技术团队前端工程师张宇航分享,原题“从0到1打造一个 WebRTC 应用”,有修订和改动。
JackJiang
2021/08/24
4K0
手把手搭建WebRTC测试环境,实现1对1视频通话
疫情除了火了电商直播、短视频也火了视频会议,其中看zoom和声网市值就能窥探实时音视频的目前发展情况。其中视频会议相关的技术栈基本都是建立在WebRTC基础上,为了了解学习WebRTC,首先需要搭建一个能测试和抓包的环境,然后调用WebAPI写写DEMO熟悉下相应接口和抓抓包看看基本交互流程。最后再逐渐深入到协议和相关的源代码中。本文就是帮助大家一步步搭建一个DEMO的运行环境,只要严格按照教程,基本都能搭建出来,后续再讲解接口调用和WebRTC一些源码编译和内部情况。
潇湘落木
2020/12/01
3.7K0
手把手搭建WebRTC测试环境,实现1对1视频通话
webrtc笔记(1): 基于coturn项目的stun/turn服务器搭建
webrtc是google推出的基于浏览器的实时语音-视频通讯架构。其典型的应用场景为:浏览器之间端到端(p2p)实时视频对话,但由于网络环境的复杂性(比如:路由器/交换机/防火墙等),浏览器与浏览器很多时候无法建立p2p连接,只能通过公网上的中继服务器(也就是所谓的turn服务器)中转。示例图如下:
菩提树下的杨过
2019/07/10
7.5K3
webrtc笔记(1): 基于coturn项目的stun/turn服务器搭建
nginx正向代理(超简单)
正向代理是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
全栈程序员站长
2022/07/22
3.5K0
nginx正向代理(超简单)
Turn服务器搭建
nohup turnserver -v -L 内网IP -a -u admin -p 123456 -f -r 外网IP &
程序员小涛
2020/12/03
7.1K0
Turn服务器搭建
WebRTC 系列文章 ICE服务器搭建 coturn[通俗易懂]
coturn是一个C++编写的开源ICE服务器,同时兼顾了STUN和TURN的功能。
全栈程序员站长
2022/07/01
5.4K0
WebRTC 系列文章 ICE服务器搭建 coturn[通俗易懂]
相关推荐
Coturn穿透服务器搭建
更多 >
LV.0
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档