coturn服务器部署

    xiaoxiao2022-06-30  162

    一、coturn

           coturn 服务器完整的实现了 STUN/TURN/ICE 协议,支持 P2P 穿透防火墙。主要用于 webrtc 等点对点视频音频通话。

           coturn 支持 tcp, udp, tls, dtls 连接;支持 linux bsd solaris mac os, 暂不支持windows

           GITHUB: https://github.com/coturn/coturn

     

    二、Centos 7

           执行命令  cat /etc/centos-release

     

    三、下载编译安装coturn(错误参照第四步)

    mkdir wlx cd wlx git clone https://github.com/coturn/coturn.git cd coturn ./configure make make install

     

    查看是否安装成功 which turnserver

     

    四、解决报错

    4.1 OpenSSL 错误

    执行安装  yum -y install openssl-devel

    4.2 Libevent2错误

    安装 下载 libevent

    wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz tar zxvf libevent-2.0.21-stable.tar.gz cd libevent-2.0.21-stable && ./configure make && make install

    五、配置文件

        5.1 在/usr/local/etc/目录下有turnserver.conf.default,复制为turnserver.conf

    cd /usr/local/etc/ cp turnserver.conf.default turnserver.conf

    5.2 查看内网地址

    5.3 cert和pkey配置的自签名证书用Openssl命令生成,生成的两个文件在/etc/目录下

    openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes

    5.4 修改配置信息(文件内容太长了,还是下载来下使用 Notepad++ 编辑吧)

    vi /usr/local/etc/turnserver.conf listening-ip与relay-ip采用内网ip,external-ip是外网的ip ,配置如下(相关的IP用户名什么的要替换成自己的)

    relay-device=eth0 #与前ifconfig查到的网卡名称一致 listening-ip=172.31.156.145 #内网IP listening-port=3478 tls-listening-port=5349 relay-ip=172.31.156.145 external-ip=47.105.104.4 #公网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=wlx:123456 #用户名密码,创建IceServer时用 cli-password=qwerty #不开启会报CONFIG ERROR: Empty cli-password, and so telnet cli interface is disabled! Please set a non empty cli-password!错误 #创建IceServer IceServer turnIceServer = new IceServer("turn:47.105.104.4:3478","wlx","123456"); IceServer stunIceServer = new IceServer("stun:47.105.104.4:19302","","");

     5.5 启动

    turnserver -o -a -f -user=wlx:123456 -r Guangdong

    5.6 关闭防火墙

    启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 : systemctl enable firewalld

    六、测试

    测试地址:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

    分别测试stun和turn服务器,只有relay地址回来的是你的ip才算穿透成功。

    最后特别感谢 : https://www.jianshu.com/p/915eab39476d 

     

     


    下面是最简单的配置,turn默认为3478   stun默认为19302

    #监听端口可以不设置会默认的使用3478 listening-port=3478 ##listening-ip,注意必须是你的内网IP地址如(如果你是阿里云的,就是私网地址): listening-ip=172.31.156.145 ##relay-ip可以不设置,默认会使用你的外网ip地址作为转发包的中继地址,建议不设置,使用默认就可以: ##external-ip,注意必须使用你的外网IP地址如: external-ip=47.105.104.4 ##设置用户名及密码,这个是作为TURN服务器使用必须设置的,可以设置多个,我这里配置1个 user=wlx:123456 cli-password=qwerty #不开启会报CONFIG ERROR: Empty cli-password, and so telnet cli interface is disabled! Please set a non empty cli-password!错误

    需要使用 turnserver -v -r ylbs -a -o -c /etc/turnserver.conf  启动注意后面的配置文件路径


    最新回复(0)