Linux真实服务器搭建turn服务器

作者: 温新

分类: 【Linux】

阅读: 2470

时间: 2021-07-11 11:50:06

我是温新,一名PHPer

使用WebRTC做直播时需要用到TURN服务器。

怎么能让别人看到我呢?线上服务器与外网之间存在一堵墙(一个不恰当的例子),这堵墙阻挡了让世界人民看到我的帅气的脸庞,怎么才能穿透内网从而达到外网呢?

TURN服务器就是干这个事的,它如同一个摸金校尉,擅长打洞,从而盗掘古墓,从而让......(自己去遐想吧)。嗯,就是这这么一回事,TURN服务器也是干这个事的,它把你的内网打了一个带有密码的洞,密码正确,你可以从指定的洞(端口)到外网,世界人民就可以看到你了,当然了,外面符合条件的人也可以从洞中进到你的内网来。

要实现这些,有一个非常重要的前提,那就是要正确配置它,下面来看看吧。

配置turn服务器

第一步:安装依赖包

yum -y install opensll-devel libevent2 libevent-devel

当然了,gcc还是需要安装的。

第二步:下载coturn-4.5.2.tar.gz

第三步:源码安装coturn

我的源码包路径:user/local/src

tar -zxvf turnserver-4.5.2
cd turnserver-4.5.02
./configure 
make && make install

编译时最好指定安装路径。 ./configure --prefix=/usr/local/turnserver

由于我安装时没有指定安装路径,因此配置存放在了默认位置。

# 我的案例
relay-device=eth0  
listening-ip=172.17.0.16
listening-port=3478
tls-listening-port=5349
relay-ip=172.17.0.16
external-ip=122.51.97.64
relay-threads=50
lt-cred-mech
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
pidfile="/var/run/turnserver.pid"
min-port=49152
max-port=65535
user=hy:123456
realm=live.nikexu.com

第四步:修改配置文件

文件位置:/etc/turnserver/turnserver.conf

relay-device=eth0
listening-ip=服务器内网IP
listening-port=3478
tls-listening-port=5349
relay-ip=服务器内网IP
external-ip=外网IP
relay-threads=50
lt-cred-mech
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
pidfile="/var/run/turnserver.pid"
min-port=49152
max-port=65535
user=用户:密码
realm=域名(需要https)

realm所配置域名需要解析到 external-ip的外网IP

第五步:启动turn服务器

[root@VM-0-16-centos turnserver]# /usr/bin/turnserver -c /etc/turnserver/turnserver.conf 
0: log file opened: /var/log/turn_14465_2021-07-11.log
0: 
RFC 3489/5389/5766/5780/6062/6156 STUN/TURN Server
Version Coturn-4.5.0.6 'dan Eider'
0: 
Max number of open files/sockets allowed for this process: 100002
0: 
Due to the open files/sockets limitation,
max supported number of TURN Sessions possible is: 50000 (approximately)
0: 

==== Show him the instruments, Practical Frost: ====

0: TLS supported
0: DTLS supported
0: DTLS 1.2 is not supported
0: TURN/STUN ALPN is not supported
0: Third-party authorization (oAuth) supported
0: GCM (AEAD) supported
0: OpenSSL compile-time version: OpenSSL 1.0.1e-fips 11 Feb 2013 (0x1000105f)
0: 
0: SQLite supported, default database location is /var/db/turndb
0: Redis supported
0: PostgreSQL supported
0: MySQL supported
0: MongoDB is not supported
0: 
0: Default Net Engine version: 3 (UDP thread per CPU core)

=====================================================

出现此信息说明已经启动成功了。当然了,还可以通过如下方式进行测试。

第六步:测试连接

打开https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/进行测试。

看到图片中的信息说明成功。

我是温新

每天进步一点点,就一点点

请登录后再评论