原文链接:blog.csdn.net/weixin_4555…
一、介绍
Turn协议的工作原理主要有三个阶段,也称三大机制。
分配(Allocation),转发(Relay)和信道(Channel)。
Turnserer实践
部分政府、企业客户会部署有防火墙将办公环境与外网隔离开来,而且其防火墙通常会有很严格的ip和port限制,所以点对点传输基本无法进行。此时,Turn协议就是一个很好的选择。Turnserver具有固定的公网ip,固定的端口,只需在防火墙上开通其白名单,就可以搭建通信信道。
二、环境
服务器环境
系统 服务版本
CentOS Linux release 7.6.1810 (Core) turnserver-4.5.0.8
系统最好是7.6以上,掉过坑,当时用7.0一直访问不通
防火墙
关闭SElinux
关闭防火墙
如果不关闭防火墙请前往安全组开放相关端口
三、部署
首先安装相关依赖
yum install -y make gcc cc gcc-c++ wget openssl-devel libevent libevent-devel mysql-devel
1
安装turnserver
wget https://coturn.net/turnserver/v4.5.0.8/turnserver-4.5.0.8.tar.gz
tar -zxvf turnserver-4.5.0.8.tar.gz
cd turnserver-4.5.0.8/
./configure
make && make install
修改配置文件
cd /usr/local/etc/
cp turnserver.conf.default turnserver.conf
vi turnserver.conf
末尾添加
listening-device=eth0 # 网卡名称
listening-port=3478 # turnserver监听UDP/TCP端口
tls-listening-port=5349 # turnserver监听TLS/DTLS端口
listening-ip=0.0.0.0 # 内网IP,但是设置内网IP会导致外部连接不到内网IP,设置0.0.0.0即可
relay-ip=10.120.92.4 # 一定是内网IP,不然relayIP会获取不到
external-ip=X.X.X.X # 一定是公网IP
min-port=49152 # 最小端口
max-port=65535 # 最大端口
user=user:123456 # 用户名:密码
realm=X.X.X.X #域名或者公网IP
lt-cred-mech
启动
turnserver -a -o -c /usr/local/etc/turnserver.conf
检测网站
注意使用火狐游览器更好点
谷歌游览器会报错:
Note: errors from onicecandidateerror above are not neccessarily fatal. For example an IPv6 DNS lookup may fail but relay candidates can still be gathered via IPv4.
The server turn:X.X.X.X:3478?transport=udp returned an error with code=401:
1
2
Note: errors from onicecandidateerror above are not neccessarily fatal. For example an IPv6 DNS lookup may fail but relay candidates can still be gathered via IPv4.
The server stun:X.X.X.X:3478 returned an error with code=701:
STUN allocate request timed out.