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"
}];