环境要求:
1.centos7以上版本,开始用的7以下版本总失败,后来直接升级7.8版本,安装成功
2.gcc,openssl,libevent2提前安装好,尽量用高版本,我的gcc-8.3.0.tar.gz,libevent-2.1.10-stable.tar.gz,openssl没特意升级,自带的OpenSSL 1.0.2k-fips 26 Jan 2017
安装coturn
git clone https://github.com/coturn/coturn
cd coturn
./configure
make
make install
安装很简单,基本都会成功,主要就是配置,网上搜索的配置很多都启动报错,或者启动后ice测试失败
配置
创建用户和生成证书这块资料都是一样的,照搬
创建用户
turnadmin -a -u test -p 123456 -r nono //资料说turnadmin -l 可以看到创建的用户,我的没反应,不知道原因
turnadmin -k -u test -p 123456 -r nono //生成加密字符串0x860b1cbe80d919a7ecf44d9a1371e188
vim /etc/turnuserdb.conf 写入test:0x91a329bcf40d7b0fc224ca0e7bcba74f
生成证书
openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes
修改配置文件
/usr/local/etc 下有一个turnserver.conf.default文件,复制一个turnserver.conf文件,配置改动都放turnserver.conf里面
具体配置如下(放到服务器时把我后面加的#注释都去掉,我开始没去掉,ice穿透一直不成功)
relay-device=eth0 #与ifconfig查到的网卡名称一致
listening-ip=172.xx.xx.xx #内网IP
listening-port=3478
tls-listening-port=5349
relay-ip=172.xx.xx.xx #内网IP
external-ip=120.xx.xx.xx #公网IP
relay-threads=50
realm=nono #创建用户时-r 域
lt-cred-mech
fingerprint
no-multicast-peers
cert=/etc/turn_server_cert.pem #证书
pkey=/etc/turn_server_pkey.pem #证书
pidfile="/var/run/turnserver.pid"
min-port=49152
max-port=65535
user=test:123456 #用户名密码,创建IceServer时用
cli-password=123456 #密码
启动
turnserver -a -f -user=test:123456 -r nono (调试时启动)
turnserver -o -a -f -user=test:123456 -r nono (上线时启动)
现在可以ICE测试了https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
注:我的ICE测试成功,但是浏览器直接访问还是打不开,不清楚原因