0. 前言

  好久之前写过一篇搭建WebRTC的文章,里面有简单的说到怎么搭建一个stun服务。但那时只是一笔带过。正好,这两天搭建stun服务,这篇博客就再复习一遍,并把搭建过程整理一下。

1. 安装

  https://github.com/coturn/coturn 在这里git clone 下来然后编译安装,一切默认即可。编译后,也可以不用安装。在编译目录下bin文件夹下有turnserver turnutils_stunclient turnutils_uclient 这三个等一下会用到的软件。

  http://www.stunprotocol.org/ 这个stunserver 也是可以的。

2. 配置turnserver.conf

  可以创建 bin/turnserver.conf 文件,增加以下配置信息。

 1 listening-ip=0.0.0.0
 2 listening-port=3478
 3
 4 #relay-ip=0.0.0.0
 5 external-ip=0.0.0.0
 6
 7 min-port=59000
 8 max-port=65000
 9
10 Verbose
11 fingerprint
12
13 no-stdout-log
14 syslog
15
16 cert=pem/turn_server_cert.pem
17 pkey=pem/turn_server_pkey.pem
18
19 user=demo:demo
20
21 no-tcp
22 no-tls
23 no-tcp-relay
24 stun-only
25 #secure-stun

  简单说明,listening-ip 监听的IP,这里的IP必须是外网IP,如果服务器有外网IP网卡即可。最近(2018-04)购买的阿里云ECS虚拟主机,由于采用VPC专有网络架构。购买的ECS主机在主机内部是看不到外网网卡的,提工单问了,说是不行了,新的专有网络跟以前的经典网络不一样了。现在的网络是在外面映射到虚拟主机的。这就很尴尬了,到时候如果要实际生产,那应该是要购买独立物理主机了。 好吧,我错了。是可以正常的运行的,是因为阿里云网络安全组的问题,类似与防火墙的东西。之前配了TCP,忘记还有UDP这回事了。道歉!!各位亲,要注意哦。我是在排查问题时,发现,所有的UDP包都处理不了,突然想起的。

  
  cert 和 pkey 这两个是配置如果要进行安全SSL连接用到的证书。TCP是SSL,UDP是DTLS连接。
  no-tcp 和 no-tls 表示不要TCP连接了,因为NAT穿透,对TCP支持很弱,一般是使用UDP来进行穿透。
  由于产品处于前期,这里只支持stun服务,对于turn的转发功能,暂时不考虑。

3.启动turnserver服务

  

4.测试stun服务

  (1) 使用 turnutils_stunclient 测试
  
  可通过该工具进行查询,里面出现 The response is an error 401 (Unauthorized) 是如果服务器开启secure-stun选项时,那么就会出现401未授权错误。turnutils_stunclient 是不支持帐号密码验证的。
  (2) 使用 turnutils_uclient 测试

./turnutils_uclient -S -v -u demo -w demo -i pem/turn_client_cert.pem -k pem/turn_client_pkey.pem xxx.wunaozai.com -y 

  如果不用帐号密码校验的可以不用 -u -w, 如果不用DTLS安全连接的可以不要-i -k.

  
  (3) 使用 stun-client-0-96.exe 测试
  

  
  (4)使用 NatTypeTester.exe 测试
  
  使用 https://github.com/webrtc/samples 下 /src/content/peerconnection/trickle-ice/index.html 测试
  

5.参考资料

  https://www.cnblogs.com/idignew/p/7446121.html
  https://www.cnblogs.com/idignew/p/7440048.html
  https://www.cnblogs.com/kakawater/p/7112925.html
  https://www.cnblogs.com/mobilecard/p/6544731.html
  https://www.cnblogs.com/lingdhox/p/4209659.html

  本文地址: https://www.cnblogs.com/wunaozai/p/9071097.html

转载于:https://www.cnblogs.com/wunaozai/p/9071097.html

stun服务器搭建(coTurn)相关推荐

  1. p2p webrtc服务器搭建系列1: 房间,信令,coturn打洞服务器

    中继(relay) 在RTCPeeConnection中,使用ICE框架来保证RTCPeerConnection能实现NAT穿越 ICE,全名叫交互式连接建立(Interactive Connecti ...

  2. 服务器操作系统co,搭建coturn服务器

    搭建coturn服务器 环境准备 文件配置 启动 测试 环境准备 (1)准备一台云服务器,安装Ubuntu18.04操作系统 (2)安装coturn sudo apt install coturn 文 ...

  3. WebRTC 入门教程(二)| WebRTC信令控制与STUN/TURN服务器搭建

    本文将向大家介绍两个方面的知识: WebRTC信令控制 STUN/TURN服务器的搭建 在https://mp.csdn.net/postedit/92436226已经向大家介绍了如何构建信令服务器. ...

  4. WebRTC:stun/turn服务器搭建

    基于coturn项目的stun/turn服务器搭建 VoIP (Voice over Internet Protocol), 一种语音通话技术,经由网际协议(IP)来达成语音通话与多媒体会议,也就是经 ...

  5. docker搭建Coturn TURN服务器

    docker搭建Coturn TURN服务器 文章目录 docker搭建Coturn TURN服务器 下载镜像 启动镜像(失败) 启动镜像(不太对) 启动镜像(搞个配置文件) 自签证书 使用配置文件 ...

  6. AppRTC服务器搭建

    WebRTC,是Web Real-Time Communication的缩写,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术,于2011年5月开放了工程 ...

  7. AppRTC(WebRTC)服务器搭建

    转自:https://www.jianshu.com/p/a19441034f17 前言 最近研究了几天 appr.tc 服务器的搭建,主要目的是想在本地搭建一套 webrtc 服务器环境,可以做一些 ...

  8. Webrtc服务器搭建(基于公网环境)

    webrtc服务器环境搭建 (基于公网环境) Last Modified Date: 2017/8/2 目录 1. 搭建平台 2. 软件安装 3. 搭建房间服务器(Room Server) 4. 搭建 ...

  9. WebRTC服务器搭建

    一. node环境搭建 yum install -y nodejs 二. 搭建 Coturn 1.1 Coturn环境 yum install -y openssl openssl-devel yum ...

最新文章

  1. linux 查看日志信息--less命令
  2. 自学python可以做什么兼职-一行生财:毕业100天,通过副业赚(挣)到我的第一个10w...
  3. php 屏蔽deprecated,新人求教PHP高手,Deprecated?
  4. Java面试之锁-公平锁和非公平锁
  5. ABP官方文档翻译 3.7 领域事件(事件总线)
  6. win7字体大小怎么设置_XP,win7系统怎么设置自动关机
  7. 多速率多传感器数据融合估计(二)
  8. 谷歌高管地震:谷歌大脑联合创始人Samy Bengio离职了
  9. linux把 root文件夹删除文件,在Linux下删除顽固文件和目录
  10. 1060驱动java,丽境1060数位板驱动下载
  11. 伸缩自如的ElasticSearch——通过bboss操作和访问elasticsearch模式
  12. list集合 树 三层集合嵌套 {..{..{..}}}
  13. void (*f(int, void (*)(int)))(int) 函数解析
  14. 【技术解析】数通是什么?
  15. PO/POJO/BO/DTO/VO的区别【转】
  16. 图的遍历(搜索)算法 之 深度优先遍历算法
  17. 铁通,痛在哪里?(二)
  18. js vue 设置excel单元格样式_vue项目使用xlsx-style实现前端导出Excel样式修改(添加标题,边框等),并且上传npm踩坑记录...
  19. 戴尔游匣 7557 玩游戏时熄屏的解决办法
  20. Android蓝牙开发常见问题

热门文章

  1. 百度 图片文字识别 Python版本
  2. JAVA学习day07 1
  3. linux下网络监听与发送数据包的方法(即libpcap、libnet两种类库的使用方法)
  4. IDEA快捷键拆解系列(三):Edit篇
  5. WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
  6. python 拟牛顿法 求非线性方程_有限元简单科普之——改进的欧拉法
  7. 法语写信_为我们写信:我们最热门的19个主题
  8. 我在WordCamp上学到的有关新WordPress Gutenberg编辑器的知识
  9. devops相关书籍哪个好_您在DevOps周期中的哪个位置进行安全保护?
  10. 开源怎么保证专利_开源质量保证的基础