这里我们自己搭建一个属于自己stun/turn服务器。此服务器能够成功使用的先决条件即必须使用的一端能够访问到此服务器所在的主机。所以一般情况一定要具备“公网”环境!一般情况下申请的云主机都会提供公网环境,即使像上文那样,主机在NAT之后!好了,确定号网络环境后,开始搭建。
首先下载安装包:http://turnserver.open-sys.org/downloads/。这里提供的时所有版本的下载包地址,可以浏览器下载,然后拷贝到相应的位置。当然最常用的是命令行:
wget http://turnserver.open-sys.org/downloads/v4.4.1.2/turnserver-4.4.1.2-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz
可见这里以ubuntu下4.4.1.2版本为搭建示例。解压:
tar xvfz turnserver-4.4.1.2-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz
在解压出来的文件里,有个文件:INSTALL 。告诉我们安装的步骤:
sudo apt-get update
sudo apt-get install gdebi-core
sudo gdebi coturn*.deb
在第二命令行:sudo apt-get install gdebi-core。我出现过“依赖包”错误的问题,提示“要安装gdebi-core,需要安装XXX,但是XXX并没有安装”。此时,只需要按照提示运行:
apt-get -f install
继续上述命令即可,安装很快完成。如果提示缺少什么依赖,也可手动安装号这些依赖。安装是很简单的,主要是配置,所以这里介绍一下配置相关。
由三个地方需要修改:
1.vim /etc/default/coturn
把上面打开编辑的文件中的这一行TURNSERVER_ENABLED=1去掉注释,保存退出即可!
2.vim /etc/turnserver.conf
这个文件为主要的配置文件。建议填写以下内容即可:
listening-ip=本地ip
listening-port=3478
tls-listening-port=5349
relay-ip=本地ip
external-ip=本地ip
relay-threads=50
lt-cred-mech
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
user= js: 0xab52511419431651cd6c74657c8b6dfb
userdb=/etc/turnuserdb.conf
#max-bps=102400
pidfile="/var/run/turnserver.pid"
上面cert和pkey配置的自签名证书用Openssl命令生成:
sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes
而用户信息user= js: 0xab52511419431651cd6c74657c8b6dfb 由下面的命令生成:
turnadmin -k -u <用户名> -r north.gov -p <密码>
其中js即为设置的用户名,0xab52511419431651cd6c74657c8b6dfb为设置的密码对应生成的“密码”。注意,这里的密码要填写生成的密码,KMS服务器上配置的要填写自己输入的密码。
3.vim /etc/turnuserdb.conf
默认没有这个文件,vim过后保存即可生成,内容填写:
用户名:密码,在示例中,即:
js: 0xab52511419431651cd6c74657c8b6dfb
做好以上配置后,即可启动:
sudo service coturn start
除非配置或者程序出现错误,否则启动是否成功,终端是不显示的。我们可以在浏览器中输入:
<ip>:3478
如果出错,我们可以在日志文件中查询:
vim /var/log/*.log
由于终端会显示此次的日志名字,所以请仔细查看终端显示,以打开正确的日志进行查询。当然,最好的测试是在:
https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
输入我们搭建好的服务器地址,来测试是否解析出主机公网地址。