Qt+WebRTC学习笔记(七)ubuntu22.04下搭建coturn(STUN/TURN)

前言

因工作原因,很长时间没更新相关文档了,笔者之前测试时,一直使用示例自带的公网中转服务器。考虑到后期项目需要,笔者在线搭建一个coturn服务器测试,供有需要的小伙伴使用

一、安装coturn

若需要最新版本的coturn,需要自己下载coturn源码编译

git下载:

git clone https://github.com/coturn/coturn.git

若只是测试,可以直接在线安装 

sudo apt-get install coturn

二、配置coturn

1.创建用户

sudo turnadmin -a -u 用户名 -p 密码 -r 可以随便写(一般写stun.xxx.cn)
//示例
sudo turnadmin -a -u testuser -p testpassword -r stun.test.cn

2. 生成证书

sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes 

 3.配置turnserver.conf

#(必选)监听端口可以不设置会默认的使用3478
listening-port=3478
#(必选)监听的网卡
listening-device=eth0
#(必选)listening-ip,注意必须是你的内网IP地址
listening-ip=172.17.0.12
#(必选)external-ip,注意必须使用你的外网IP地址(云主机的公网IP地址)
external-ip=18.33.65.98
#(必选)设置用户名及密码
user=testuser:testpassword

relay-device=eth0  # 中转网卡
tls-listening-port=5349 
relay-ip=内网ip
relay-threads=50 
cert=/etc/turn_server_cert.pem 
pkey=/etc/turn_server_pkey.pem 
min-port=49152 
max-port=65535 
#一般与turnadmin 创建用户时指定的realm一致,不指定realm时,默认为: 外网地址:3478
#和你创建用户名和密码是填写的-r后面的一样
realm=stun.test.cn 

 注意:如果机器上有多块网卡,注意listening-ip与listening-device要匹配,参考下图红色方框部分:

三、启动服务

 启用coturn并验证
turnserver -v -r stun.test.cn -a -o -c /etc/turnserver.conf

-r stun.test.cn —— 意为指定realm,要与创建用户时指定的realm一致。

 

四、进行端口映射

笔者使用的企业交换机和路由器,使用一根专线,有一个公网IP,需要将内网服务器的3478端口映射出去。

假设笔者也映射到公网的3478端口

五、测试 stun/turn 服务

webrtc-samples官网还提供了一个检测ice穿透的在线工具:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
按里面的要求输入 stun/turn 地址、用户和密码后就可以探测stun/turn服务是否正常了。

 

若是出现以上信息,就说明coturn服务器就可以正常使用了 

后记

笔者编写测试程序,使用qt6.5编写的界面。测试时发现,使用调试模式时,若只使用自己搭建的服务器,程序会异常退出,但release模式正常。

因时间问题,笔者只进行了单对单的音视频、自定义数据收发测试,其他的测试未进行,希望有解决方案的小伙伴及时反馈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

꧁白杨树下꧂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值