前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Turn服务器搭建

Turn服务器搭建

作者头像
程序员小涛
修改2023-09-24 14:19:01
6.5K0
修改2023-09-24 14:19:01
举报
文章被收录于专栏:涛的程序人生

Turn服务器搭建

1、下载并安装libevent-2.0

代码语言:javascript
复制
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar zxvf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure
make && make install

2、下载编译安装coturn

代码语言:javascript
复制
git clone https://github.com/coturn/coturn
cd coturn 
./configure 
make 
make install

3、查看是否安装成功

which turnserver

在这里插入图片描述
在这里插入图片描述

4、编辑配置文件

代码语言:javascript
复制
#签名证书
yum install openssl

#生成的两个文件一般在/etc/目录下,如果不是就移动过去
openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes

#修改配置信息
vim /etc/turnserver/turnserver.conf
代码语言:javascript
复制
relay-device=eth0   #与前ifconfig查到的网卡名称一致
listening-ip=172.18.77.60    #内网IP
listening-port=57920
tls-listening-port=5349
relay-ip=172.18.77.60
external-ip=47.107.110.xxx    #公网IP
relay-threads=50
lt-cred-mech
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
pidfile=”/var/run/turnserver.pid”
min-port=49152
max-port=65535
user=admin:123456    #用户名密码,创建IceServer时用

5、启动服务

nohup turnserver -v -L 内网IP -a -u admin -p 123456 -f -r 外网IP &

6、配置 ICE REST API 服务

代码语言:javascript
复制
#生成证书
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out /etc/cert.pem -days 99999 -nodes

#移动至/cert目录
mkdir /cert
mv ./key.pem /cert/
mv /etc/cert.pem /cert/
编辑index.js
代码语言:javascript
复制
var https = require('https')
var fs = require('fs')
var express = require('express')
var crypto = require('crypto')
var app = express()

var option = {
        key : fs.readFileSync('/cert/key.pem'),
        cert: fs.readFileSync('/cert/cert.pem'),
}

var hmac = function (key, content) {
  var method = crypto.createHmac('sha1', key)
  method.setEncoding('base64')
  method.write(content)
  method.end()
  return method.read()
}

app.get('/iceconfig', function (req, resp) {
  var query = req.query
  var key = '4080218913'
  var time_to_live = 3600*24
  var timestamp = Math.floor(Date.now() / 1000) + time_to_live
  var turn_username = "admin" //timestamp + ':' + 'garrylea'
  var password = "123456" //hmac(key, turn_username)

  resp.header("Access-Control-Allow-Origin", "*");   //设置跨域访问

  return resp.send({
    iceServers: [
      {
        urls: [
          'turn:192.168.139.xxx:57920?transport=tcp',  //这四处修改为外网IP地址和端口
          'turn:192.168.139.xxx:57920?transport=udp',
          'turn:192.168.139.xxx:5349?transport=tcp',
          'turn:192.168.139.xxx:5349?transport=udp',
        ],
        username: turn_username,
        credential: password
      }
    ]
  })
})

var server = https.createServer(option, app);

server.listen('3033', function () {
  console.log('server started')
})

7、启动 ICE REST API 服务

npm install -g forever

forever start -l forever.log -a index.js

访问网址:https://IP:3033/iceconfig?key=none (IP为公网IP)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Turn服务器搭建
    • 1、下载并安装libevent-2.0
      • 2、下载编译安装coturn
        • 3、查看是否安装成功
          • 4、编辑配置文件
            • 5、启动服务
              • 6、配置 ICE REST API 服务
                • 7、启动 ICE REST API 服务
                相关产品与服务
                API 网关
                腾讯云 API 网关(API Gateway)是腾讯云推出的一种 API 托管服务,能提供 API 的完整生命周期管理,包括创建、维护、发布、运行、下线等。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档