WebRTC服务器Coturn服务器相关测试工具
1、概述
在安装开源的webrtc服务器coturn服务器后,会附带安装coturn的相关工具,主要有以下几种工具
2、turnadmin工具
说明:服务器命令行工具,提供添加用户、添加管理员、生成TURN密钥等功能,turnadmin -h查看详细用法
命令参数用法:
2.1 直接短选项名用法,后面不加=
eg: turnadmin -u ccc
2.2 参数长选项名用法加=
eg: turnadmin --user=ccc
2.3 命令Commands
2.3.1 -P
作用: 生成并将密码的加密形式输出到标准输出,可以生成密钥,然后设置到/etc/turnserver.conf(web-admin/cli-password)中,防止明文保存在配置文件,增加安全性
eg: turnadmin -P -u ccc -p ccc
终端输出:$5$c58bf5b9e61e5c4a$088e97128d5eacac61130713fe15269b17653410704a1b60fc8d1a076c9d6d2d
备注: 这个密钥生成是针对管理账号和telnet连接账号,不是针对普通用户,普通用户长期凭证机制用用-k生成,普通用户还支持临时凭证
2.3.2 -k
作用: 生成长期凭证机制用户密钥的选项
eg: turnadmin -k -u ccc -p ccc -r nort.gov
终端输出: 0xa00561524d93eb959c884a531cda1769
备注: 把这个配置到/etc/turnserver.conf即可,防止了明文的显示,增加安全。
2.3.3 -a
作用: 添加或更新一个长期凭证用户
eg: turnadmin -a -u ccc -p ccc -r nort.gov
数据库保存:会把这个用户保存到数据库表turnusers_lt
备注: coturn数据库支持sqlite、mysql、redis、postgrepsql、mogo-db, 命令选型根据
sqlite: -b /var/db/turndb
mysql: -M
pqsql: -e
redis: -N
mogo: -J
2.3.4 -A
作用:添加或更新管理员账号
eg: turnadmin -A -u ccc -p ccc
数据库: 会把这个用户保存在数据库表admin_user中
2.3.5 -d
作用: 删除长期凭证机制用户
eg: turnadmin -d -u ccc
2.3.6 -D
作用: 删除管理员用户
2.3.7 -l
作用: 列出当前长期凭证机制用户
eg: turnadmin -l
2.3.8 -L
作用: 列出当前管理员用户
eg: turnadmin -L
2.3.9 -s
作用: 为REST API设置共享密钥
eg: turnadmin -s mytestpwd -r nort.gov
备注: 会保存在数据库表turn_secret中
2.3.10 -S
作用: 显示REST API的共享密钥
eg: turnadmin -S
2.3.11 -X
作用: 删除REST API 共享密钥
eg: turnadmin -X mytestpwd -r
2.3.12 -O
作用: 添加源到域中
eg: turnadmin -O -o https://www.my.com -r myrealm
备注: 保存到turn_origin_to_realm 数据表
2.3.13 -R
作用:删除源与域的对应关系
eg: turnadmin -R -o https://www.my.com -r myrealm
2.3.14 -I
作用: 列出源与域的关系
eg: turnadmin -I
2.3.15 -g
作用: 设置域相关参数选项,比如设置某个域的最大比特率,可控制某个域内所有用户总带宽(max-bps)上限制,总配额(total-quota)【网络连接数,会话数等】,每个用户的配额(user-quota)
eg: turnadmin -g -r nort2.gov --total-quota 300 -- max-bps 1020000
eg: turnadmin -g -r nort2.gov --user-quota 20
备注:数据保存在数据库的turn_realm_option这个表中
2.3.16 -G
作用: 显示域相关参数配置
eg: turnadmin -G
3、turnutils_stunclient
作用:检测STUN服务器是否可用,查看客户端公网ip和端口,理解当前环境下NAT类型。
示例:turnutils_stunclient -p 3479 117.72.111.221
4、 turnutils_peer
一个简单的无状态UDP echo”服务器,用作中继模式中的最终服务器(“对等”)。对于每一个到来UDP数据包,它只是将其回传
(此程序仅用于测试目的!),就是简单监听UDP端口,然后发什么它就返回什么的一个简单udp程序。
5、turnutils_uclient
用于测试TURN服务器的功能,验证TURN服务器的配置,确保TURN服务器正确配置,能正常工作
5.1 测试coturn服务器基础功能是否正常
5.1.1 先运行turnutils_peer(部署在公网上,有公网IP端口,方便测试)
作为模拟的端侧客户端,只打开UDP端口,接受了什么数据,就源路返回什么。
5.1.2 执行turnutils_uclient -e 117.72.111.221 -r 3480 -n 3 -l 1024 -p 3478 117.72.111.221
-e代表 对端的地址(比如A跟B通信,turnutils_client代表A端,B就是对端116.205.233.111)
-r 3480代表对端的端口为3480
-n 3 代表发送的数据包为3个
-l 1024 代表发送的数据包的内容长度为1024
-p 代表coturn的端口3478
117.72.111.221 代表要测试的coturn服务器的地址
5.1.3 结果分析
turnutils_client会与coturn进行通信,发送3个数据包到对端,然后分析发包、和收包,判断丢包率,RTT等数据分析以此验证coturn是否正常
其中会经历Allocate Request、Channel Binding Request 、Create Peermission Request等TURN协议的发送与接收处理,具体协议的结构格式,类型值看下面的协议篇。
5.2 测试coturn服务器dtls加密功能是否正常
turnutils_uclient -S -i /home/webrtc/webrtc_server.crt -k /home/webrtc/webrtc_server.key -e 117.72.111.221 -r 3480 -n 3 -l 1024 -p 5349 117.72.111.221 -v -u test -w test
6、turnutils_natdiscovery
是一个用于 NAT 类型检测和网络诊断 的命令行工具,其核心作用是通过模拟不同场景的通信请求,帮助开发者或运维人员快速识别设备的 NAT 类型及网络限制条件,(NAT映射规则和防火墙过滤行为)
turnutils_natdiscovery -m -f Example Domain
1)-m 参数
开启映射行为发现
映射行为分为:
端点独立映射: 无论请求的外部服务器地址和端口是什么,NAT设备总是将内部主机同一IP地址和端口映射到相同的外部IP地址和端口
地址依赖映射: NAT设备根据请求的外部服务器IP地址创建映射,如果请求不同的外部服务器IP地址,NAT设备会创建不同的映射
地址和端口依赖映射:NAT设备根据请求的外部服务器IP地址和端口创建映射,只有当请求的外部服务器IP地址和端口相同时才会使用相同的映射为
2)-f 参数
开启过滤行为发现
过滤行为分为:
端点独立过滤: 主机可以接收来自任何外部主机的响应,只要该响应是对其之前发出的请求的响应
地址依赖过滤: 主机只能接收来自之前请求的IP地址的响应,无论响应的端口是什么
地址和端口依赖过滤: 主机只能接收来自刚才请求的ip和端口的端口的响应
3)-t 参数
开启映射生命周期行为发现,它会测试NAT设备中映射的生命周期,即映射在多长时间保持有效
turnutils_natdiscovery -t -T 60 -p 3478 stun.example.com
-t 启用映射生命周期行为发现
-T 60 指定定时器值为60秒,即等待60秒后再次请求以测试映射是否有效
4) -c参数
用于碰撞行为发现,它会测试当两个不同的内部地址使用相同的端口向外部服务器发送请求时,NAT设备的处理方式
turnutils_natdiscovery -c -L 192.168.1.100 -A 192.168.1.101 -p 3478 stun.example.com
-c 启用碰撞行为发现
-L 192.168.1.100: 指定第一个本地地址为192.168.1.100
-A 192.168.1.101: 指定第二个本地地址为192.168.1.101,该选项在使用-c时是必须的
-p : 指定STUN服务器的端口为3478
stun.example.com: 指定STUN服务器的地址
5)-H选项
用于开启自环行为发现,自环是指当一个内部主机通过NAT设备访问自己外部映射地址时,NAT设备能否正确处理这种情况
turnutils_natdiscovery -H -p 3478 stun.example.com
-H 启用自环行为发现