turnserver搭建webrtc穿透服务器

介绍

TURN Server是VoIP媒体流量NAT穿越服务器和网关。它也可以用作通用网络流量TURN服务器和网关。在使用WebRTC进行即时通讯时,需要使浏览器进行P2P通讯,但是由于NAT环境的复杂性,并不是所有情况下都能进行P2P,这时需要TURN Server来帮助客户端之间转发数据。

安装

下载地址:https://coturn.net/turnserver/v4.5.2/

仓库地址:https://github.com/coturn/coturn

# 编译安装
cd turnserver-4.5.2
yum install openssl openssl-devel libevent -y
./configure --prefix=/usr/local/turnserver
make
make install
# 创建软连接
ln -s /usr/local/turnserver/bin/turnserver /usr/local/bin/turnserver
# 创建配置文件
cp /usr/local/turnserver/etc/turnserver.conf.default /usr/local/turnserver/etc/turnserver.conf
# 创建证书
openssl req -x509 -newkey rsa:2048 -keyout /usr/local/turnserver/etc/turn_server_pkey.pem -out /usr/local/turnserver/etc/turn_server_cert.pem -days 99999 -nodes

配置

# 以下都是要新增的配置项

# 中继服务器监听的IP地址,直接写公网IP地址,可以指定多个IP
listening-ip=192.168.1.50
# TURN 服务器端口 不填默认是3478
listening-port=3478
# TLS和DTLS监听端口,需要时开启
# tls-listening-port=5349
# 不知道什么用途,不设置启动不了
cli-password=qwerty
# 外部IP,直接写公网IP地址
external-ip=123.xxx.xxx.xxx
# 中继服务器转发地址(本地IP地址将用于传递数据包的给每个端),和监听地址一样
relay-ip=192.168.1.50
# 证书
cert=/usr/local/turnserver/etc/turn_server_cert.pem
pkey=/usr/local/turnserver/etc/turn_server_pkey.pem
# 外网网卡
relay-device=eth0
# 验证信息 用户名:密码
user=demo:123456
# 域名
realm=turn.abc.com
# 打开fingerprint的注释,使用长期证书机制。
fingerprint
#打开密码验证,使用短期证书机制。
lt-cred-mech

启动

# 因为上面的配置文件已经把启动项写好了,所以启动的时候只需加一个守护进程即可
turnserver -o

注意

  1. centos7.x启动过程会读不出cert证书,启动时会卡在0: : Default realm: xxx.com。需要将服务器升级到8.x版本,8.2测试通过。
  2. 服务启动成功会出现0: : SSL23: Certificate file found: /usr/local/turnserver/etc/turn_server_cert.pem的文字,如果没有的话需要自行调试问题。
  3. 验证服务是否生效:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/,看到`relay`的项是自己服务器公网ip即视为成功。

turnserver搭建webrtc穿透服务器
http://blog.icy8.cn/posts/47526/
作者
icy8
发布于
2022年1月13日
许可协议