1.安装需要的环境
yum install -y openssl-devel
yum install -y libevent2
yum install -y libevent-devel
yum install mysql-devel
yum install mysql-server
这里数据库使用mysql,也可以用其他数据库。
其中libevent2可能会安装失败,建议先下载下来然后传到服务器手动安装。
2.手动安装libevent2
官网地址:http://www.monkey.org/~provos/libevent/
1.下载最新的版本上传到/usr目录下并解压
wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz
tar zxvf libevent-2.1.11-stable.tar.gz
rm -rf libevent-2.1.11-stable.tar.gz
2.进入解压后的目录
cd libevent-2.1.11-stable
3.安装gcc
yum install gcc
4.设置安装路径
./configure -prefix=/usr
5.编译、安装
make && make install
3.安装coturn
1.在/usr目录下下载coturn
git clone https://github.com/coturn/coturn
若没有安装git,执行yum install git安装git
2.安装
cd coturn
./configure
make && make install
查看是否安装成功(若显示了安装路径则表示安装成功)
which turnserver
4.签名证书
cert和pkey配置的自签名证书用Openssl命令生成:
openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes
执行命令后需要填写一些信息,随意填写即可
5.设置用户名和密码
使用命令生成密码turnadmin -k -u <用户名> -r north.gov -p <密码>,执行命令后屏幕会打印加密后的密码,请记住这个密码
turnadmin -k -u tuoling -r north.gov -p eee333
0xcf2f076caf51774d114e8ed8ac21fb38
6.在/etc目录下新建turnuserdb.conf文件,将用户名和上一步生成的密码填写进去然后保存退出。可以多生成几个用户名和密码
vi /etc/turnuserdb.conf
tuoling:0xcf2f076caf51774d114e8ed8ac21fb38
5.修改turnserver.conf配置文件
正确配置
vi /usr/local/etc/turnserver.conf
其中listening-ip与relay-ip采用内网ip,external-ip是外网的ip。
listening-ip=0.0.0.0
listening-port=3478
tls-listening-port=5349
relay-ip=103.196.127.20
external-ip=103.196.127.20
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
userdb=/etc/turnuserdb.conf
user=love:123456
cli-password=888999
6.运行coturn
执行命令运行coturn服务
turnserver -v -r 103.196.127.20:3478 -a -o -c /usr/local/etc/turnserver.conf
关闭命令:
执行 cat /var/run/turnserver.pid
找到进程后:kill
在浏览器输入
<外网ip>:3478,显示
表示启动成功,如果访问不了可能是服务器防火墙没有开启3478端口
7.开启防火墙端口
tcp和udp都要打开
firewall-cmd --permanent --add-port=3478/tcp
firewall-cmd --permanent --add-port=3478/udp
刷新防火墙
firewall-cmd --reload
查看当前开放的端口
firewall-cmd --list-port
如果还是不能访问,请考虑云服务的安全组策略是否同样开启了3478的tcp和udp端口。
8.网站检测穿透效果
访问:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
turn:103.196.127.20:3478
love
123456
点 Gather candidates 后,如果出现 rtp host、rtp srflx、rtp relay 3个不同IP则成功(分别对应本机内部、外部IP、服务器IP)