coturn的作用有两个:寻找反射地址以及流转发,本人写过webrtc janus服务器部署在公网,coturn转发媒体流
coturn下面的工具turnutils_stunclient用于查找反射地址。
而turnutils_peer和turnutils_uclient用于测试转发功能,再次给以说明:
首先启动turnutils_peer,读者可以使用下面方法启动:
./turnutils_peer -p 34800
这个相当于在当前服务器下,启动了一个本地udp端口34800,这个端口用于接收数据。
然后本人在内网上,启动了下列命令。
./turnutils_uclient -v -e xxx.xxx.251.92 -r 34800 -u li -w li123 -p 19302 xxx.xxx.251.92
其中xxx.xxx.251.92是coturn服务所在地址。由于本人是在xxx.xxx.251.92启动的turnutils_peer,故-e后面也是这个地址。
敲这个命令后,会向turnserver申请转发端口,如下所示,22947就是其中分配成功的一个转发端口。
后面抓回路地址的包,可以看到流由coturn转发至此34800端口。
抓包地址中的10.0.0.143是公网ip:xxx.xxx.251.92的本地地址。
说下,turnserver.conf中,relay-ip=10.0.0.143,这个需要配置,否则loss率是100%。
最后,本文的turnutils_peer和coturn服务地址在一个主机上,并且都是在公网上,若分开放,效果会更好。