介绍
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
6.测试
Component type 中有出现srfix 就说明 STUN server 是正常运行的,有relay 表示 TURN 服务器是正常运行的。