STUN/TURN服务器搭建

采用源码编译的方式实现STUN/TURN服务器的搭建

服务器:coturn

环境:Ubuntu20.04

下载coturn源码:https://github.com/coturn/coturn

放置到linux的/WebRTC目录

如果没有编译工具首先请apt install gcc

命令行切换至此目录./configure --prefix=/usr/local/coturn/,然后./configure --prefix=/usr/local/coturn/,然后make,然后make install,安装完毕

切换至,修改配置文件中的主要4项,listening-port,external-ip,user,realm修改完毕即可开始运行turn服务器

启动命令:

如觉得不方便把turnserver加入环境变量中即可

前往https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/进行测试

遇到的问题:

错误1:ERROR: Libevent2 development libraries are not installed properly in required location.

解决:apt install libevent-dev

错误2:OpenSSL Crypto development libraries are not installed properly in required location

解决:apt install libssl-dev

turnserver的手动启动:./usr/local/coturn/bin/turnserver -c ./usr/local/coturn/etc/turnserver.conf,

在实际使用的时候有可能coturn不正常服务,提示

The server stun:xxx returned an error with code=701:
STUN host lookup received error.
The server turn:xxx?transport=udp returned an error with code=701:

如果收集的信息type已经包含了srflx和relay,那就没问题,如果没有那么出现这个问题,不要担心,解决办法如下:

1)确保你的操作步骤都是上面描述的

2)查看你的端口映射,如果1)中是正确的,那么你的问题原因就是端口映射失败,重新确定一下要使用的端口的tcp,udp都成功映射出去就好了。如果实际的turnserer服务器是在公司内网,那么需要在对应外网映射端口。

验证端口的tcp是否成功可以直接telnet外网地址+端口(保证turnserver启动起来),即可查看;

验证端口的udp是否成功可以在turnserver系统中运行一个udpserver(写一个小程序启动udp接收数据即可,在另一端连接外网映射的地址和端口即可判定是否映射成功)。

目前看来如果turnserver安装和配置没有问题,那么唯一问题就是端口映射的问题。

网上还有人说chrome有问题,火狐没有问题,其实并非如此,如果配置成功了chrome和火狐都不会有任何问题,经过我试验原因应该是填写stun服务器地址有误,应该写成这样:

不要写成stun,这就没问题了,chrome和火狐都没有问题

posted @ 2020-09-01 15:55  ershoushouji  阅读(2846)  评论(0编辑  收藏  举报