STUN/TURN服务器搭建

编译安装

编译安装 OpenSSL;

sudo apt-get install libssl-dev

编译安装 libevent 最新版;

wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz

tar xvfz libevent-2.0.21-stable.tar.gz

cd libevent-2.0.21-stable

./configure

make

sudo make install

coturn 能够选择使用多种数据库,这里使用的是 SQLite ,使用命令sudo apt-get install sqlite (or sqlite3) 和 sudo apt-get install libsqlite3-dev (or sqlite3-dev) 安装;

编译coturn;

下载coturn

tar xvfz turnserver-<...>.tar.gz

./configure

make

sudo make install

执行 ./configure 命令时没有使用 --prefix=/opt 参数,由于 OpenSSL 是经过 apt-get 安装在默认位置,若是安装到其余位置 libevent 会找不到 OpenSSL 库文件。git

安装完成后在 bin 目录下生成六个可执行文件:github

turnserver - STUN/TURN 服务器

turnadmin - 用于配置、管理帐户

turnutils_stunclient - 用于测试 STUN 服务

turnutils_uclient 用于测试 TURN 服务,模拟多个UDP、TCP、TLS 或 DTLS 类型的客户端

turnutils_peer

turnutils_rfc5769check

配置使用

添加用户

$ sudo turnadmin -a -u you_name -p you_password -r you_realm

这里默认使用了 SQLite 数据库,其中 -a 表示添加一个 long-term 用户,-u 为用户名,-p 为密码,-r 为该用户所属的 Realm。在启动 turnserver 时须要指定 Realm ,只有该 Realm 下的用户才能登陆。web

注意必定要使用 root 权限配置,不然会配置失败,可是尚未错误提示。sql

启动server

配置完用户后就能够启动 turnserver 了,第一次启动前须要一个配置文件,这是使用模板生成,而后就能够启动 turnserver 了。shell

sudo cp /usr/local/etc/turnserver.conf.default /usr/local/etc/turnserver.conf

sudo turnserver -a -f -v -r lynky

其中 -a 表示使用 long-term 机制, -r 为指定的 Realm ,只有该 Realm 下的用户可使用服务器。数据库

测试

STUN

使用下面的命令便可测试 STUN 服务使用可用,惟一此参数是 STUN 服务器的 IP地址或域名。网络

turnutils_stunclient 132.232.100.103

TURN

使用下面的命令便可测试 TURN 服务使用可用,值得注意的是必须使用 turnserver 启动时指定 Realm 下的用户。测试

turnutils_uclient -u lynky -w lynky123 132.232.100.103

开机启动

修改/etc/turnserver.conf

listening-ip=127.0.0.1

listening-ip=172.16.0.99 # 内网ip

external-ip=221.208.117.45 # 公网ip,若是服务器在NAT后须要指定该参数

fingerprint

lt-cred-mech

realm=

添加/etc/systemd/system/turnserver.service

[Unit]

Description=coturn

Documentation=man:coturn(1) man:turnadmin(1) man:turnserver(1)

After=syslog.target network.target

[Service]

Type=forking

PIDFile=/var/run/turnserver.pid

ExecStart=/usr/local/bin/turnserver --daemon --pidfile /var/run/turnserver.pid -c /etc/turnserver.conf

ExecStopPost=/usr/bin/rm -f /var/run/turnserver.pid

Restart=on-abort

LimitCORE=infinity

LimitNOFILE=999999

LimitNPROC=60000

LimitRTPRIO=infinity

LimitRTTIME=7000000

CPUSchedulingPolicy=other

而后执行如下命令

# 使服务自动启动

sudo systemctl enable turnserver.service

# 启动服务

sudo systemctl start turnserver

# 中止服务

sudo systemctl stop turnserver

参考

高性能stun服务器搭建,STUN/TURN服务器搭建相关推荐

  1. docker搭建Coturn TURN服务器

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

  2. webrtc笔记(1): 基于coturn项目的stun/turn服务器搭建

    webrtc是google推出的基于浏览器的实时语音-视频通讯架构.其典型的应用场景为:浏览器之间端到端(p2p)实时视频对话,但由于网络环境的复杂性(比如:路由器/交换机/防火墙等),浏览器与浏览器 ...

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

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

  4. WebRTC 实现P2P音视频通话——搭建stun/turn P2P穿透和转发服务器

    WebRTC 实现P2P音视频通话 WebRTC 实现P2P音视频通话--搭建信令服务器 WebRTC 实现P2P音视频通话--搭建stun/turn P2P穿透和转发服务器 文章目录 WebRTC ...

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

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

  6. Windows10搭建turn服务器

    Windows10搭建stun/turn服务器 由于项目需要,开始了解并搭建turn服务器,先了解下turn服务器在WebRTC中作用,参看下图. 根据网上资料,搭建过程还是遇到不少的坑,耽误了不少时 ...

  7. turn服务器在虚拟机搭建内网电脑穿不透,编译rfc5766-turn-server搭建turn服务器

    rfc5766-turn-server是谷歌推荐的turn开源项目,经常作WebRTC的服务器端使用. 编译环境搭建 vagran t Windows用户要想在Windows下编译rfc5766-tu ...

  8. webrtc学习: 部署stun和turn服务器

    webrtc的P2P穿透部分是由libjingle实现的. 步骤顺序大概是这样的: 1. 尝试直连. 2. 通过stun服务器进行穿透 3. 无法穿透则通过turn服务器中转. stun 服务器比较简 ...

  9. 通达oa高性能平台版部署linux,通达Oa搭建的云服务器是

    弹性云服务器 ECS 弹性云服务器(Elastic Cloud Server)是一种可随时自助获取.可弹性伸缩的云服务器,帮助用户打造可靠.安全.灵活.高效的应用环境,确保服务持久稳定运行,提升运维效 ...

  10. 腾讯 监控系统服务器数据采集,实战低成本服务器搭建千万级数据采集系统

    上一篇文章<社会化海量数据采集框架搭建>提到如何搭建一个社会化采集系统架构,讲架构通常都比较虚,这一篇讲一下如何实战用低成本服务器作到日流水千万级数据的分布式采集系统.html 有这样一个 ...

最新文章

  1. 谷歌自动驾驶之父疯狂打Call, 无人车连续5小时不接管,又快又稳
  2. 杭州往事之与L项目SME Cathy小聚
  3. EF Core 3 的 40 个中断性变更
  4. Java基础语法之Map
  5. UTM 用户线程模型
  6. 数据对比,四个角度看中国公募基金的未来
  7. Java家庭收支记账系统
  8. 阿里云DataV—多字段取满足某一个字段的行,多字段取不满足某一个字段的行(3)
  9. java 图形检测_使用OpenCV[Java]检测简单几何图形
  10. 【活动更新】第一届Openbravo社区早餐会将与5/28在上海举办
  11. Unity-Chan Toon Shader 2 介绍
  12. 如何屏幕高清录像?--QVE屏幕录制
  13. 计算机硬件系统一直延用,会计电算化计算机硬件系统
  14. easyui简单demo
  15. Vue项目中background-image属性设置方法
  16. cocoapod安装过程中的幺蛾子
  17. 为期两个月的MATLAB与ROS联合仿真探索总结——因为热爱,所以无所畏惧
  18. 最强易用性?趣链科技智能合约引擎是怎样炼成的
  19. JS中Array方法中常用方法一:Array.isArray():
  20. 全国与各省的2020年ESA10米土地利用镶嵌数据

热门文章

  1. 西门子plc软件 linux,西门子PLC编程软件
  2. 20岁生日快乐c语言,C语言怎样编程生日快乐代码
  3. HTML转义字符表的使用
  4. 初读《Linux运维之道》浅见
  5. 摄氏度和开氏度的换算_摄氏度,开氏度,华氏度等常见温度单位转换在线计算器_三贝计算网_23bei.com...
  6. Python可视化--常用颜色
  7. 学计算机编程应该先学什么,如何自学计算机编程,学编程应该先学什么
  8. python xml转excel_一个python 脚本将XML文件转换到excel
  9. unity如何实现图片透视_如何用java实现图片与base64转换
  10. 课后实践4:以支付宝为例,使用商业画布分析一款产品