COTURN服务器使用

11 篇文章 0 订阅
4 篇文章 0 订阅

一、安装

coturn是作为一个STUN/TURN来使用,其中STUN是用于P2P,而TURN是用于中继转发。

安装形式有两种:
方式1:
直接在网上下载适合系统版本的编译好的安装包安装,包地址:
http://turnserver.open-sys.org/downloads
安装方法,参考:
http://blog.csdn.net/day_day_up1991/article/details/52050003
最后的穿透服务器安装。

方式2:
下载相应源码,自己编译安装。
源码地址:
https://github.com/coturn/coturn.git

安装方法:
git clone到本地;
在coturn目录中执行
./configure
sudo make all

二、使用

我使用的是第二种安装方法,在执行完make all之后,会在coturn目录中出现bin目录。
在bin目录中,会存在turnadmin\turnserver\turn_uclient等可执行文件。

可以通过执行man turnserver等查看相应的使用。

在example目录下,有一些配置、密钥以及客户端等的使用例程。

三、配置

进入coturn/bin目录

1、使用turnadmin添加用户及计算密码

turnadmin的使用方法,可以通过man查看。如果查看turnadmin属性,则会发现turnadmin是一个链接,指向turnserver。

1)添加lt-cred-mech用户:
./turnadmin -a -u demo -p 4080218913 -r demo

其中的参数含义
-a: 表示使用lt-cred-mech方式连接
-u:用户名
-p:密码
-r :realm 域。自己试了,似乎随便写,没啥影响。

2)添加admins用户,应该是使用https时使用吧
./turnadmin -A -u demo -p 4080218913 -r demo

其中的参数含义同上,
-A:表示admin用户。

3)根据用户名、密码、realm计算出值
./turnadmin -k -u demo -p 4080218913 -r demo

此时会出来一串数字。
XXXXXXX

2、配置turnserver.conf文件

可以将example中的turnserver.conf文件拷贝到bin目录下。

将turnserver.conf文件按照如下配置编辑。

#如果多网卡,记得此处设置为和你所用监听的IP相对应的eth
listening-device=eth0 
listening-port=3478
relay-device=eth0
min-port=59000
max-port=65000
Verbose
fingerprint
#webrtc需要使用此选项
lt-cred-mech
use-auth-secret
static-auth-secret=4080218913
#之前turnadmin中-r参数的值,此处要对应
realm=demo
stale-nonce
#可以添加用户名和密码
user=demo:4080218913
#测试期间可以使用example/etc中的pem,自己计算的话需要用到openssl,方法为:
#sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes

#填写pem目录即可,如
cert=~/coturn/example/etc/turn_server_cert.pem
pkey==~/coturn/example/etc/turn_server_pkey.pem
no-loopback-peers
no-multicast-peers
mobility
no-cli
#各项参数含义,可以看turnserver.conf中的说明。

保存之后退出。

sudo turnserver 启动即可
turnserver会载入当前目录中的配置文件。

四、TURN REST API的使用

此处参考
http://www.jianshu.com/p/c55ecf5a3fcf
中的代码。
最后的nginx配置,也按照其中的来就可以。

五、修改APPRTC中相应文件

1、修改apprtc.debug.js
参考
https://github.com/webrtc/apprtc
最后面的第6步。

直接修改
apprtc/out/app_engine/js/apprtc.debug.js中的
requestIceServers function
修改为

#其中的IP需要和你turnserver.conf中设置的IP一样或者turnserver.conf文件中设置的网卡的IP对应!
function requestIceServers(iceServerRequestUrl, iceTransports) {
  return new Promise(function(resolve, reject) {
    var servers = [{
        credential: "turnPassword",
        username: "turnUser",
        urls: [
          "turn:yourTURNIP:3478?transport=udp",
          "turn:yourTURNIP:3478?transport=tcp"
        ]
    },{
        urls:["STUN:yourSTUNIP:3478"]
    }];
    resolve(servers);
  });
}

保存退出。

2、修改constants.py
修改apprtc/out/app_enginee/constants.py中的TURN_BASE_URL值为

TURN_BASE_URL=’your ip:your nginx port’

按照http://blog.csdn.net/day_day_up1991/article/details/52050003中房间服务器的方式,重新启动apprtc。
记得先要把之前的房间服务器进程关掉。

都修改完之后,按照
http://www.jianshu.com/p/c55ecf5a3fcf
中的方式配置好nginx。访问配置的端口即可!
启动nginx

coturn就可以提供STUN/TURN服务了。

六、查看

利用firefox或者chrome(如果是http通信,则只能用firefox)浏览器登录房间服务器,同时打开firefox的设置中,开发者选项-》控制台,查看登录房间过程中,web和服务器交互的信息。
找到candidates,查看其中是否有内网IP及端口等信息,如果服务器是部署在公网,则还还应该可以查看到公网IP及端口信息。
如果candidates都有以上信息,则表明coturn服务器运行正常!

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
好的,我可以帮你解决这个问题。下面是安装coturn服务器的步骤: 1. 首先需要安装docker,如果你已经安装了,请跳过这一步。你可以使用以下命令在Ubuntu上安装docker: ``` sudo apt-get update sudo apt-get install docker.io ``` 2. 在安装coturn之前,我们需要创建一个配置文件。在你的本地计算机上创建一个名为`turnserver.conf`的文件,并将以下内容添加到文件中: ``` listening-port=3478 tls-listening-port=5349 verbose fingerprint lt-cred-mech use-auth-secret static-auth-secret=your_secret_key realm=your_domain_name cert=/path/to/certificate.pem pkey=/path/to/private_key.pem log-file=stdout ``` 请注意,你需要将`your_secret_key`替换为一个随机的字符串,并将`your_domain_name`替换为你的域名。同时,你需要将`/path/to/certificate.pem`和`/path/to/private_key.pem`替换为你的SSL证书和私钥的路径。 3. 现在我们可以使用docker安装coturn服务器了。使用以下命令从Docker Hub拉取coturn镜像: ``` docker pull instrumentisto/coturn ``` 4. 创建coturn容器并启动服务: ``` docker run -d --name coturn \ --restart always \ -p 3478:3478 \ -p 5349:5349 \ -v /path/to/turnserver.conf:/etc/turnserver.conf \ instrumentisto/coturn ``` 请注意,你需要将`/path/to/turnserver.conf`替换为你在第2步中创建的配置文件路径。 5. 如果一切顺利,你的coturn服务器现在应该已经启动了。你可以使用以下命令检查coturn是否正在运行: ``` docker ps ``` 如果coturn容器正在运行,你应该能够看到类似于以下内容的输出: ``` CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c8a4e0146c0c instrumentisto/coturn "/turnserver ... 10 seconds ago Up 9 seconds 0.0.0.0:3478->3478/tcp, 0.0.0.0:5349->5349/tcp coturn ``` 恭喜你,你已经成功地在Docker中安装和配置了coturn服务器
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值