部署WebRTC 或 SIP p2p 方案时经常会遇到p2p 无法穿透的环境,
这时就是TunServer 的用武之地了。
这里我们使用turnserver-0.7.3
下载confuse依赖库
wget http://savannah.nongnu.org/download/confuse/confuse-2.7.tar.gz tar zxvf confuse-2.7.tar.gz cd confuse* ./configure make && make install
下载
wget http://downloads.sourceforge.net/project/turnserver/turnserver-0.7.3.tar.bz2 tar jxvf turnserver-0.7.3.tar.bz2 cd turnserver* ./configure make && make install
编辑配置文件
将extra 中的配置文件模版拷贝到/etc目录下,假设您的ip 是 1.2.3.4
1,配置文件
cp extra/turnserver.conf.template /etc/turnserver.conf vi /etc/tunserver.conf
修改
listen_address = { "1.2.3.4" } #你的公网地址
修改 ## Daemon mode.
daemon = true # 修改为后台服务方式
修改带宽限制
## Allocation bandwidth limitation (in KBytes/s). ## 0 value means bandwidth quota disabled. bandwidth_per_allocation = 1024 ## Restricted user bandwidth (in KBytes/s). ## 0 value means bandwidth limitation disabled. restricted_bandwidth = 0
2,认证用户文件
cp extra/turnusers.txt.template /etc/turnusers.txt vi /etc/turnusers.txt
添加一行或多行认证信息格式为 用户名:密码:domain:authorized
例如下面的行:
700:700pass:domain.org:authorized
添加完成后,就可以在webrtc 里面使用stun 和tun server 了。
var configuration = { 'iceServers': [{ { 'url' : 'stun:1.2.3.4'} , { 'url' : ‘turn:700@1.2.3.4',credential : '700pass'} }] };
转自:http://blog.163.com/sir_876/blog/static/11705223201422810528434/
相关推荐
在这个场景中,我们关注的是WebRTC如何实现在内网环境下的通信,即所谓的“内网穿透”或“打洞”技术。 内网穿透,也称为NAT穿透,是解决因网络地址转换(NAT)导致的两个处于不同内网环境的设备无法直接通信的问题...
在实现时,通常会采用SRTP(Secure Real-time Transport Protocol)来加密媒体流,并使用STUN/TURN服务器解决NAT穿透问题。 7. 应用示例: "conclave-master"可能是一个开源项目,展示了如何使用CRDT和WebRTC构建...
本项目聚焦于一个特定的Flutter插件,该插件允许开发者利用WebRTC DataChannel技术实现点对点(P2P)连接,并在这些连接上进行文本消息的交换。 WebRTC(Web Real-Time Communication)是一种开放的网络标准,旨在...
使用HTTPS确保数据传输的安全性,同时使用STUN/TURN服务器处理NAT穿透,保证不同网络环境下的连接可靠性。 7. **前端实现**: 前端可能使用HTML、CSS和JavaScript(可能包含库如React或Vue.js)来构建用户界面和与...
WebRTC的工作原理涉及多个步骤:首先,通过STUN(Session Traversal Utilities for NAT)或TURN(Traversal Using Relays around NAT)服务器来发现并穿透NAT(网络地址转换),使得两个处于不同网络环境的设备能够...
此外,由于NAT穿透问题,可能还需要了解STUN/TURN服务器的工作原理,以便在公网环境下进行跨NAT通信。总的来说,这个项目涵盖了WebRTC实时通信、Java后端开发、WebSocket协议应用等多个技术领域,对于提升全栈开发...
- **概念**:一种NAT穿透方案,用于建立穿越NAT的P2P连接。 - **Turnuri**:URI格式规范。 - **开源服务器工程**:coturn等。 - **开源库**:如libnice。 - **交互式连接建立(Interactive Connectivity ...
WebRTC包含的API可以很容易地访问用户的麦克风和摄像头,实现音视频通信,并可扩展至屏幕分享、游戏或者其他任何P2P的数据分享场景。 在《webrtc cookbook》中,会详细介绍WebRTC的使用方法和相关知识。首先,书中...
虽然WebRTC技术已经较为成熟,其集成了最佳的音/视频引擎,十分先进的codec,且包含了使用STUN、ICE、TURN、RTP-over-TCP的关键NAT和防火墙穿透等众多门槛并不低的技术。抛开音视频技术本身的复杂性外,要想找到合适...
TURN(Traversal Using Relay NAT)是一种代理服务,当 STUN 无法穿透 NAT 时,可以使用 TURN 作为备选方案。 - **6.4 交互式连接建立(Interactive Connectivity Establishment),一种综合性的 NAT 穿越的技术。...
为了实现P2P中的UDP穿透NAT,我们需要理解几种主要的穿透方法: 1. **UDP打洞(UDP Hole Punching)**:这种方法依赖于NAT的一致性行为,即当一个内网主机向公网发送数据后,NAT通常会记住这个映射,允许来自同一...
- **7.10 基于 ICE 方式 SIP 信令穿透 Symmetric_NAT 技术研究:** - 讨论了如何在对称 NAT 环境中使用 ICE 协议进行 SIP 信令的传输。 以上内容为《WebRTC 零基础开发者教程》的部分章节总结,旨在为初学者提供一...
9. **STUN/TURN服务器**:网络穿透服务,帮助在NAT(网络地址转换)环境中建立P2P连接。STUN服务器用于发现公共IP,而TURN服务器作为中继,确保在必要时也能建立连接。 学习"webrtc-web",你需要理解上述基本概念,...
- **STUN/TURN服务器**:解决NAT穿透问题,确保P2P连接的可靠性。 - **DataChannels**:WebRTC的数据通道,用于传输非音视频数据,如文本消息或共享文件。 - **MediaStream**:表示音频和视频流的对象,用于连接到...
在Android应用开发中,WebRTC通常用于构建P2P(点对点)通信应用,如视频会议、在线教育、远程医疗等场景。其核心技术包括: 1. **信令协议**:在音视频通话中,信令协议用于建立和管理连接,如邀请通话、接受邀请...
它包含了ICE(Interactive Connectivity Establishment)策略来寻找最佳的网络路径,STUN/TURN服务器用于穿透NAT,以及信令协议用于交换SDP(Session Description Protocol)信息。 - **MediaStream**:包含音频和...
5. **ICE**:用于穿透NAT(Network Address Translation),帮助两个位于不同网络环境的对等节点找到对方,建立P2P连接。 6. **STUN**和**TURN**服务器:在网络通信中,NAT可能会阻止直接的P2P连接。STUN服务器帮助...
6. **网络传输技术**: WebRTC使用SRTP(Secure Real-time Transport Protocol)进行安全的媒体传输,而STUN(Session Traversal Utilities for NAT)和TURN(Traversal Using Relays around NAT)服务器则帮助穿越...
- **STUN/TURN服务器**:用于NAT穿透,帮助在不同网络环境下的设备间建立P2P连接。 2. **信令流程**: - **offer/answer**:在两个浏览器之间建立连接时,一方作为offerer,创建SDP(Session Description ...