coturn ubuntu,ubuntu to go

OpenVidu 的搭建

介绍

应用场景

要安装的服务

OpenVidu Server(openvidu-server):OpenVidu的核心服务,管理kurento server之外的业务功能.

Kurento Media Server(kms): Kurento媒体服务器提供核心的webrtc接入、转化、过滤等功能。

Coturn(coturn):提供Stun, trun等服务,用于nat穿透功能.

Redis(redis): database to manage users in Coturn server.

Nginx(nginx): a reverse proxy used to configure SSL certificate and to allow both Openvidu Server and the Application to be served in the standard https port(443).

ideoconference Application(app): OpenVidu Call application or any other application. Can be disabled.

所有的这些服务通过docker container的方式安装。

安装

1。确定以安装docker和docker compose

如果未安装,可以参考 ubuntu下docker, docker compose安装的说明

检查文件,发现没有copy隐藏文件.env,于是使用同样的命令显示copy.env文件。

#cp.env-t/opt/openvidu

云服务器搭建coturn不能正常使用的问题

云服务器上coturn搭建难题解析

在云服务器上成功搭建coturn经常遭遇障碍,首要问题通常在于未开放必要的端口。以WebRTC音视频技术的实践指南为引导,让我们一步步解决公网coturn搭建的困扰。

关键端口开放

首先,确保服务器开放以下端口:3478-打洞模式必备,允许udp和tcp通信。对于P2P连接失败的情况,40000-60000 UDP端口范围是turn模式的必需,可通过min-port和max-port参数进行设置。

此外,AppRTC应用中还会涉及443、8090、8088和8089,这些也需要纳入开放范围。

云服务器防火墙策略

云服务器防火墙分为两层:接入层的安全组和系统主机的防火墙。建议在搭建初期,关闭系统防火墙以简化过程,但对防火墙有深入理解的用户可以选择自行配置。以腾讯云为例:

Ubuntu:先查看防火墙状态(sudo ufw status),然后禁用(sudo ufw disable)。

CentOS:检查防火墙状态(systemctl status firewalld.service),临时关闭(systemctl stop firewalld.service),然后禁用(systemctl disable firewalld.service)。

使用nc命令检测端口开放,如nc-l 3478,成功连接则表明已开放。

安全组设置

针对腾讯云,登录安全组管理界面,为上述需要的端口创建规则,包括:3478(udp/tcp),443, 8088, 8089, 8090(tcp),以及UDP端口范围40000-60000。

coturn的启动与配置

启动coturn时,添加--min-port 40000--max-port 60000参数,并指定监听地址。你可以选择在后台运行(nohup turnserver...&)或前台测试。务必配置正确的用户名和密码。

测试coturn功能

测试stun服务,无需账号密码,通过stun:并在Gather candidates选项中确认。turn服务则需要输入turn:加上账号密码,选择relay模式。

完成以上步骤后,你的coturn服务应该已经正常运行并准备就绪。

后续操作

如果需要停止coturn服务,记得在Ubuntu上使用sudo前缀执行相关命令,以确保权限正确。

通过上述详细步骤,你将能够顺利解决在云服务器上搭建coturn时遇到的端口问题,为WebRTC应用提供可靠的基础支持。

coturn服务器配置

注:为了更好的体验,将内容复制到工具中效果才好

#coturn服务器配置

##操作系统:建议使用ubuntu16+

##安装步骤:

以下安装以ubuntu16为例

###安装软件包

* apt update

* apt install coturn

###配置coturn服务器

####复制DTLS、TLS支持的证书文件(目录中已经有相应的证书)

* cp/usr/share/coturn/examples/etc/turn_server_cert.pem/etc/turn_server_cert.pem

* cp/usr/share/coturn/examples/etc/turn_server_pkey.pem/etc/turn_server_pkey.pem

####编辑/etc/turnserver.conf文件

listening-device=eth0#网卡

listening-port=3478#对外服务的商品,需要在防火墙、云服务器安全组放通,协议为UDP/TCP,出入站都需要

listening-ip=127.0.0.1#内网地址

tls-listening-port=5349#备用端口

listening-ip=172.17.0.4#局域网地址

relay-ip=172.17.0.4#局域网地址

external-ip=81.0.187.0#外网地址

lt-cred-mech

server-name=stun.xxx.cn#域名

realm=stun.xxx.cn#域名

min-port=50001#穿透需要用到的开始端口需要在防火墙,云服务器安全组中放通

max-port=50009#穿透需要用到的结束端口

user=test:test#用户名:密码测试或者客户端接入时需要用到

userdb=/var/db/turndb#数据文件的位置,如果没有该文件,启动会有错误提示

cert=/etc/turn_server_cert.pem#密钥相关上面步骤准备的

pkey=/etc/turn_server_pkey.pem#密钥相关上面步骤准备的

no-stdout-log

log-file=/var/tmp/turn.log#日志文件

pidfile="/var/run/turnserver.pid"#pid文件位置

no-stun#不使用stun服务主要用于测试turn中继方式时来关闭stun 更多类容可以参考配置文件自带的说明

###编辑/etc/default/coturn文件

*默认是不需要改的,但还是检查一下

* TURNSERVER_ENABLED=1

##安装完成,重启服务

* service coturn restart

##端口放通

*参考各系统、服务器,不赘述

##测试

*使用自带工具

turnutils_uclient ip或者域名-u用户名-w密码

##客户端使用

iceServers: [{

        'urls':'stun:stun.xxxx.cn:3478',

        'credential':"test",

        'username':"test"

      }

      ,{

        'urls':'turn:stun.xxxx.cn:3478',

        'credential':"test",

        'username':"test"

      }];

阅读剩余
THE END