在使用webrtc做语音视频通话的时候,就需要用到ice服务器,接下来我们就讲一下如何搭建ice服务器。
1.安装依赖
2.下载coturn安装包
3.解压
4.进入解压目录下
5.编译
6.安装
7.生成自签名证书
执行上面这行命令后,会提示让你输入一些信息
信息输入完成之后,自签名证书就生成好了。证书生成的位置是:/etc/turn_server_pkey.pem和/etc/turn_server_cert.pem,后面配置的时候会用到这个证书。
8.配置
切换到coturn的配置目录下
复制一份配置文件
修改配置文件
改一下里面的这些配置,我的服务器内网ip是172.25.10.25,外网ip是47.111.188.168,域名是turn.zhiboblog.com,下面配置中的ip和域名需要改成你自己的
relay-device=eth0
#内网IP
listening-ip=172.25.10.25
listening-port=3478
#内网IP
relay-ip=172.25.10.25
tls-listening-port=5349
# 外网IP
external-ip=47.111.188.168
relay-threads=500
#打开密码验证
lt-cred-mech
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
min-port=40000
max-port=65535
#设置用户名和密码,创建IceServer时使用
user=admin:123456
# 外网IP绑定的域名
realm=turn.zhiboblog.com
# 服务器名称,用于OAuth认证,默认和realm相同,部分浏览器本段不设可能会引发cors错误。
server-name=turn.zhiboblog.com
# 认证密码,和前面设置的密码保持一致
cli-password=123456
9.解析域名
将上面配置中的域名:turn.zhiboblog.com解析到服务器外网ip
10.服务器安全组开放端口(如果是阿里云腾讯云等服务器需要在安全组开放端口)
开放udp的3478端口、tcp的3478端口、udp的40000-65535端口
11.关闭防火墙
systemctl disable firewalld
12.启动turnserver
这样启动后,终端关闭后,服务就会停止。
为了让服务在后台运行,我们可以在/lib/systemd/system/目录下创建一个turnserver.service文件
turnserver.service内容如下:
Description=Coturn STUN/TURN Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/coturn/bin/turnserver -c /usr/local/coturn/etc/turnserver.conf
ExecStop=pkill turnserver
PrivateTmp=true
[Install]
WantedBy=multi-user.target
这样就可以使用systemctl命令启动和关闭turnserver服务了
systemctl start turnserver
//关闭
systemctl stop turnserver
将turnserver服务加入开机启动
systemctl enable turnserver
//关闭开机启动
systemctl disable turnserver
13.ice连通测试
测试网址:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/