介绍

TURN server 可以解决点对点通信里的 NAT 穿透,并提供中继(relay) 的服务。coturn 是一个开源的 TURN 和 STUN 服务器,是基于 rfc5766-turn-server 进化过来的,目前比较成熟。之所以安装 coturn 是借助它提供的 TURN 服务,解决 WebRTC P2P 通信中 STUN 服务器解决不了的复杂内网的问题。比如我尝试过移动4G 和 联通 WIFI 有时候无法通过 STUN 服务穿越内网连接,通过 TURN 服务的中继就可以解决这个问题。下面我们就来介绍一下 coturn 的安装,配置以及测试的过程。

参考网址

https://joey.blue/2018/12/10/webrtc-coturn/
https://www.jianshu.com/p/7e9d0af05396

1.更新安装源

sudo apt-get -y update

2.安装coturn

sudo apt-get -y install coturn

3.编辑配置文件

vim /etc/turnserver.conf
# 网卡名
relay-device=eth0
#内网IP
listening-ip=172.16.0.5 
listening-port=3478
#内网IP
relay-ip=172.16.0.5
tls-listening-port=5349
# 外网IP
external-ip=134.xxx.xxx.xxx
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=xxxx.cn
# 服务器名称,用于OAuth认证,默认和realm相同,部分浏览器本段不设可能会引发cors错误。
server-name=xxxx.cn
# 认证密码,和前面设置的密码保持一致
cli-password=123456

4.重启服务

systemctl status coturn

5.查看服务状态和端口

systemctl status coturn

3043400466

3441643619

6.测试

测试网站点击这里

1408606861

Component type 中有出现srfix 就说明 STUN server 是正常运行的,有relay 表示 TURN 服务器是正常运行的。